x64dbg 自带脱壳工具 Scylla
参考文章
https://zhuanlan.zhihu.com/p/34263050
脱壳流程
1、寻找原始 OEP
这一步骤的主要作用就是要确定原始程序代码到底在哪里,能找到原始程序的代码,说明壳代码执行完了,我们只有找到原始OEP才能进行下一步的动作。
2、dump 内存到文件
当我们找到原始 OEP,调试运行到原始 OEP 时,只要代码被还原,我们就可以在这个地方进行 dump 内存,将内存中被还原的代码和数据抓取下来,重新保存成一个文件,这样脱完壳时,我们就可以用静态分析工具分析程序了。
3、修复文件
这一步主要就是修复 IAT,对从内存中转储到本地的文件进行修复。
举例
找到 OEP 后,打开 Scylla,先填入 OEP,再点击 dump,并另存到文件夹中。

dump
这个时候程序大概率还不能执行,因为没有修复 IAT。

IAT 未修复
修复 IAT ,首先确保 scylla 插件中,【Misc】->【Options】->【Use advanced IAT search】打开。 记住 Fix Dump 要选上一步 dump 出来的结果。

修复 IAT
如果出现问题,也可以手动修复 IAT,双击报错项,然后根据 偏移地址和内存布局 选择 DLL 和函数即可,不过比较麻烦。
也可以尝试直接删除报错项再 Fix Dump。