当前位置:→ 股海网通达信软件 → 正文
  • 通达信主程序脱壳全记录(图文)

  • 相关简介:通达信主程序脱壳全记录(图文) UPX加壳入口第一句是PUSHAD;出口关键字POPAD;手动脱壳时,用Olldbg载入程序,脱壳程序里面会有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。 第一步,先侦壳,侦壳工具为peid0.92,侦测结果如下:(图000) (图000) 原来是UPX 0.89.6 - 1.02 / 1.05 - 1.24 - Markus Laszlo加的壳,UPX是一种压缩壳,强度很低。 第二步,我们请出调试利器:Ollydbg1.09

  • 文章来源:股海网作者:股海网发布时间:2020-01-31浏览次数:下载次数:0

通达信主程序脱壳全记录(图文)   

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)
               


 

点击右键菜单,选择“编辑注释”―――“UPX1壳入口点”(图002,003)
                                


 

                                


 

用F8进行单步跟踪,对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈那就是设置“断点”。见上图(图004 005 006 007)
                                    在“00986839”处有一个往回的跳转,那么就要在其下面的“0098683B”处设置“断点”―――“运行到选定位置F4”,然后继续F8往下走;碰到往下的跳转,那么随它往下走;碰到没有实现的跳转,也不用理睬,继续F8往下走。(后面碰到类似的情况,处理方法一样。)
 

一直往下找,直到发现“POPAD”时,在其地址处设置“断点”―――“运行到选定位置F4”,然后继续F8往下走。(图008 009)
                                 特别注意:在据“POPAD”的地址约10-20个地址时,要停下来,仔细观测,看有没有“CALL”语句,否则有可能跑飞掉,找不到刚才所跟踪的这些地址。最好的办法是,发现“POPAD”后,直接在该语句处设置断点,接着往下走。
 

     在走几行,就会出现上图画面,“00622838A”55 DB55 CHAR‘U’―――这是通达信主程序代码的真正入口,
也就是我们要找的“OEP”地址。(图010,011)
                                 

点击右键调出菜单,选择“用OllyDump脱壳调试进程”。(图012)
 

(图013)
                                 

         出现上图画面,记住“修正为:22838A”,点击“脱壳”进行存盘。(图013,014)
                         =========下图为重新载入已脱壳的新文件(图015)==========
 

                                 

用“PEID”检测,提示已无壳。(图016),但该文件还不能正常启动,因为“输入表”尚未修复。
第三步,就是修复程序的输入表。使用importREC,这是最好用的输入表修复工具。
1、运行加壳的原版TDX主程序,启动importREC程序,(图018)在“附加一个活动进程”中选择“D:\通达信分析家l论坛版本\TDX.EXE”。
 

(图018)
                                2、在“所需的IAT信息”中的“OEP”填入“0022838A”,点击“自动搜索”按钮,出现下图提示:(图019)
 

3、点击“获取输入表”按钮:(图020)
 

                                  4、点击“修复转存文件”按钮,选择前面已完成脱壳的新文件,程序会自动生成一个新的“******_。EXE”的执行文件:(图021 022)
 

5、再用“PEID”检测,提示已无壳,编程软件是Microsoft Visual Basic 5.0 / 6.0。

运行程序,已经可以正常运行了,脱壳完毕。
                                 通达信主程序脱壳全记录(图文)第二集
在上一集里,我们通过手动跟踪,一步一步的完成整个脱壳过程,目的是初步认识加壳程序的一般性规律,了解程序语言的执行过程。作为初学者,反复练习,不断增强对程序流程的直觉和理解,这样的学习过程非常重要,至少我本人就是这样对待的。
小结:
第一步,侦测程序的加壳类型;
第二步,在程序中寻找壳的起点和结束点;
第三步,继续跟踪确定程序真正的入口点;
第四步,利用操作软件的功能脱壳,抓取真正的程序源码;
第五步,启动原版程序,通过软件抓取输入表,转存到已脱壳的文件里,完成整个脱壳过程;
第六步,对新文件进行检验。OK
在以上列举的流程中,最难最麻烦的是第二步,今天又学了两个新招,与大家分享。
一、ESP定律手动脱壳
1、ESP定律的原理,网上可搜寻,不再详述。见谅。
2、脱壳过程:
---用F8进行单步跟踪,对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈那就是设置“断点”。见下图(图001)
―――用F8进行单步跟踪,在右边窗口寄存器(FUP)中的“ESP”突现“0012FFA4”时停下,在左下角“命令”栏中输入“DD 0012FFA4”回车;
 

