逆向——脱壳
#脱壳
有壳和无壳的区别
壳的类型
- 压缩壳
- 加密壳
- 虚拟机壳
区别
- 入口点改变
- 区段信息改变
- 代码段程序隐藏
- 加壳程序修改后无法保存
- 运行后,恢复的程序会将修改的内容覆盖
脱壳的关键
寻找OEP(原始程序入口点)
寻找OEP
寻找大跳转
- 小跳转:JMP SHORT XXXXXX(EB)
- 大跳转:JMP XXXXXXX(E9)
- 间接寻址:JMP [XXXXXXX](FF25)
SFX功能定位OEP
- SFX功能是OD自带的
- SFX需要在程序代码段以外使用(加载后入口点在程序代码段则不能使用)
- 当出现分析异常时,在UDD文件下删除对应的分析记录,重新导入
- 使用完成后将SFX设置归位
内存执行定位OEP
- 排除法,在区段信息中除了壳操作(解密、还原、写入)的段依此尝试设置内存访问断点(特殊OD)
ESP定律
- 堆栈平衡原理
- 流程
-
<