1625-5 王子昂 总结《2018年2月25日》 【连续第512天总结】
A. 脱壳技术(8)脱压缩壳的技巧
B.
压缩壳
UPX
UPX壳既破坏了输入表也破坏了重定位表,因此尽量使用自解压命令来脱
upx -d File
有些工具为了防止UPX的自解压会修改UPX的标志位使其识别失败,例如UPXPR和UPX-Scrambler
此时就需要修复各个标志位
UPXFIX这个工具可以自动修复
手动时则需要注意:
- 区段名
两个块名应该为UPX0和UPX1 - UPX!标志
区段前会注明版本号,形如3.01.UPX!....
如果这个标志被删除,同样也会无法解压
修复时可以依据标志字节0C 09 ?? ??
或0D 09 ?? ??
,将其还原即可
手动脱壳时需要注意重定位表被清空,壳程序解压后会自己填充重定位信息
因此在脱壳时需要跳过填充部分的代码,将未被改变的原程序dump下来,然后再找到真正的重定位表来修复
ASPack
该外壳运行时,有一段时间会出现完整的原程序,包括输入表、重定位表都是完整的
因此它的兼容性极好
然而也正因为此,脱壳非常轻松,只要抓住这个时机将其dump出来就能得到原程序
C. 明日计划
脱壳技术(9)