一些术语的备忘录
区块的对齐值
有两种对齐值,一种用于磁盘文件内,另一种用于内存中。
在PE文件头里,FileAlignment定义了磁盘区块的对齐值。200h,512
SectionAlignment定义了内存中区块的对齐值。1000h,4K
应用程序加载映射示意图
外壳加载示意图:
寻找OEP
OEP是程序的原始入口点,一个正常的程序只有EP,只有入口点被修改的程序(加壳等),才会拥有OEP。
根据跨段指令寻找OEP:手动跟踪
用内存访问断点寻找OEP
外壳先将压缩的代码解压并释放到对应的区块上,处理完毕再跳转到代码段执行。
按“ALT+M”组合键打开内存模块,对代码段(.text)按F2设置内存访问断点。
根据栈平衡原理寻找OEP
在编写加壳软件时,必须保证外壳初始化的现场环境〔各寄存器值)与原程序的现场环境是相同
加壳程序在初始化时保存各寄存器的值,待外壳执行完毕恢复各寄存器的内容,最后跳转到原程序执行。
扫描二维码关注公众号,回复:
13591815 查看本文章