retn之后的EIP欺骗的Ollydbg!
来源:互联网 发布:淘宝很出名的钢笔店铺 编辑:程序博客网 时间:2024/05/01 14:44
有如下有趣的代码
0040D000 90 nop0040D001 s> E8 0A000000 call sss.0040D0100040D006 90 nop0040D007 EB 0C jmp short sss.0040D0150040D009 90 nop0040D00A 90 nop0040D00B 90 nop0040D00C 90 nop0040D00D 90 nop0040D00E 90 nop0040D00F 90 nop0040D010 5D pop ebp0040D011 45 inc ebp0040D012 55 push ebp0040D013 C3 retn有趣的地方在于,如果你在第一个call处F8,程序并不会在jmp指令处停下而是一直从0040D015处的指令一直运行下去。。。。
为什么会这样呢
解释:
一般情况下
A地址 callA
B地址 指令X
C地址 指令Y
call B(0040D015)
如上指令,一般情况下call完之后会返回到B地址,我觉得OD会将这个当EIP=B地址当成是callA结束的标志,所以这样的话F8步过就会使得OD认为后面的jmp和下面的40D015(引发跑飞的那个地方)包含在callA 中
- retn之后的EIP欺骗的Ollydbg!
- 执行retn、call、leave指令的时候,esp和eip的变化情况
- EIP的理解
- EIP的概念
- 反汇编的call和retn
- 反汇编的call和retn
- 反汇编RETN 0x0c的理解
- push 0x******* retn 的应用
- Web欺骗的欺骗手段
- retn
- 对call、retn的深入分析和认识
- OD加载程序在retn停下的问题
- 汇编中retn 4的含义详析
- Ollydbg的入门学习
- OllyDbg 的命令
- OllyDBG的使用
- OllyDbg的一些快捷键
- Ollydbg的LoadMapEx插件
- 安装RAC时ASM 存储器配置的选型
- IOS简单的字串替换方法stringByTrimmingCharactersInSet
- APNS推送
- python下的MySQLdb使用
- Qt5.0 的新特性
- retn之后的EIP欺骗的Ollydbg!
- 多线程
- Windows7 下Eclipse集成Cygwin配置Android NDK环境编译JNI库(1)
- 在Unity3D的网络游戏中实现资源动态加载
- 核心动画 CoreAnimation
- Windows7 下Eclipse集成Cygwin配置Android NDK环境编译JNI库(2)
- myeclipse 选中类中的某个字符串 高亮显示设置
- TCP/IP协议族学习(三):IP协议、ICMP协议
- rmi of spring