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