通达信主程序脱壳全记录图文第一集完整版.docx
《通达信主程序脱壳全记录图文第一集完整版.docx》由会员分享,可在线阅读,更多相关《通达信主程序脱壳全记录图文第一集完整版.docx(14页珍藏版)》请在冰豆网上搜索。
通达信主程序脱壳全记录图文第一集完整版
通达信主程序脱壳全记录〔图文〕
UPX加壳入口第一句是PUSHAD;出口关键字POPAD;手动脱壳时,用Olldbg载入程序,脱壳程序里面会有好多循环。
对付循环时,只能让程序往前运行,根本不能让它往回跳,要想法跳出循环圈。
第一步,先侦壳,侦壳工具为peid0.92,侦测结果如下:
〔图000〕
〔图000〕
原来是UPX0.89.6-1.02/1.05-1.24->Markus&Laszlo加的壳,UPX是一种压缩壳,强度很低。
第二步,我们请出调试利器:
Ollydbg1.09,载入程序,出现提示:
找到PUSHAD〔压栈〕标志点〔图001〕
点击右键菜单,选择“编辑注释〞―――“UPX1壳入口点〞〔图002003〕
用F8进行单步跟踪,对付循环时,只能让程序往前运行,根本不能让它往回跳,要想法跳出循环圈那就是设置“断点〞。
见上图〔图004005006007〕
在“00986839”处有一个往回的跳转,那么就要在其下面的“0098683B〞处设置“断点〞―――“运行到选定位置F4”,然后继续F8往下走;碰到往下的跳转,那么随它往下走;碰到没有实现的跳转,也不用理睬,继续F8往下走。
〔后面碰到类似的情况,处理方法一样。
〕
一直往下找,直到发现“POPAD〞时,在其地址处设置“断点〞―――“运行到选定位置F4”,然后继续F8往下走。
〔图008009〕
特别注意:
在据“POPAD〞的地址约10-20个地址时,要停下来,仔细观测,看有没有“CALL〞语句,否那么有可能跑飞掉,找不到刚刚所跟踪的这些地址。
最好的方法是,发现“POPAD〞后,直接在该语句处设置断点,接着往下走。
在走几行,就会出现上图画面,“00622838A〞55DB55CHAR‘U’―――这是通达信主程序代码的真正入口,也就是我们要找的“OEP〞地址。
〔图010011〕
点击右键调出菜单,选择“用OllyDump脱壳调试进程〞。
〔图012〕
〔图013〕
出现上图画面,记住“修正为:
22838A〞,点击“脱壳〞进行存盘。
〔图013014〕
=========下列图为重新载入已脱壳的新文件〔图015〕==========
用“PEID〞检测,提示已无壳。
〔图016〕,但该文件还不能正常启动,因为“输入表〞尚未修复。
第三步,就是修复程序的输入表。
使用importREC,这是最好用的输入表修复工具。
1、运行加壳的原版TDX主程序,启动importREC程序,〔图018〕在“附加一个活动进程〞中选择“D:
\通达信分析家l论坛版本〞。
〔图018〕
2、在“所需的IAT信息〞中的“OEP〞填入“0022838A〞,点击“自动搜索〞按钮,出现下列图提示:
〔图019〕
3、点击“获取输入表〞按钮:
〔图020〕
4、点击“修复转存文件〞按钮,选择前面已完成脱壳的新文件,程序会自动生成一个新的“******_。
EXE〞的执行文件:
〔图021022〕
5、再用“PEID〞检测,提示已无壳,编程软件是MicrosoftVisualBasic5.0/6.0。
运行程序,已经可以正常运行了,脱壳完毕。