反混淆VMProtect.NET之Mutation
本文介绍了VMProtect在.NET程序集保护中的Mutation保护,以及如何使用控制流分析技术将它还原。
本文介绍了VMProtect在.NET程序集保护中的Mutation保护,以及如何使用控制流分析技术将它还原。
本文介绍了.NET下的JIT层加密点与脱壳技巧,包括IL代码,Token,异常处理子句,局部变量这四种加密,并给出了一份基础的脱壳机框架源码。文中的内容适用于.NET Framework全版本,.NET Core 1.0~3.1,.NET 5+也大致相同。文中的.NET若未作说明,均指代.NET Framework。
在了解基本的控制流知识后,本文会继续基于此介绍一些还原控制流混淆的手段,并以ConfuserEx的控制流混淆为例写出一个还原它的脱壳机。
对于一些复杂的混淆手段,还原它们需要控制流分析。本文介绍了基本的.NET控制流分析知识,了解这些足以还原大部分需要控制流分析的混淆。
反射是.NET中的一个重要特性,基于这个特性,我们很多时候不需要完全分析出加密算法本身,只是使用反射API就可以完成解密。本文将介绍.NET下的动态解密技巧以及相应的反抗措施。
ILProtector的核心保护原理是动态方法。本文详细介绍了ILProtector的保护细节,并针对性地写出脱壳机。
许多人都知道利用dnSpy单步调试+Dump+CodeCracker的一系列工具可以脱去ConfuserEx壳,这些在网上都有教程,但是并没有文章说明过背后的原理。本文讲尽可能详细解说ConfuserEx的Anti Tamper与Anti Dump。