安全研究人员最近公布了通过创新地使用Harmony库来对抗.net恶意软件的战略见解。周一发表的这项研究探讨了代码操纵在恶意软件分析中的重要性,强调了它对研究人员、分析师和逆向工程师的关键作用。
传统上,代码功能是通过调试、动态二进制Instrumentation (Dynamic Binary Instrumentation, DBI)或挂钩框架来改变的。虽然这些方法已被证明对非托管的本机代码是有效的,但当处理运行在.net平台上的应用程序时,情况就不同了。
在.net领域,在被管理层上检测代码的能力是有限的,这给研究人员带来了挑战。然而,Check Point Research (CPR)现在强调Harmony库是一个出色的解决方案。
作为一个开源库,Harmony擅长于实时修补、替换和修饰。net方法,克服了与修改托管代码相关的限制。
这篇CPR研究文章介绍了使用Harmony库的.net托管钩子的概念,深入研究了它的内部结构,并提供了实际的实现示例,展示了不同类型的Harmony补丁。
值得注意的是,Harmony库仅对内存中的代码进行操作,确保修改不会影响磁盘上的文件。这个特性被证明是无价的,尤其是在处理.net恶意软件时。就上下文而言,基于磁盘的去混淆可能会改变原始结构并导致功能损失。
CPR研究还强调了Harmony钩子的多功能性,允许研究人员修改所有引用程序集的功能,特别是那些与.net运行时集成的程序集。此外,它还涉及了引导和注入过程,概述了如何通过加载器或注入器将Harmony注入到.net进程中。
此外,该研究还对各种类型的Harmony补丁进行了分类,如Prefix、Postfix、Transpiler、Finalizer和Reverse Patch,每种补丁都有修改.net方法行为的特定目的。
技术总结中写道:“这些例子展示了.net连接是多么强大,更重要的是,一旦我们使用Harmony库,实现.net插装是多么容易和直接。”