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

软件破解教程-第8章第5节 脱壳高级篇7

更新时间:2007-11-28 0:30:06
责任编辑:流火
热 点:
直到显示变成 

0167:004F2D72 E9148B1DA8     JMP A86CB88B 
0167:004F2D77 8E4F00         MOV CS,[EDI+00] 
0167:004F2D7A EB01         JMP 004F2D7D 
0167:004F2D7C EB89         JMP 004F2D07 
0167:004F2D7E 041C         ADD AL,1C 
0167:004F2D80 EB02         JMP 004F2D84 
0167:004F2D82 EBE8         JMP 004F2D6C 
0167:004F2D84 61         POPAD 
0167:004F2D85 EB01         JMP 004F2D88 
0167:004F2D87 E850EB02E9     CALL E95218DC 
0167:004F2D8C 17         POP SS 
0167:004F2D8D E802000000     CALL 004F2D94 
0167:004F2D92 E91758C35E     JMP 5F1285AE 
0167:004F2D94 58         POP EAX <-- 光标位于此行时, EAX=401000 
0167:004F2D95 C3         RET <--这里 

下Suspend指令. 回到Windows. 用ProcDump来Dump(full)脱壳的程序,得到azprdump.exe. 你也可以用TRW的PEDUMP命令来得到脱壳程序,但我个人的经验很容易死机,所以我宁愿用ProcDump来做. 

4. 用PE Editor修改程序的Entry Point为1000. 并查看脱壳后程序的.idata section. 此时Raw size=1670, Raw offset=1FC00. 修改Directory中Import Table的RVA=21000,SIZE=1670. 
5. 用Hexworkshop打开azprdump.exe和azprdata.bin. Goto到exe文件的1FC00偏移处,Select Block大小为1670. 拷贝.bin文件的同样大小(1670)的Block,粘贴到exe文件中以替换掉不正确的.idata section. 

现在,再试着运行程序,应该可以正常运行了. 如果程序出错,再做一件事: 把 .bss section的raw size值改为00000000 (高手tiamath的建议). 

有了脱壳的程序,大家应该会Patch它成为注册版了吧. 只需改一个字节. 

结语: 用本文所描述的方法,可以对绝大多数Asprotect+Aspack保护的程序进行成功的脱壳. 大家读完这篇教程,不妨找几个程序开刀. 比方说,The Bat! 1.39现在不应该再难住大家了. 

好了,这次就到这儿了,下回见. 

致谢: 

感谢SV, Hobgoblin, tiamath. 没有他们的帮助,我不可能做到这一步. 

上一页 1 2 3 

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