挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
游戏交易就上寄售网-专注稳定-诚信赢天下玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 2593|回复: 2
打印 上一主题 下一主题

[讨论交流] 子程序逆向详细说明 分析

[复制链接]
4中级会员
320/600

320

积分

110

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
210
海币
2940
交易币
0
跳转到指定楼层
楼主
发表于 2015-2-13 22:49:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


昨天晚上用了一个晚上的时间对一个子程序进行逆向 对每一条汇编指定都进行了详细说明,希望大家可以顶一下,看过后,如果存在什么问题,可以留言指出来。谢谢大家

------------------------------------------------------------------------------------------------
                    ---------------逆向分析训练练习说明  2010.02.28-----------------
------------------------------------------------------------------------------------------------

00402030  /> \55            PUSH EBP                            //保存当前堆栈指针 相当于{ //此时在栈顶指向的是保存上一个函                                                                  数CALL后的下一个地址,PUSH EBP 后,此时 [ESP+4]就是这个函数的                                                                 返回地址。就是常说的保存堆栈环境。      
00402031  |.  8BEC          MOV EBP,ESP                         //把当前栈顶的值放EBP里 相当于把当前函数的EBP设当前栈顶的值,                                                                 MOV EBP,ESP 后,二个寄存器的值相等,都是同时指向栈顶。这时的
                                                                [ESP+4]就是程序的返回地址 [EBP+4] 也就是返回地址
                                                                上面的功能是保护上一个调用的EBP堆栈基址和把这一个函数的EBP的                                                                  值为ESP的值 就是把这个函数的EBP地址移到ESP上,现在栈底和栈顶                                                                        是处于同一个地址上的,函数开始后,寄存器或是参数压入堆栈后,        ----------------------------------------------------------------EBP指向的就是栈底,ESP指向的就是栈顶。
00402033  |.  6A FF         PUSH -1                             //定义一个指针变量 压入堆栈 这个变量的值是FFFFFFFF 我在这里                                                                        [EBP-4]就是这个临时变量的地址,也就是保存构造函数和析构函数的                                                                        指针。
00402035  |.  68 5B3B4000   PUSH ReverseM.00403B5B              //SEH 处理程序安装  //异常处理链安装程序 这里的PUSH 00403B5B                                                                   实际上是把异常处理的入口地址压入堆栈 [EBP-8]就是调用这个异常                                                                  处理程序的系统回调函数,当发生错误的时候调用[EBP-8]这个系统回                                                                调函数来处理异常,处理的顺序是根据链表层的顺序来进行处理的。                                                                        如果处理成功,程序可以继续执行代码,如果处理失败就是弹出系统                                                                        错误信息,程序结束。
0040203A  |.  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]            //把FS:[0] 当前线程的结构化异常处理结构(SEH)的地址放到EAX里                                                                         FS:[0]实际上就是指向原来的的异常处理链地址。
00402040  |.  50            PUSH EAX                            //压入EAX 保存 表示把原来的异常处理链地址进行保存起来
----------------------------------------------------------------把原先的异常处理结构体的指针保护起来
00402041  |.  64:8925 00000>MOV DWORD PTR FS:[0],ESP            //把当前异常处理链的地址指向ESP指针 现在的异常入口指向栈顶
----------------------------------------------------------------
00402048  |.  83EC 50       SUB ESP,50                          //把ESP指针向上移动20个地址 1个地址是4个字节 相当于现在的ESP=                                                                 原来的ESP+50  
0040204B  |.  53            PUSH EBX                            //保存原来EBX基地址寄存器
0040204C  |.  56            PUSH ESI                            //保存原来ESI源变址寄存器
0040204D  |.  57            PUSH EDI                            //保存原来EDI目的变址寄存器
0040204E  |.  51            PUSH ECX                            //保存原来ECX寄存器
                                                                到这里后算是把堆栈环境保护好 等程序结束里弹出保存信息,恢复   ----------------------------------------------------------------堆栈,继续程序运行,已达到程序的完整性。   
0040204F  |.  8D7D A4       LEA EDI,DWORD PTR SS:[EBP-5C]       //把EDI的指针指向 [EBP-5C] 相当于 [ESP-50-0C] 0C=12个字节 是                                                                        前面压入三个堆栈的地址数   EDI的指针到了[ESP+20]这个位置 实际                                                                 上就是到了压入EBX后EBX的值的指向地址。
00402052  |.  B9 14000000   MOV ECX,14                          //把ECX寄


完整资料下载: 逆向分析说明.rar (4.67 KB, 下载次数: 18)


联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:网游找call通杀方法之另辟蹊径(教程二)
下一篇:武林 _源码已上传_高手勿入
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

6高级会员
653/1100

653

积分

226

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
427
海币
10722
交易币
0
沙发
发表于 2015-2-14 07:30:45 | 只看该作者
看了不错 谢谢楼主 楼主
3正式会员
220/300

220

积分

81

主题

1

听众
已帮网友解决0 个问题
好评
0
贡献
139
海币
992
交易币
0
板凳
发表于 2015-7-10 16:47:37 | 只看该作者
太W美了 楼主我不忍直视了 呵呵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-5-9 06:52 , Processed in 0.447222 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表