From 70916173f385e9dd34acc0d81dc1b1802b3413ac Mon Sep 17 00:00:00 2001 From: de4dot Date: Fri, 2 Nov 2012 07:36:02 +0100 Subject: [PATCH] Update code since dot10 was updated --- AssemblyData/methodsrewriter/CodeGenerator.cs | 6 +++--- .../methodsrewriter/MethodsRewriter.cs | 4 ++-- blocks/CodeGenerator.cs | 4 ++-- blocks/TryHandlerBlock.cs | 4 ++-- blocks/cflow/InstructionEmulator.cs | 18 +++++++++--------- blocks/cflow/MethodCallInlinerBase.cs | 4 ++-- de4dot.code/ObfuscatedFile.cs | 4 ++-- de4dot.code/deobfuscators/DeobfuscatorBase.cs | 2 +- .../deobfuscators/ExceptionLoggerRemover.cs | 2 +- dot10 | 2 +- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/AssemblyData/methodsrewriter/CodeGenerator.cs b/AssemblyData/methodsrewriter/CodeGenerator.cs index 16656c64..ad3c5000 100644 --- a/AssemblyData/methodsrewriter/CodeGenerator.cs +++ b/AssemblyData/methodsrewriter/CodeGenerator.cs @@ -134,7 +134,7 @@ namespace AssemblyData.methodsrewriter { if (ex.FilterStart == instr) { } if (ex.HandlerStart == instr) { - if (ex.HandlerType == ExceptionClause.Finally) + if (ex.HandlerType == ExceptionHandlerType.Finally) ilg.BeginFinallyBlock(); else ilg.BeginCatchBlock(Resolver.getRtType(ex.CatchType)); @@ -317,11 +317,11 @@ namespace AssemblyData.methodsrewriter { break; case OperandType.InlineVar: - ilg.Emit(opcode, checked((short)((IVariable)instr.Operand).Number)); + ilg.Emit(opcode, checked((short)((IVariable)instr.Operand).Index)); break; case OperandType.ShortInlineVar: - ilg.Emit(opcode, checked((byte)((IVariable)instr.Operand).Number)); + ilg.Emit(opcode, checked((byte)((IVariable)instr.Operand).Index)); break; case OperandType.InlineSig: //TODO: diff --git a/AssemblyData/methodsrewriter/MethodsRewriter.cs b/AssemblyData/methodsrewriter/MethodsRewriter.cs index 9940499a..dbd534ef 100644 --- a/AssemblyData/methodsrewriter/MethodsRewriter.cs +++ b/AssemblyData/methodsrewriter/MethodsRewriter.cs @@ -332,8 +332,8 @@ namespace AssemblyData.methodsrewriter { } static IList getParameters(MethodDef method) { - var list = new List(method.Parameters.Length + 1); - for (int i = 0; i < method.Parameters.Length; i++) + var list = new List(method.Parameters.Count + 1); + for (int i = 0; i < method.Parameters.Count; i++) list.Add(method.Parameters[i].Type); return list; } diff --git a/blocks/CodeGenerator.cs b/blocks/CodeGenerator.cs index 04bf88cc..db0bcf6e 100644 --- a/blocks/CodeGenerator.cs +++ b/blocks/CodeGenerator.cs @@ -46,10 +46,10 @@ namespace de4dot.blocks { public int handlerStart; public int handlerEnd; public ITypeDefOrRef catchType; - public ExceptionClause handlerType; + public ExceptionHandlerType handlerType; public ExceptionInfo(int tryStart, int tryEnd, int filterStart, int handlerStart, int handlerEnd, ITypeDefOrRef catchType, - ExceptionClause handlerType) { + ExceptionHandlerType handlerType) { if (tryStart > tryEnd || filterStart > handlerStart || tryStart < 0 || tryEnd < 0 || filterStart < 0 || handlerStart < 0 || handlerEnd < 0) throw new ApplicationException("Invalid start/end/filter/handler indexes"); diff --git a/blocks/TryHandlerBlock.cs b/blocks/TryHandlerBlock.cs index a2e8bf9e..9772777d 100644 --- a/blocks/TryHandlerBlock.cs +++ b/blocks/TryHandlerBlock.cs @@ -28,13 +28,13 @@ namespace de4dot.blocks { // State for an ExceptionHandler instance ITypeDefOrRef catchType; - ExceptionClause handlerType; + ExceptionHandlerType handlerType; public ITypeDefOrRef CatchType { get { return catchType; } } - public ExceptionClause HandlerType { + public ExceptionHandlerType HandlerType { get { return handlerType; } } diff --git a/blocks/cflow/InstructionEmulator.cs b/blocks/cflow/InstructionEmulator.cs index d27616b4..5324a400 100644 --- a/blocks/cflow/InstructionEmulator.cs +++ b/blocks/cflow/InstructionEmulator.cs @@ -163,7 +163,7 @@ namespace de4dot.blocks.cflow { } public Value getArg(Parameter arg) { - return getArg(arg.Number); + return getArg(arg.Index); } TypeSig getArgType(int index) { @@ -173,11 +173,11 @@ namespace de4dot.blocks.cflow { } public void setArg(Parameter arg, Value value) { - setArg(arg.Number, value); + setArg(arg.Index, value); } public void makeArgUnknown(Parameter arg) { - setArg(arg, getUnknownArg(arg.Number)); + setArg(arg, getUnknownArg(arg.Index)); } void setArg(int index, Value value) { @@ -194,15 +194,15 @@ namespace de4dot.blocks.cflow { } public Value getLocal(Local local) { - return getLocal(local.Number); + return getLocal(local.Index); } public void setLocal(Local local, Value value) { - setLocal(local.Number, value); + setLocal(local.Index, value); } public void makeLocalUnknown(Local local) { - setLocal(local.Number, getUnknownLocal(local.Number)); + setLocal(local.Index, getUnknownLocal(local.Index)); } void setLocal(int index, Value value) { @@ -247,7 +247,7 @@ namespace de4dot.blocks.cflow { case Code.Starg: case Code.Starg_S: emulate_Starg((Parameter)instr.Operand); break; case Code.Stloc: - case Code.Stloc_S: emulate_Stloc(((Local)instr.Operand).Number); break; + case Code.Stloc_S: emulate_Stloc(((Local)instr.Operand).Index); break; case Code.Stloc_0: emulate_Stloc(0); break; case Code.Stloc_1: emulate_Stloc(1); break; case Code.Stloc_2: emulate_Stloc(2); break; @@ -269,7 +269,7 @@ namespace de4dot.blocks.cflow { case Code.Ldarga: case Code.Ldarga_S: emulate_Ldarga((Parameter)instr.Operand); break; case Code.Ldloca: - case Code.Ldloca_S: emulate_Ldloca(((Local)instr.Operand).Number); break; + case Code.Ldloca_S: emulate_Ldloca(((Local)instr.Operand).Index); break; case Code.Dup: valueStack.copyTop(); break; @@ -837,7 +837,7 @@ namespace de4dot.blocks.cflow { } void emulate_Starg(Parameter arg) { - setArg(arg.Number, valueStack.pop()); + setArg(arg.Index, valueStack.pop()); } void emulate_Stloc(int index) { diff --git a/blocks/cflow/MethodCallInlinerBase.cs b/blocks/cflow/MethodCallInlinerBase.cs index b4a787c9..a61410d1 100644 --- a/blocks/cflow/MethodCallInlinerBase.cs +++ b/blocks/cflow/MethodCallInlinerBase.cs @@ -165,7 +165,7 @@ namespace de4dot.blocks.cflow { var methodArgs = methodToInline.Parameters; var calledMethodArgs = DotNetUtils.getArgs(ctor); - if (methodArgs.Length + 1 - popLastArgs != calledMethodArgs.Count) + if (methodArgs.Count + 1 - popLastArgs != calledMethodArgs.Count) return null; for (int i = 1; i < calledMethodArgs.Count; i++) { if (!isCompatibleType(i, calledMethodArgs[i], methodArgs[i - 1].Type)) @@ -199,7 +199,7 @@ namespace de4dot.blocks.cflow { var methodToInlineArgs = methodToInline.Parameters; var methodArgs = DotNetUtils.getArgs(method); bool hasImplicitThis = method.MethodSig.ImplicitThis; - if (methodToInlineArgs.Length - ignoreLastMethodToInlineArgs != methodArgs.Count) + if (methodToInlineArgs.Count - ignoreLastMethodToInlineArgs != methodArgs.Count) return false; for (int i = 0; i < methodArgs.Count; i++) { var methodArg = methodArgs[i]; diff --git a/de4dot.code/ObfuscatedFile.cs b/de4dot.code/ObfuscatedFile.cs index bbaa7a49..97a23719 100644 --- a/de4dot.code/ObfuscatedFile.cs +++ b/de4dot.code/ObfuscatedFile.cs @@ -440,11 +440,11 @@ namespace de4dot.code { continue; if (argsStrings == null) { - if (method.Parameters.Length == 0) + if (method.Parameters.Count == 0) continue; } else { - if (argsStrings.Length != method.Parameters.Length) + if (argsStrings.Length != method.Parameters.Count) continue; for (int i = 0; i < argsStrings.Length; i++) { if (argsStrings[i] != method.Parameters[i].Type.FullName) diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index e652d228..eab3a3c9 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -562,7 +562,7 @@ namespace de4dot.code.deobfuscators { var body = method.CilBody; if (body.InitLocals || body.MaxStack > 8) return true; - if (body.LocalList.Length > 0) + if (body.LocalList.Count > 0) return true; if (body.ExceptionHandlers.Count > 0) return true; diff --git a/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs b/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs index 34cc2c87..5a8d13f9 100644 --- a/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs +++ b/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs @@ -42,7 +42,7 @@ namespace de4dot.code.deobfuscators { if (tryBlock.TryHandlerBlocks.Count != 1) continue; var catchBlock = tryBlock.TryHandlerBlocks[0]; - if (catchBlock.HandlerType != ExceptionClause.Catch || + if (catchBlock.HandlerType != ExceptionHandlerType.Catch || catchBlock.CatchType.FullName != "System.Exception") { continue; } diff --git a/dot10 b/dot10 index 4030f90e..8ca97147 160000 --- a/dot10 +++ b/dot10 @@ -1 +1 @@ -Subproject commit 4030f90eb8d1a71793dfd1772efc7b5e5513dff4 +Subproject commit 8ca97147ac3d379b023e0fc65c6ba997287a5f77