protected override void ScanForObfuscator() { staticStringInliner.UseUnknownArgs = true; arrayBlockState = new ArrayBlockState(module); arrayBlockState.Initialize(DeobfuscatedFile); stringDecrypter = new StringDecrypter(module); stringDecrypter.Find(DeobfuscatedFile); resourceResolver = new ResourceResolver(module, DeobfuscatedFile, this); resourceResolver.Find(); assemblyResolver = new AssemblyResolver(module, DeobfuscatedFile, this); assemblyResolver.Find(); obfuscatorName = DetectVersion(); }
public ArrayBlockDeobfuscator(ArrayBlockState arrayBlockState) { this.arrayBlockState = arrayBlockState; }
static bool IsLdelem(ArrayBlockState.FieldInfo info, Code code) { switch (info.elementType) { case ElementType.Boolean: case ElementType.I1: case ElementType.U1: return code == Code.Ldelem_I1 || code == Code.Ldelem_U1; case ElementType.Char: case ElementType.I2: case ElementType.U2: return code == Code.Ldelem_I2 || code == Code.Ldelem_U2; case ElementType.I4: case ElementType.U4: return code == Code.Ldelem_I4 || code == Code.Ldelem_U4; default: return false; } }