―――如下图所示,鼠标点选“0012FFA4”行,打开右键如图操作,断点硬件访问--WORD,F9运行;
                                   

―――直接来到这里,已经可以看到“009869C4 -E9 C119CAFF JMP TDXW.0062838A”这句了;F8跟踪;
 

                                  ―――在“009869BF”处有一个往回的跳转,那么就要在其下面的“009869C1”处设置“断点”―――“运行到选定位置F4”,然后继续F8往下走;(碰到往下的跳转,那么随它往下走;碰到没有实现的跳转,也不用理睬,继续F8往下走。后面碰到类似的情况,处理方法一样。)
―――在此处可能要反复几次,最终一定要走到“009869C4”这一行;
 

―――跳转来到这里,就是程序真正的入口;
                                 

―――点击右键,按图示操作,最终生成一个已经脱壳的新文件。
 

                                                

===其后的操作,和第一集中的方法一样。
二、最快的捷径
1、用F8进行单步跟踪,对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈那就是设置“断点”。
在“00986839”处有一个往回的跳转,那么就要在其下面的“0098683B”处设置“断点”―――“运行到选定位置F4”;
2、直接按“CTRL+F”,输入“popad”查找;
3、直接来到“00833260 61 POPAD”,直接在该行设置“断点”―――“运行到选定位置F4”;
4、直接跳转到:
009869B7 8D4424 80 LEA EAX,DWORD PTR SS:[ESP-80]
009869BB 6A 00 PUSH 0
009869BD 39C4 CMP ESP,EAX
009869BF ^ 75 FA JNZ SHORT TdxW.009869BB
009869C1 83EC 80 SUB ESP,-80
009869C4 - E9 C119CAFF JMP TdxW.0062838A (程序的真正入口跳转)
                                通达信主程序脱壳全记录(图文)第三集三、内存镜像法
ALT+M 打开内存,找到.rsrc,“设置访问中断F2”下断,F9运行,出现如下图示
 

                                 再次打开ALT+M 打开内存,找到UPX0,“设置访问中断F2”下断,F9运行,出现如下图示
 

F9运行;其余的操作和前面所叙一样
009869B7 8D4424 80 LEA EAX,DWORD PTR SS:[ESP-80]
009869BB 6A 00 PUSH 0
009869BD 39C4 CMP ESP,EAX
009869BF ^ 75 FA JNZ SHORT TdxW.009869BB //这有一个向上的跳转,要引起注意009869C1 83EC 80 SUB ESP,-80
009869C4 - E9 C119CAFF JMP TdxW.0062838A //程序的真正入口跳转
009869C9 0000 ADD BYTE PTR DS:[EAX],AL
009869CB 0000 ADD BYTE PTR DS:[EAX],AL
009869CD 0000 ADD BYTE PTR DS:[EAX],AL
009869CF 0000 ADD BYTE PTR DS:[EAX],AL
009869D1 0000 ADD BYTE PTR DS:[EAX],AL
                                 同花顺主程序也是UPX加壳,操作方法完全一样(不再详叙) 图001 已接近程序的入口了
 

图002 已完成跳转到达程序真正的入口
 

图003 进行脱壳操作,存盘
                                 

图004 进行输入表修复(其中有一项“?。。。。。。。。。。。。有效:无”的无效指针提示,可忽略)
 

最后进行检验。OK

 ☟问题反馈 ☞┄┄┄┄┄┄┄┄┄┄→收藏资源:

通达信主程序脱壳全记录(图文)

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上传会员: 
股海网
文件大小: 
Bytes
上传时间: 
2020-01-31
下载积分: 
-
免责声明: 
请仔细阅读并同意后才能下载
本附件为用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究使用,不得用于商业或者非法用途,如有侵犯您的版权, 请参看 《股海网侵权处理流程》《股海网免责声明条款》
点击下载无反应时,更换主流浏览器重新登录操作,如360浏览器、Edge浏览器、谷歌浏览器,个别浏览器有不兼容现象。
勾选以下表示您已经阅读并同意以上声明才能下载本文件,扣除积分无法退还!
我已阅读所有条款规定, 请点我同意 所有条款内容!我自愿下载!
提示:如下载失败,请点关闭刷新此页面或提交问题反馈给管理员→
关闭

关于我们 - 联系我们 - 隐私政策 - 免责声明 - 下载帮助 - 广告合作 - SiteMap - TOP
增值电信业务经营ICP许可证:湘B2-20210269 湘ICP备09016573号-10 湘公网安备43108102000040号
Copyright © 2021 铭网科技,All Rights Reserved.