文章总结: 本文介绍了恶意软件分析中UPX壳的自动和手动脱壳方法。首选使用官方UPX工具直接脱壳,适用于未修改UPXHeader的情况。对于被修改的壳或反脱壳情况,文章详细讲解了使用x64dbg手动脱壳的三步流程:记录OEP、Dump内存、修复导入表和PEHeader,并提供了具体操作命令和流程图。 综合评分: 89 文章分类: 恶意软件,逆向分析,二进制安全,安全工具,漏洞分析

恶意软件分析之UPX壳自动和手动脱壳
原创
独特三明治
SOC安全分析之旅
2025年10月27日 19:16 上海
01
方法一:官方 UPX 直接脱(首选)
适用于 没有篡改 UPX Header、未加壳保护二次加密 的情况。

命令示例:
upx -d yourfile.exe

如果你想保留原文件备份:
upx -d yourfile.exe -o unpacked.exe
运行后会提示解压成功,unpacked.exe 就是原 EXE。
注意如果 upx -d 报错,如:
CantUnpackException
File already unpacked?
说明被修改结构,需要手动脱。
02
方法二:x64dbg 手动脱UPX(适用于改壳/反脱壳)
下面给你一个超级清晰的标准流程
步骤 1:加载进 x64dbg,记录 OEP
运行程序 → 会先进入 UPX stub等待其执行完解压 → 跳转到真正 OEP
常见方式:
UPX!memcpy
最关键动作:
当你发现代码从杂乱 shellcode → 正常 PE 程序代码结构按下:
Ctrl + Shift + F9 (暂停)
此时 RIP/EIP 即为真正 OEP 记住这个地址例如:
00405000
步骤 2:Dump 内存
在 x64dbg:
菜单 → Dump → Dump PE
Dump to file
步骤 3:修复导入表 & PE Header
使用工具:
(推荐)
或 Import REConstructor (aka ImpRec)
流程(以 Scylla 为例):
Attach 到目标进程
00405000
导出:unpacked.exe
正式脱壳完成
UPX 手工脱壳流程总结图
UPX Loader Stub → 解压内存区域 → 跳转真实OEP → Dump内存 → 修复IAT → 脱壳成功
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论