public static void run(ModuleDefMD module, Assembly asm) { VMDecryptor.FindEncryptedMethods(module); bool flag = VMDecryptor.allEncMethods.Count != 0; bool flag2 = flag; if (flag2) { DecryptionMethods dec = VMDecryptor.setUpDecryptionRoutine(VMDecryptor.allEncMethods[0].method); VMDecryptor.DecryptMethods(dec, asm, module); } }
public static void FindEncryptedMethods(ModuleDefMD module) { foreach (TypeDef typeDef in module.GetTypes()) { foreach (MethodDef methodDef in typeDef.Methods) { bool flag = methodDef.MDToken.ToInt32() == 100663440; bool flag2 = flag; if (flag2) { } bool flag3 = !methodDef.HasBody; bool flag4 = !flag3; if (flag4) { bool flag5 = methodDef.Body.Instructions.Count > 70; bool flag6 = !flag5; if (flag6) { bool flag7 = !methodDef.Body.Instructions[0].IsLdcI4(); bool flag8 = !flag7; if (flag8) { bool flag9 = methodDef.Body.Instructions.Count < 3; bool flag10 = !flag9; if (flag10) { bool flag11 = methodDef.Body.Instructions[methodDef.Body.Instructions.Count - 3].OpCode != OpCodes.Call; bool flag12 = !flag11; if (flag12) { bool flag13 = !VMDecryptor.checkMethod(methodDef); bool flag14 = !flag13; if (flag14) { int ldcI4Value = methodDef.Body.Instructions[0].GetLdcI4Value(); EncryptedMethodDetails item = new EncryptedMethodDetails(methodDef, ldcI4Value); VMDecryptor.allEncMethods.Add(item); } } } } } } } } }