恶意软件分析之UPX壳自动和手动脱壳

admin 2025-12-14 01:38:22 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

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


cover_image

恶意软件分析之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 → 脱壳成功

评论:0   参与:  7