From cc8e2202817c6447bcb0eba9b651b27fcec4f850 Mon Sep 17 00:00:00 2001 From: de4dot Date: Tue, 1 Nov 2011 15:53:51 +0100 Subject: [PATCH] Also use ldfld/ldflda to detect arg types --- de4dot.code/deobfuscators/TypesRestorer.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/de4dot.code/deobfuscators/TypesRestorer.cs b/de4dot.code/deobfuscators/TypesRestorer.cs index e23f4635..7d143656 100644 --- a/de4dot.code/deobfuscators/TypesRestorer.cs +++ b/de4dot.code/deobfuscators/TypesRestorer.cs @@ -270,6 +270,14 @@ namespace de4dot.deobfuscators { } break; + case Code.Ldfld: + case Code.Ldflda: + args = getPushedArgInstructions(instructions, i); + if (args.Count < 1) + break; + addMethodArgType(getParameter(methodParams, method, args[0]), instr.Operand as FieldReference); + break; + //TODO: For better results, these should be checked: case Code.Starg: case Code.Starg_S: