Restore field types and add option to disable it
This commit is contained in:
parent
0ac072cf7b
commit
ed625e256d
|
@ -28,11 +28,13 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
class DeobfuscatorInfo : DeobfuscatorInfoBase {
|
||||||
BoolOption decryptMethods;
|
BoolOption decryptMethods;
|
||||||
BoolOption decryptBools;
|
BoolOption decryptBools;
|
||||||
|
BoolOption restoreTypes;
|
||||||
|
|
||||||
public DeobfuscatorInfo()
|
public DeobfuscatorInfo()
|
||||||
: base("dr") {
|
: base("dr") {
|
||||||
decryptMethods = new BoolOption(null, makeArgName("methods"), "Decrypt methods", true);
|
decryptMethods = new BoolOption(null, makeArgName("methods"), "Decrypt methods", true);
|
||||||
decryptBools = new BoolOption(null, makeArgName("bools"), "Decrypt booleans", true);
|
decryptBools = new BoolOption(null, makeArgName("bools"), "Decrypt booleans", true);
|
||||||
|
restoreTypes = new BoolOption(null, makeArgName("types"), "Restore types (object -> real type)", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static string ObfuscatorType {
|
internal static string ObfuscatorType {
|
||||||
|
@ -48,6 +50,7 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
ValidNameRegex = validNameRegex.get(),
|
ValidNameRegex = validNameRegex.get(),
|
||||||
DecryptMethods = decryptMethods.get(),
|
DecryptMethods = decryptMethods.get(),
|
||||||
DecryptBools = decryptBools.get(),
|
DecryptBools = decryptBools.get(),
|
||||||
|
RestoreTypes = restoreTypes.get(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +58,7 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
return new List<Option>() {
|
return new List<Option>() {
|
||||||
decryptMethods,
|
decryptMethods,
|
||||||
decryptBools,
|
decryptBools,
|
||||||
|
restoreTypes,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,6 +77,7 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
internal class Options : OptionsBase {
|
internal class Options : OptionsBase {
|
||||||
public bool DecryptMethods { get; set; }
|
public bool DecryptMethods { get; set; }
|
||||||
public bool DecryptBools { get; set; }
|
public bool DecryptBools { get; set; }
|
||||||
|
public bool RestoreTypes { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Type {
|
public override string Type {
|
||||||
|
@ -315,6 +320,8 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void deobfuscateEnd() {
|
public override void deobfuscateEnd() {
|
||||||
|
if (options.RestoreTypes)
|
||||||
|
new TypesRestorer(module).deobfuscate();
|
||||||
base.deobfuscateEnd();
|
base.deobfuscateEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user