逆向基础:脱壳技术

一些术语的备忘录

区块的对齐值
有两种对齐值,一种用于磁盘文件内,另一种用于内存中。
在PE文件头里,FileAlignment定义了磁盘区块的对齐值。200h,512
SectionAlignment定义了内存中区块的对齐值。1000h,4K
应用程序加载映射示意图

外壳加载示意图:

 寻找OEP

OEP是程序的原始入口点,一个正常的程序只有EP,只有入口点被修改的程序(加壳等),才会拥有OEP

根据跨段指令寻找OEP:手动跟踪


用内存访问断点寻找OEP

外壳先将压缩的代码解压并释放到对应的区块上,处理完毕再跳转到代码段执行。

按“ALT+M”组合键打开内存模块,对代码段(.text)按F2设置内存访问断点。


根据栈平衡原理寻找OEP

在编写加壳软件时,必须保证外壳初始化的现场环境〔各寄存器值)与原程序的现场环境是相同

加壳程序在初始化时保存各寄存器的值,待外壳执行完毕恢复各寄存器的内容,最后跳转到原程序执行。

扫描二维码关注公众号,回复: 13591815 查看本文章

猜你喜欢

转载自blog.csdn.net/lm19770429/article/details/121333993