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

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

更新时间:2008-5-8 0:09:04
责任编辑:流火
热 点:

在(二)中我们得到了四张表 :

int3地址表 (实际地址+1)   
跳转类型表      
跳转量表        
跳转命令长度表 (实际长度-1)


在OD中打开已脱壳程序,现在壳已经是垃圾了,我们就用用它的空间吧。把前面保存的连续的四个表拷贝到壳开始的空间,我这儿是9d1000。得到:
9d1000~9d5f00  int3地址表
9d5f00~9dae00  跳转类型表
9dae00~9dfd00  跳转量表
9dfd00~9e4c00  跳转命令长度表


随便找个地方写入下列代码:

009E4C04    XOR ECX, ECX
009E4C06    MOV EAX, DWORD PTR DS:[ECX*4+9D1000]         //取出int3地址
009E4C0E    CMP EAX, 0
009E4C11    JE SHORT dumped_.009E4C80
009E4C13    MOVZX EDX, BYTE PTR DS:[ECX+9D5F00]          //跳转类型
009E4C1A    MOV EBX, DWORD PTR DS:[ECX*4+9DAE00]         //跳转量
009E4C22    MOVZX EDI, BYTE PTR DS:[ECX+9DFD00]          //跳转命令长度
009E4C29    DEC EAX
009E4C2A    INC ECX
009E4C2B    CMP DWORD PTR DS:[EAX], EC8B55CC             //进一步排除无效的int3
009E4C31    JE SHORT dumped_.009E4C06
009E4C33    CMP BYTE PTR DS:[EAX-1], 0CC
009E4C37    JE SHORT dumped_.009E4C06
009E4C39    CMP BYTE PTR DS:[EAX+1], 0CC
009E4C3D    JE SHORT dumped_.009E4C06
009E4C3F    NOP
009E4C40    CMP EDI, 1
009E4C43    JNZ SHORT dumped_.009E4C4E
009E4C45    MOV BYTE PTR DS:[EAX], DL
009E4C47    DEC BL
009E4C49    MOV BYTE PTR DS:[EAX+1], BL
009E4C4C    NOP
009E4C4D    NOP
009E4C4E    CMP EDI, 5
009E4C51    JNZ SHORT dumped_.009E4C64
009E4C53    MOV BYTE PTR DS:[EAX], 0F
009E4C56    ADD DL, 10
009E4C59    MOV BYTE PTR DS:[EAX+1], DL
009E4C5C    SUB EBX, 5
009E4C5F    MOV DWORD PTR DS:[EAX+2], EBX
009E4C62    NOP
009E4C63    NOP
009E4C64    CMP EDI, 4
009E4C67    JNZ SHORT dumped_.009E4C79
009E4C69    CMP DL, 0EB
009E4C6C    JNZ SHORT dumped_.009E4C79
009E4C6E    MOV BYTE PTR DS:[EAX], 0E9
009E4C71    SUB EBX, 4
009E4C74    MOV DWORD PTR DS:[EAX+1], EBX
009E4C77    NOP
009E4C78    NOP
009E4C79    JMP dumped_.009E4BFA
009E4C7E    NOP
009E4C7F    NOP
009E4C80    NOP
               
在009E4C04处New origin here,在009E4C80下断,运行停住。修复了大部分int3。把修复好的程序另存为一文件。

现在工作结束了吗?答案是没有。你运行修复的文件看看,还出错。如下代码:


006539B4    85C9            TEST ECX, ECX
006539B6    CC              INT3
006539B7    7A C7           JPE SHORT dumped_.00653980
006539B9    45              INC EBP
006539BA    FC              CLD
006539BB    2E:0000         ADD BYTE PTR CS:[EAX], AL
006539BE    00CC            ADD AH, CL                        //这里的cc也是int3
006539C0    B7 8A           MOV BH, 8A
006539C2    71 0A           JNO SHORT dumped_.006539CE


把006539B6处的int3修复好以后,变成如下代码:

006539B4    85C9               TEST ECX, ECX
006539B6    75 12              JNZ SHORT dumped_1.006539CA
006539B8    C745 FC 2E000000   MOV DWORD PTR SS:[EBP-4], 2E
006539BF    CC                 INT3
006539C0    B7 8A              MOV BH, 8A
006539C2    71 0A              JNO SHORT dumped_1.006539CE

这时在006539BF处的在OD才显示正确的int3。

怎么办?你得把修复的文件按照(二)(三)中的步骤再来一遍。麻烦吧。经过两次修复后,程序终于可以正常运行了,但有些功能不能用,还没破解。


(三)破解

 破解我就不详细说了。vb程序,挺麻烦的。

 1、功能破解:
                                                                                                                                                                          从401000开始查找unicode码“DAYSLEFT”,在4876b0。在4876c8处有一unicode码“20",清0即可。                     
   从401000开始查找unicode码“DAYSLEFT”,在4876b0。在4876c8处有一unicode码“20",改成0即可。                                                                                        
                                                                                                                 
 2、about菜单显示: 
                                                                                            
   从401000开始查找unicode码“Registered to”,在49e904。然后查找命令“push 49e904”可以定位about菜单的代码。     
                                                                                                                 
  00842120    PUSH dumped_c.0049E904                   ; UNICODE "Registered To:  "              
  00842125    PUSH EDX                                                                           
  00842126    MOV EBX, DWORD PTR DS:[ESI]                                                        
  00842128    CALL DWORD PTR DS:[<&msvbvm60.__vbaStrCa>; msvbvm60.__vbaStrCat                    
                                                                                                 
  修改:                                                                                         
  00841F4F    JE dumped_c.0084216F        JE->JNE                                                
                                                                                                 
  00841FF2    JE BMP_crac.008420AE        JE->JNE                                               
   
   
   
 pyzpyz
 2004.4.22

1.JPG


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