Don't re-read native file after unpacking it
This commit is contained in:
parent
68d962fb6e
commit
3311e28a87
|
@ -49,6 +49,12 @@ namespace de4dot.deobfuscators {
|
||||||
IList<RemoveInfo<ModuleReference>> modrefsToRemove = new List<RemoveInfo<ModuleReference>>();
|
IList<RemoveInfo<ModuleReference>> modrefsToRemove = new List<RemoveInfo<ModuleReference>>();
|
||||||
List<string> namesToPossiblyRemove = new List<string>();
|
List<string> namesToPossiblyRemove = new List<string>();
|
||||||
MethodCallRemover methodCallRemover = new MethodCallRemover();
|
MethodCallRemover methodCallRemover = new MethodCallRemover();
|
||||||
|
byte[] moduleBytes;
|
||||||
|
|
||||||
|
protected byte[] ModuleBytes {
|
||||||
|
get { return moduleBytes; }
|
||||||
|
set { moduleBytes = value; }
|
||||||
|
}
|
||||||
|
|
||||||
internal class OptionsBase : IDeobfuscatorOptions {
|
internal class OptionsBase : IDeobfuscatorOptions {
|
||||||
public bool RenameResourcesInCode { get; set; }
|
public bool RenameResourcesInCode { get; set; }
|
||||||
|
@ -121,6 +127,7 @@ namespace de4dot.deobfuscators {
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void deobfuscateBegin() {
|
public virtual void deobfuscateBegin() {
|
||||||
|
ModuleBytes = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void deobfuscateMethodBegin(Blocks blocks) {
|
public virtual void deobfuscateMethodBegin(Blocks blocks) {
|
||||||
|
|
|
@ -157,8 +157,13 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte[] unpackNativeFile(PeImage peImage) {
|
public override byte[] unpackNativeFile(PeImage peImage) {
|
||||||
|
var data = new NativeImageUnpacker(peImage).unpack();
|
||||||
|
if (data == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
unpackedNativeFile = true;
|
unpackedNativeFile = true;
|
||||||
return new NativeImageUnpacker(peImage).unpack();
|
ModuleBytes = data;
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void init(ModuleDefinition module) {
|
public override void init(ModuleDefinition module) {
|
||||||
|
@ -374,7 +379,7 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool getDecryptedModule(ref byte[] newFileData, ref Dictionary<uint, DumpedMethod> dumpedMethods) {
|
public override bool getDecryptedModule(ref byte[] newFileData, ref Dictionary<uint, DumpedMethod> dumpedMethods) {
|
||||||
fileData = DeobUtils.readModule(module);
|
fileData = ModuleBytes ?? DeobUtils.readModule(module);
|
||||||
peImage = new PeImage(fileData);
|
peImage = new PeImage(fileData);
|
||||||
|
|
||||||
if (!options.DecryptMethods)
|
if (!options.DecryptMethods)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user