CTF逆向Re:零基础系统性入门教程-4-程序壳

目录

第三章:程序壳类型和脱壳方法

简单谈谈壳

壳的分类和对策

一、压缩壳

尝试自动脱壳

手动脱壳

二、加密壳

三、VM 壳

小结

下一章


上一章投票:脱壳1票,动态分析1票。那么我先从脱壳讲起吧。

第三章:程序壳类型和脱壳方法

简单谈谈壳

简单来说,程序壳是一种软件保护技术,通常用于对程序进行压缩、加密或反调试处理,以防止逆向工程和破解。

在做逆向题时,最常见的是UPX壳,大部分都可以用工具脱壳,小部分是魔改壳,需要手动脱壳。

IDA打开带有UPX壳的程序

壳的分类和对策

程序壳可以由原理分几大类,在赛场上比较常见的是以下的几种:

维度压缩壳加密壳VM 壳
核心目的减小体积防静态分析防动态 / 静态分析
逆向难度低(自动工具可解)中(需绕过反调试)极高(需逆向 VM 指令集)
典型操作压缩→解压加密→解密→反调试指令转换→VM 解释执行
脱壳关键定位 OEP 后直接 dump绕过反调试 + 修复 IAT逆向 VM 指令集 + 代码重建

总结一个解题步骤

一、压缩壳
  • 核心功能:压缩程序代码 / 数据以减小体积,运行时自动解压。
  • 反逆向原理:提前压缩代码,运行时解压,因为IDA静态分析不执行程序,因此无法看到原本程序。
压缩壳核心特点脱壳难度
UPX逆向题目最常见的程序壳,简单题多数可以用程序自带脱壳命令(upx -d 程序地址)自动脱壳,部分魔改需要手动脱壳。★☆☆☆☆
ASPack压缩率略高于 UPX,加入简单 CRC 校验防止篡改。用Aspackstripper自动脱壳。不常见
PECompact支持 “固实压缩”(将所有区段合并压缩),压缩后体积更小,但解压速度较慢。不常见

下以64位程序的UPX壳为例

显示明显的红色字体:UPX(3.96)

尝试自动脱壳

upx自动脱壳网上有非常详细的教程,这里就不复述了。

成功了,因此可以直接进行常规分析流程(第三章讲过)

手动脱壳

如果自动脱壳不成功,那么就需要手动脱壳,或者修复后再自动脱壳。我们先不介绍魔改壳,因为我也不是很熟。先展示手动脱常规UPX壳。不同位数的脱壳不一样。这个程序是64位的,先将程序拖入x64DBG。

这个界面真的会劝退很多初学者,不过没关系我会带着大家一步步走。

按下F9(运行),跳到默认断点,也就是看到很多个push的地方。接着按F8(单步),执行过push之后,右键右边的RSP,在弹出来的窗口点击“在内存窗口中转到”,右键左下角第一个00(栈顶)——断点——硬件,访问——4字节。

下好断点后,F9运行到很多个pop的地方,往下找跳转,观察到箭头所指跳转地址很远,因此可以初步判断此次是主函数入口。直接按F8或者下断点执行到跳转函数,

跳转过去后,跟着图示步骤走。

得到 xxx_dump_SCY文件,就可以进入IDA分析了,和用工具脱壳结果还是有区别的,不过能解出flag就行。

手动脱壳程序的静态分析

剩下的两种壳一般用工具自动脱壳就行,手动脱壳就不讲了,一方面是不常见,一方面是我也不会。

加密壳
  • 核心功能:加密程序内容,需解密后才能运行,防静态分析。
  • 代表: Themida/WinLicense(强加密 + 反调试)、Armadillo、VMProtect(虚拟机加密)。
加密壳核心特点脱壳难度
Themida集成 AES 加密 + 多层反调试(检测虚拟机、内存断点)+ 代码虚拟化(部分功能),商业级防护。★★★★★
Armadillo支持 “硬件绑定”(用 CPU / 主板 ID 生成密钥),加密后脱离原始机器无法运行,适合软件授权。★★★★☆
Obsidium 轻量级加密 + 花指令混淆,反调试较弱但体积小,适合共享软件。★★★☆☆
三、VM 壳
  • 核心功能:将程序指令转换为自定义虚拟机指令,逆向难度极高。
  • 代表:VMProtect、SVKP、TitanEngine。
VM 壳核心特点逆向难度
VMProtect 支持 x86/x64/ARM 架构,VM 指令集动态生成(每次加壳不同),集成反调试 + 反 dump。★★★★★
SVKP 轻量级 VM 壳,指令集简单(约 50 条),但混淆极强(大量无效指令)。★★★★☆
TitanEngine企业级 VM 壳,支持 “VM 嵌套”(VM 引擎本身被另一层 VM 保护),几乎无法手动逆向。★★★★★

小结

加密壳和VM壳现在只做个了解就行了,难度太大了,UPX壳才是我们逆向题的常考点和重点。

脱壳这部分属于逆向的一个难点,特别是手动脱壳的部分,需要大量的练习熟悉流程以及应对不同的情况。多研究,总会成功的。

var code = "49e9e2dc-7677-4809-8765-8c2468d7637f"

下一章:动态分析

posted @ 2025-10-28 20:20  Penetr4t10n  阅读(0)  评论(0)    收藏  举报  来源