dorminirko 发表于 2022-8-18 09:50

关于X64位upx的脱壳问题

各位大佬,找到一个街机游戏加载器,但是无奈这东西没写投币功能,默认freeplay,想自己修改
于是开始开始用ida加载 发现函数少的可怜,意识到是加壳了
用DIE查壳如下图所示,是UPX的壳

于是网上查找各种关于UPX脱壳的教程,发现都是用的OD脱得,因为这个程序是64位的,无法用OD加载
就换用了X64dbg,但是问题来了,网上OD里介绍的那些pushad pushfd 还有ESP在x64dbg里完全没有
于是下面的过程如果哪里不对希望大佬们帮助一下
首先载入x64dbg,取消系统断点,停在了EP上如图所示

心想没ESP但是有长得差不多的RSP 于是就用RSP代替ESP做了跟踪法

F8单步到RSP变红,在转储中跟随下断点,然后F9运行,来到我认为的程序入口OEP处
因为不知道vc++ 2013的64位 OEP啥特点

以此处为OEP起点开始DUMP,修复IAT后,再用IDA加载 确实出现了很多函数,但是问朋友他说这样不对
我就不知道咋弄了,因为关于x64脱壳和x64dbg的资料实在是太少了,故求大神们纠正错误,和给与援助。
多谢
我改过的dll和原版dll还有运行环境都在这里,希望大佬们给与帮助
https://pan.baidu.com/s/11MufYDArVIXRrwWr9KQQ0Q?pwd=qm5e

如果帖子涉及违规,请版主删除,谢谢

Hmily 发表于 2022-8-18 10:41

看最后的图,过了那个jmp过去才是oep吧,另外论坛刚有同学发了64的完美分析:


完美UPX脱壳------之投怀送抱篇(适合所有变形)
https://www.52pojie.cn/thread-1673206-1-1.html

dorminirko 发表于 2022-8-18 12:03

谢谢大佬 ,确实是jmp过去才是OEP谢谢 已经脱壳成功

dorminirko 发表于 2022-8-19 09:36

大佬,再问下,UPX壳脱了,但是报错FThunk 咋回事显示丢失一堆api,这个咋解决啊
这样直接修复后会提示找不到?.dll无法启动
页: [1]
查看完整版本: 关于X64位upx的脱壳问题