关于 ESP 定理
来源:互联网 发布:excel同列找出重复数据 编辑:程序博客网 时间:2024/06/02 05:54
一般,压缩壳在执行加壳代码的开始和结束位置,分别会有 pushad 和 popad 来保存所有的寄存器环境,利用这一点,可以定位到程序真正入口代码的位置。
–>练习程序下载
打开程序后,程序的入口点就是汇编指令 pushad,下面的都是加壳代码。
执行 pushad 指令后,寄存器全部都入栈,此时栈顶以下的位置都存储了寄存器的环境。当加壳结束时,程序一定会恢复环境。所以,在右侧寄存器位置点击数据窗口跟随,再在栈顶位置下 硬件访问断点。
按下 F9 键,可以看到断下的代码处恰好有汇编代码popad。再往下走就是主程序的代码了。
此时,如果如果使用 dump 功能,就可以将 dump 出脱壳的程序了。
该程序是 32 位程序,需要在 32 位系统下 dump。由于加壳程序都会将 导入表 抹去,所以 dump 时需要选中恢复导入表
dump可恢复导入表的 OD
后记:esp定理不一定只应用于开头只有 pushad 指令的程序,即使开头是 push eax,由于加壳结束后,一定会平到原来的栈,所以也会断到入口处。
如何对抗
只要将原来栈顶的数据复制到栈顶的以上部分,加壳结束后,以新的栈顶为起点,那么下的硬件断点就断不下来了。
阅读全文
0 0
- 关于 ESP 定理
- OEP和ESP定理
- 关于AH与ESP
- 关于寄存器ESP和EBP
- esp
- 答复--关于ESP近期的困惑
- 关于esp和ebp的学习总结
- ESP,EBP 汇编关于参数的传递
- 关于EIP、EBP和ESP寄存器
- 关于采样定理
- 关于《中国剩余定理》
- 关于线性互补定理
- 关于“中国剩余定理”
- 关于握手定理
- 关于约数定理
- ESP定理如何判断找出OEP 【OEP脱壳的5种方法】
- 关于寄存器ESP和EBP的一些理解
- 关于寄存器ESP和EBP的一些理解
- Win10误设置为‘平板模式’导致看不到桌面问题
- 开发人员学Linux(11):CentOS7安装配置持续集成工具Jenkins
- tomcat替换.class文件并没有生效的原因(失效原因)
- 关于ContentProvider,ContentResolver的学习笔记
- vue学习指南
- 关于 ESP 定理
- 欢迎界面进行跳转
- MySQL 学习记录(一)
- 表单中input自动填充问题
- 创建SpringMVC项目(maven)
- 关于maven项目搭建并发布到linux(jdk)
- websocket的简单应用
- tensorflow 学习第一个例子
- MMLSpark:微软开源的用于Spark的深度学习库