逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈
来源:互联网 发布:手机角度水平仪软件 编辑:程序博客网 时间:2024/06/05 19:09
还是上一次的abex' crackme #1,我们用OD附加看一下。
我们发现在调用这个MessageBox函数的时候,用了4个PUSH指令,我们在后面的注释中可以清楚的看到压入参数的内容。
如果我们将它还原成C语言的形式,是这样的:
我们可以清楚的看到汇编代码中压入参数的顺序和我们写代码时候的顺序恰恰是相反的。
这是因为栈内存结构先入后出的原则,如果要想让C代码中的参数正序弹出来,就必须汇编中逆序压进去。
此时,我们可以试着查看一下栈顶指针ESP的变化。
此时右边寄存器区域ESP:0019FF84
然后我们按F8,一直到第一个call.
此时ESP为0019FF74
相减相差0x10. 十进制相差16.
0 0
- 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈
- 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈
- 逆向工程核心原理学习笔记(十二):分析abex' crackme #1
- 逆向工程核心原理学习笔记(十二):分析abex' crackme #1
- 逆向工程核心原理学习笔记(二十六):abex'crackme #2 name的存取
- 逆向工程核心原理学习笔记(二十四):abex'crackme #2 初探
- 逆向工程核心原理学习笔记(二十五):abex'crackme #2初步破解
- 逆向工程核心原理学习笔记(二十七):abex'crackme #2 破解算法
- 《逆向工程核心原理》<01-08> abex` crackme #2 -Check按钮处理代码的部分分析
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(十四):栈帧1
- 逆向工程核心原理学习笔记(二十一):栈帧8:删除函数add()的参数(整理栈)
- 逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
- 逆向工程核心原理学习笔记(七):总结
- 逆向工程核心原理学习笔记(十一):栈
- 逆向工程核心原理学习笔记(七):总结
- 逆向工程核心原理学习笔记(十一):栈
- 逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)
- js深度克隆
- linux常见错误码
- Milking Time POJ
- 《C++ Primer》第10章:泛型算法 学习笔记总结
- bzoj4337 BJOI2015 树的同构
- 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈
- PB FTP InternetConnect返回0的问题
- 安装VirtualBox虚拟网卡并任意修改其物理地址(MAC)
- PAT1052 卖个萌(20)
- CheckBox使用
- 设计模式之---总结
- stray ‘\343’ in program解决办法
- Text Reverse——个人c++解
- 欢迎使用CSDN-markdown编辑器