目录 Table of Contents
常规脱壳
PEiD 查壳发现后面有个 [Overlay], 就是附加数据
首先 OD 载入, 右键查找
> 命令序列
, 输入 popad
, popfd
, 注意顺序, 栈是先进后出, 后进先出
下断点运行, 取消断点, 单步来到 OEP
脱壳后报错无法运行 : Invalid data in the file !
PEiD查壳发现无 [Overlay]
这就说明存在附加数据
工具:overlay最终版 //有可能会报毒, 但没关系
WIN HEX或HEX WORKSHOP //手动处理附加工具
我们手动处理附加数据
ximo 用的 HEX workshop, 我比较习惯 winHex, 不过这两个软件操作都是类似的
首先把脱壳的源文件用 HEX workshop 打开
然后把数据拉到最后, 嗯, 都是附加数据
然后向上翻, 翻到第一次出现全部为 0 的时候
00008C00
这里
从00008C00
这里开始复制, 按住 shift, 然后拉到最后, 然后右键复制
然后打开脱壳后的那个程序
同样拉到最后, 然后把附加数据右键粘贴
上去
另存为, 即可运行, PEiD查壳发现已经带上 [Overlay] 附加数据, 可以运行
再教一种计算的方法
用 LordPE 打开需要脱壳的源程序
PE编辑器
查一下 区段
我们找最后一个区段
我们这个只有两个区段, 其他的可能有更多区段, 我们只用找最后一个区段
我们找 ROffset
和 RSize
, 即实际偏移量和实际大小这两个值, V开头的是虚拟的我们不用管
我们算实际的这两个值, 把这两个值相加 :
8800+400=8c00 //注意是十六进制
载入 HEX workshop, 右键 转到
> 偏移
, 或者直接 ctrl+G, 输入结果 8c00, 记住选择十六进制, 同样到达刚才我们找的那个位置
剩下步骤同上.
我们看见脱壳后的程序有好多空数据, 最好不要覆盖它们, 我们在后面加上附加数据, 因为这些空数据也有用.
当然也可以直接用 overlay 工具处理附加数据.