安全中国首页 > 文章中心 > 脱壳技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

Blaze Media Pro5.05脱壳+基本修复CC(int3)+破解(二)

更新时间:2008-4-23 0:26:11
责任编辑:池天
热 点:


009EC012    MOV EAX, DWORD PTR SS:[EBP-1198]          //如果eax=0,到这 
009EC018    MOV ECX, DWORD PTR DS:[EAX*4+A17758] 
009EC01F    MOV EDX, DWORD PTR SS:[EBP-146C] 
009EC025    XOR EAX, EAX 
009EC027    MOV AL, BYTE PTR DS:[ECX+EDX]             //得到下一条指令的距离 
009EC02A    MOV ECX, DWORD PTR SS:[EBP-13AC] 
009EC030    ADD ECX, EAX 
009EC032    MOV DWORD PTR SS:[EBP-13AC], ECX         //重新设置context 


好,知道这些后,我们要对上段代码进行大修改。 
  
下面是修改好的代码: 

×××××× 
009EBC88    PUSH ESP                                   //下面代码修改401000开始的空间读写属性,使得可写。   
009EBC89    PUSH 4 
009EBC8B    PUSH BMP.00578000 
009EBC90    PUSH BMP.00401000 
009EBC95    CALL DWORD PTR DS:[<&KERNEL32.VirtualPro>; kernel32.VirtualProtect 
009EBC9B    NOP 
             
009EBC9F    NOP 
009EBCA0    MOV EAX, DWORD PTR DS:[500000]              //[500000]中是原始int3表计数器 
009EBCA5    MOV EAX, DWORD PTR DS:[EAX*4+401000]        //401000开始放置int3原始表 
009EBCAD    TEST EAX, EAX             
009EBCAF    JE BMP.009EC045                             //int3原始表到最后?是则结束。 
009EBCB5    LEA EDX, DWORD PTR SS:[EBP-13AC] 
009EBCBB    INC EAX 
009EBCBC    MOV DWORD PTR DS:[EDX], EAX 
009EBCBE    INC DWORD PTR DS:[500000] 
009EBCC4    NOP 
×××××× 


009EBCCB    NOP 
009EBCCC    MOV DWORD PTR SS:[EBP-1468], 0 
009EBCD6    PUSH -1 
009EBCD8    PUSH 4 
009EBCDA    LEA EDX, DWORD PTR SS:[EBP-13AC]         ; 
009EBCE0    PUSH EDX 
009EBCE1    CALL BMP.009D4F90                        ; 
009EBCE6    ADD ESP, 0C 
009EBCE9    MOV DWORD PTR SS:[EBP-1194], EAX         ;  
009EBCEF    MOV EAX, DWORD PTR SS:[EBP-1194] 
009EBCF5    XOR EDX, EDX 
009EBCF7    MOV ECX, 10 
009EBCFC    DIV ECX                                  ;  
009EBCFE    MOV DWORD PTR SS:[EBP-1198], EDX         ; 
009EBD04    MOV EDX, DWORD PTR SS:[EBP-13AC]         ; 
009EBD0A    PUSH EDX 
009EBD0B    MOV EAX, DWORD PTR SS:[EBP-1198]         ;  
009EBD11    CALL DWORD PTR DS:[EAX*4+A15838]         ;  
009EBD18    ADD ESP, 4 
009EBD1B    MOV DWORD PTR SS:[EBP-1468], EAX         ; 
009EBD21    MOV DWORD PTR SS:[EBP-146C], 0 
009EBD2B    MOV ECX, DWORD PTR SS:[EBP-1198] 
009EBD31    MOV EDX, DWORD PTR DS:[ECX*4+A176D4] 
009EBD38    MOV DWORD PTR SS:[EBP-118C], EDX 
009EBD3E    MOV EAX, DWORD PTR SS:[EBP-146C] 
009EBD44    CMP EAX, DWORD PTR SS:[EBP-118C] 
009EBD4A    JGE SHORT BMP.009EBDA8 
009EBD4C    MOV EAX, DWORD PTR SS:[EBP-118C] 
009EBD52    SUB EAX, DWORD PTR SS:[EBP-146C] 
009EBD58    CDQ 
009EBD59    SUB EAX, EDX 
009EBD5B    SAR EAX, 1 
009EBD5D    MOV ECX, DWORD PTR SS:[EBP-146C] 
009EBD63    ADD ECX, EAX 
009EBD65    MOV DWORD PTR SS:[EBP-1470], ECX 
009EBD6B    MOV EDX, DWORD PTR SS:[EBP-1198]         ; 
009EBD71    MOV EAX, DWORD PTR DS:[EDX*4+A1768C]     ; 
009EBD78    MOV ECX, DWORD PTR SS:[EBP-1470] 
009EBD7E    MOV EDX, DWORD PTR SS:[EBP-1468] 
009EBD84    CMP EDX, DWORD PTR DS:[EAX+ECX*4] 
009EBD87    JBE SHORT BMP.009EBD9A 
009EBD89    MOV EAX, DWORD PTR SS:[EBP-1470] 
009EBD8F    ADD EAX, 1 
009EBD92    MOV DWORD PTR SS:[EBP-146C], EAX 
009EBD98    JMP SHORT BMP.009EBDA6 
009EBD9A    MOV ECX, DWORD PTR SS:[EBP-1470] 
009EBDA0    MOV DWORD PTR SS:[EBP-118C], ECX 
009EBDA6    JMP SHORT BMP.009EBD3E 
009EBDA8    NOP                                      ;  
009EBDA9    NOP 
009EBDAA    MOV EDX, DWORD PTR SS:[EBP-1198] 
009EBDB0    MOV EAX, DWORD PTR DS:[EDX*4+A1768C] 
009EBDB7    MOV ECX, DWORD PTR SS:[EBP-146C]                
009EBDBD    MOV EDX, DWORD PTR DS:[EAX+ECX*4] 
009EBDC0    CMP EDX, DWORD PTR SS:[EBP-1468] 
009EBDC6    JNZ BMP.009EBCA0                          //这段代码我把它的位置朝前挪了,修改了跳转量 
009EBDCC    NOP 
009EBDCD    NOP 


×××××× 
009EBDCE    MOV EAX, DWORD PTR DS:[500004]            //符合条件的int3计数器 
009EBDD3    LEA EDX, DWORD PTR SS:[EBP-13AC] 
009EBDD9    MOV EDX, DWORD PTR DS:[EDX] 
009EBDDB    MOV DWORD PTR DS:[EAX*4+405F00], EDX      //符合条件的int3地址从405F00开始放 
009EBDE3    NOP 

                                                      //下面这段代码是为了得到跳转类型而增加的,目的是得到009EBF75处我自编函数需要的东西 
009EBDEA    NOP                                       
009EBDEB    MOV EAX, BMP.0050000C                    //50000C中是计数器         
009EBDF0    XOR ECX, ECX 
009EBDF2    MOV DWORD PTR DS:[EAX], ECX              //计数器置0               
009EBDF4    MOV DWORD PTR DS:[EAX+4], ECX            //context的ecx=0 
009EBDF7    MOV DWORD PTR DS:[EAX+C], ECX             //context的flag=0 
009EBDFA    INC ECX 
009EBDFB    MOV DWORD PTR DS:[EAX+8], ECX            //context的ecx=1         
009EBDFE    MOV DWORD PTR DS:[EAX+10], ECX           //flag的cf=1 
009EBE01    MOV DWORD PTR DS:[EAX+14], 4             //pf=1 
009EBE08    MOV DWORD PTR DS:[EAX+18], 40            //zf=1 
009EBE0F    MOV DWORD PTR DS:[EAX+1C], 80            //sf=1 
009EBE16    MOV DWORD PTR DS:[EAX+20], 800           //of=1 
009EBE1D    LEA EAX, DWORD PTR SS:[EBP-1464] 
009EBE23    MOV ECX, DWORD PTR DS:[50000C]              
009EBE29    MOV EDX, DWORD PTR DS:[ECX*4+500010] 
009EBE31    CMP ECX, 1 
009EBE34    JG SHORT BMP.009EBE3E 
009EBE36    MOV DWORD PTR DS:[EAX+AC], EDX 
009EBE3C    JMP SHORT BMP.009EBE44 
009EBE3E    MOV DWORD PTR DS:[EAX+C0], EDX 
009EBE44    NOP 
×××××× 

009EBE46    NOP 
009EBE47    MOV EAX, DWORD PTR SS:[EBP-1198] 
009EBE4D    MOV ECX, DWORD PTR DS:[EAX*4+A17714]      
009EBE54    MOV EDX, DWORD PTR SS:[EBP-146C] 
009EBE5A    XOR EAX, EAX 
009EBE5C    MOV AL, BYTE PTR DS:[ECX+EDX]            ;  
009EBE5F    MOV DWORD PTR SS:[EBP-1488], EAX 
009EBE65    MOV EAX, DWORD PTR SS:[EBP-1488] 
009EBE6B    CDQ 
009EBE6C    AND EDX, 0F 
009EBE6F    ADD EAX, EDX 
009EBE71    SAR EAX, 4 
009EBE74    MOV DWORD PTR SS:[EBP-1480], EAX 
009EBE7A    MOV ECX, DWORD PTR SS:[EBP-1488] 
009EBE80    AND ECX, 8000000F 
009EBE86    JNS SHORT BMP.009EBE8D 
009EBE88    DEC ECX 
009EBE89    OR ECX, FFFFFFF0 
009EBE8C    INC ECX 
009EBE8D    MOV DWORD PTR SS:[EBP-1484], ECX 
009EBE93    MOV EDX, DWORD PTR SS:[EBP-1480] 
009EBE99    CMP EDX, DWORD PTR SS:[EBP-1484] 
009EBE9F    JNZ SHORT BMP.009EBEBC 
009EBEA1    MOV EAX, DWORD PTR SS:[EBP-1484] 
009EBEA7    ADD EAX, 1 
009EBEAA    AND EAX, 8000000F 
009EBEAF    JNS SHORT BMP.009EBEB6 
009EBEB1    DEC EAX 
009EBEB2    OR EAX, FFFFFFF0 
009EBEB5    INC EAX 
009EBEB6    MOV DWORD PTR SS:[EBP-1484], EAX 
009EBEBC    MOV ECX, DWORD PTR SS:[EBP-1488] 
009EBEC2    MOV EDX, DWORD PTR SS:[EBP-1480] 
009EBEC8    MOV EAX, DWORD PTR DS:[ECX*4+A16ED0] 
009EBECF    XOR EAX, DWORD PTR DS:[EDX*4+A1125C] 
009EBED6    MOV ECX, DWORD PTR SS:[EBP-1484] 
009EBEDC    XOR EAX, DWORD PTR DS:[ECX*4+A1125C] 
009EBEE3    MOV DWORD PTR SS:[EBP-1478], EAX 
009EBEE9    MOV EDX, DWORD PTR SS:[EBP-13A4]         ; 
009EBEEF    AND EDX, 0FD7 
009EBEF5    PUSH EDX 
009EBEF6    MOV EAX, DWORD PTR SS:[EBP-1488]         ; 
009EBEFC    MOVSX ECX, BYTE PTR DS:[EAX+A15730] 
009EBF03    CALL DWORD PTR DS:[ECX*4+A15838] 
009EBF0A    ADD ESP, 4 
009EBF0D    MOV DWORD PTR SS:[EBP-1474], EAX 
009EBF13    MOV EDX, DWORD PTR SS:[EBP-13B8] 
009EBF19    PUSH EDX 
009EBF1A    MOV EAX, DWORD PTR SS:[EBP-1474] 
009EBF20    PUSH EAX 
009EBF21    CALL DWORD PTR SS:[EBP-1478] 
009EBF27    ADD ESP, 8 
009EBF2A    PUSH EAX 
009EBF2B    MOV ECX, DWORD PTR SS:[EBP-1488] 
009EBF31    MOVSX EDX, BYTE PTR DS:[ECX+A15730] 
009EBF38    CALL DWORD PTR DS:[EDX*4+A15878] 
009EBF3F    ADD ESP, 4 
009EBF42    MOV DWORD PTR SS:[EBP-147C], EAX 
009EBF48    MOV EAX, DWORD PTR SS:[EBP-147C] 
009EBF4E    AND EAX, 1 
009EBF51    NOP 
009EBF52    NOP 

上一页 1 2 3 4 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画