diff --git a/de4dot.code/AssemblyModule.cs b/de4dot.code/AssemblyModule.cs index 5cbe1552..a719b9a6 100644 --- a/de4dot.code/AssemblyModule.cs +++ b/de4dot.code/AssemblyModule.cs @@ -38,9 +38,10 @@ namespace de4dot { return module; } - public void save(string newFilename, bool updateMaxStack) { + public void save(string newFilename, bool updateMaxStack, IWriterListener writerListener) { var writerParams = new WriterParameters() { UpdateMaxStack = updateMaxStack, + WriterListener = writerListener, }; module.Write(newFilename, writerParams); } diff --git a/de4dot.code/ObfuscatedFile.cs b/de4dot.code/ObfuscatedFile.cs index 94a26593..02cbd4e1 100644 --- a/de4dot.code/ObfuscatedFile.cs +++ b/de4dot.code/ObfuscatedFile.cs @@ -256,7 +256,7 @@ namespace de4dot { public void save() { Log.n("Saving {0}", options.NewFilename); - assemblyModule.save(options.NewFilename, options.ControlFlowDeobfuscation); + assemblyModule.save(options.NewFilename, options.ControlFlowDeobfuscation, deob as IWriterListener); } IList getAllMethods() { diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index a0a0688a..648c978d 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -25,7 +25,7 @@ using Mono.MyStuff; using de4dot.blocks; namespace de4dot.deobfuscators { - abstract class DeobfuscatorBase : IDeobfuscator { + abstract class DeobfuscatorBase : IDeobfuscator, IWriterListener { public const string DEFAULT_VALID_NAME_REGEX = @"^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.`-]*$"; class RemoveInfo { @@ -505,7 +505,7 @@ namespace de4dot.deobfuscators { protected bool hasMetadataStream(string name) { foreach (var stream in module.MetadataStreams) { - if (stream.name == name) + if (stream.Name == name) return true; } return false; @@ -548,5 +548,8 @@ namespace de4dot.deobfuscators { public virtual bool isValidMethodArgName(string name) { return name != null && checkValidName(name); } + + public virtual void OnBeforeAddingResources(MetadataBuilder builder) { + } } }