系列汇总
- 写一个PE的壳_Part 1:加载PE文件到内存
- 写一个PE的壳_Part 2:ASLR+修复输入表(IAT)+重定位表支持(.reloc)
- 写一个PE的壳_Part 3:Section里实现PE装载器
- 写一个PE的壳_Part 4:修复对ASLR支持+lief构建新PE
- 写一个PE的壳_Part 5:PE格式修复+lief源码修改
- 写一个PE的壳_Part 6:简单的混淆
文章目录
用原教程中Part 4的py文件处理test.exe,生成名为packed_bug1.exe
程序;运行时直接报错
下面给出了整个修复的思路
1.CFF查看
CFF看一下packed_bug1.exe,直观上会发现2处异常,导致PE格式解析出现问题
-
异常1:Data Directory中的Import Directory没有识别
构建程序会经历
unpacked.exe -> shifted_unpack.exe ->packed.exe
的过程,packed.exe的header是shifted_unpack.exe的header的简单拷贝;CFF发现shifted_unpack.exe的header是正常的,说明问题应该不是出在这里
- 异常2:Section Header中section table记录的信息错乱了