G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

admin 2025年6月13日21:57:13评论12 views字数 2019阅读6分43秒阅读模式

在国内的软件代码破解(crack)论坛上,一度以能够破解虚拟化混淆技术(Virtualization Obfuscation,以VMProtect为代表)作为技术能力高超的标志。不过随着越来越的分析文章对这项保护技术(基本原理就是下图这么简单,其实就是用一个解释器型的虚拟机对自定义的字节码进行执行)进行分析和祛魅,很多CTF竞赛甚至都会拿这种保护技术来当成题目考大家了:

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

经过了数十年的研究,今天我们要介绍的这篇来自IEEE S&P 2025的论文 Inspecting Virtual Machine Diversification Inside Virtualization Obfuscation 已经开始总结不同的虚拟化混淆工具产生的混淆代码的差异了。

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

关于虚拟化混淆的对抗分析,早期的学术研究可以追溯至2009年的IEEE S&P,有一篇论文 Automatic Reverse Engineering of Malware Emulators 比较正式地介绍了虚拟化混淆的基本概念(https://people.cs.georgetown.edu/~clay/classes/spring2013/papers/Automatic_Reverse_Engineering_of_Malware_Emulators.pdf 论文里面这幅图很精美,比我们今天推荐论文里面的要好看),

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

虽说虚拟化混淆的原理大概是一样的,实际上的虚拟化混淆(特别是一些商业产品,例如下图这个Code Virtualizer)会有非常多的变种,但是虚拟化混淆工具一般不太会告诉你这些变化到底是什么,只会宣传自己“有非常多的分身”,即使安全分析人员能够搞定了其中的一个特例,也不代表能够全面破解它的各类保护。我们今天介绍的这篇论文就想要试图从多样性的角度去审视现有的虚拟化混淆技术,看看到底现实中的虚拟化混淆工具和技术有多少变化。

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

如果你对虚拟化混淆的核心技术原理不太了解,那么本文的第三章是你最值得学习的,因为它从三个层次对虚拟化混淆的特征进行了分类(如下表所示)。在第一个层面上,论文介绍了虚拟化混淆中的核心——虚拟机解释器的解释执行模型的不同特点;针对第二个层面,论文介绍了不同虚拟化混淆的字节码设计特点;在第三个层面中,论文详细讨论了针对字节码进行解释执行的具体实现方法,也就是所谓的handler的实现的差异性。

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

其实如果大家想要详细去了解上面的这些差别,一方面可以去阅读论文的第三章,另一方面我们其实是推荐大家去阅读一本书——《虚拟机:系统与进程的通用平台》,这本书可以说是论文第三章的扩展版(当然也需要你花更多时间去消化)。当然,从实际的例子去学习也是非常好的知识获取路径,像这几年非常热门的Android ART解释器(JIT编译),还有很多人推崇的Lua语言的解释器(Lua VM),里面都有很多知识细节,如果你把这些都掌握了,那么去理解虚拟化混淆就真的是驾轻就熟了~

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

当然,在虚拟化混淆特别是商业化的虚拟化混淆技术里面, 除了正统的虚拟化解释执行的手段,还有很多奇技淫巧,这些基本上都是用来干扰逆向分析(特别是人工逆向分析)的手段,不过如果你不熟悉,还是很容易被唬住的,所以这部分值得大家去了解了解。

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

在第四章,论文作者还介绍了一个自研的工具——VM-Doctor,不过很可惜的是目前相关的repo还是空的,我们咨询了一下,了解到论文一作最近身体抱恙,做了个手术正在休息,过两周就可以出关然后给大家分享代码了!

到了论文的第五章,终于进入到对现在虚拟化混淆工具的横向测评了,其实就是常见的商业VMProtect、Code Virtualizer和开源的Tigress的比较,为什么下图里面密密麻麻这么多呢?其实是VMProtect、Code Virtualizer它们支持的不同的变种的名字(比如什么Tiger、Dolphin这种听上去很斗兽棋的风格)。

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

作者也很贴心(符合人类喜欢搞排名的特点)地对几个工具的各方面进行了比较,发现并没有六边形战士的存在,各家有各家的强项,当然商业工具也会考虑到运行效率、兼容性等等方面的因素,不能把保护搞得太复杂。

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

最后,作者对学术界之前设计的三个反混淆工具 Virtual Deobfuscator、VMHunt 和 Syntia 进行了测试,这个测试的特点是利用了本文的知识总结,也就是说,作者先改进了这三个工具,让它们能够更好地针对不同的虚拟化混淆的差异性进行差异化处理,再观察分析的结果会不会更准确,结果表明效果还挺好的(比如False Negative Rate能够降到0)

G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

论文:https://www.computer.org/csdl/proceedings-article/sp/2025/223600a071/21B7ReZrvva

原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月13日21:57:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2025-06-12 虚拟化混淆,看你七十二变?https://cn-sec.com/archives/4159888.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息