|

提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).
昨天晚上用了一个晚上的时间对一个子程序进行逆向 对每一条汇编指定都进行了详细说明,希望大家可以顶一下,看过后,如果存在什么问题,可以留言指出来。谢谢大家
------------------------------------------------------------------------------------------------
---------------逆向分析训练练习说明 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、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:xhzlw@foxmail.com),本站将立即改正。
|