【脱壳修复】脱壳修复IAT

520 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

什么是IAT(输入函数地址表 简称输入表)

如果脱壳后没有修复IAT那也只能在你的电脑上运行,无法在别人电脑上运行,因为IAT是为了提升软件的兼容性,软件启动后每次运行都会获取当前电脑的API函数地址,脱壳后就会损坏IAT也就无法获取机器的API函数地址。

可以通过od 右键 查看所有模块调用 来查询目前程序所调用的API函数地址

脱壳修复IAT

这次案例用的是UPX壳,把UPXdump下来进行修复。因为脱壳下来后壳把IAT给破坏了,脱下来后是无法运行的。

到OEP入口点后使用DUMP工具

在这里插入图片描述 找到我们进程的图标,然后先修正镜像大小。 在这里插入图片描述 然后右键完全脱壳保存到桌面 在这里插入图片描述 修复IAT,通过工具在保留iat地址的情况下保留下来。

回到刚刚od脱壳的文件,找到他的dll地址回车进去找到IAT头尾。 在这里插入图片描述 这里填写OEP的入口地址,还有IAT的长度和起始位置。 在这里插入图片描述 找到dll的CALL回车进去看看 在这里插入图片描述 右键内存地址跟随,这个就是第一个dll 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 修整转储到脱壳文件,发现可以运行了。