Add options to disable renaming types, fields, etc
This commit is contained in:
parent
99c7cf8eb5
commit
b3e06c4ce6
|
@ -120,6 +120,21 @@ namespace de4dot.cui {
|
||||||
miscOptions.Add(new NoArgOption(null, "dont-rename", "Don't rename classes, methods, etc.", () => {
|
miscOptions.Add(new NoArgOption(null, "dont-rename", "Don't rename classes, methods, etc.", () => {
|
||||||
filesOptions.RenameSymbols = false;
|
filesOptions.RenameSymbols = false;
|
||||||
}));
|
}));
|
||||||
|
miscOptions.Add(new OneArgOption(null, "keep-names", "Don't rename n(amespaces), t(ypes), p(rops), e(vents), f(ields), m(ethods), a(rgs), g(enericparams). Can be combined, eg. efm", "flags", (val) => {
|
||||||
|
foreach (var c in val) {
|
||||||
|
switch (c) {
|
||||||
|
case 'n': filesOptions.RenameNamespaces = false; break;
|
||||||
|
case 't': filesOptions.RenameTypes = false; break;
|
||||||
|
case 'p': filesOptions.RenameProperties = false; break;
|
||||||
|
case 'e': filesOptions.RenameEvents = false; break;
|
||||||
|
case 'f': filesOptions.RenameFields = false; break;
|
||||||
|
case 'm': filesOptions.RenameMethods = false; break;
|
||||||
|
case 'a': filesOptions.RenameMethodArgs = false; break;
|
||||||
|
case 'g': filesOptions.RenameGenericParams = false; break;
|
||||||
|
default: throw new UserException(string.Format("Unrecognized --keep-names char: '{0}'", c));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
miscOptions.Add(new NoArgOption(null, "dont-restore-props", "Don't restore properties/events", () => {
|
miscOptions.Add(new NoArgOption(null, "dont-restore-props", "Don't restore properties/events", () => {
|
||||||
filesOptions.RestorePropsEvents = false;
|
filesOptions.RestorePropsEvents = false;
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -38,6 +38,14 @@ namespace de4dot.cui {
|
||||||
public IList<IObfuscatedFile> Files { get; set; }
|
public IList<IObfuscatedFile> Files { get; set; }
|
||||||
public IList<SearchDir> SearchDirs { get; set; }
|
public IList<SearchDir> SearchDirs { get; set; }
|
||||||
public bool DetectObfuscators { get; set; }
|
public bool DetectObfuscators { get; set; }
|
||||||
|
public bool RenameNamespaces { get; set; }
|
||||||
|
public bool RenameTypes { get; set; }
|
||||||
|
public bool RenameProperties { get; set; }
|
||||||
|
public bool RenameEvents { get; set; }
|
||||||
|
public bool RenameFields { get; set; }
|
||||||
|
public bool RenameMethods { get; set; }
|
||||||
|
public bool RenameMethodArgs { get; set; }
|
||||||
|
public bool RenameGenericParams { get; set; }
|
||||||
public bool RenameSymbols { get; set; }
|
public bool RenameSymbols { get; set; }
|
||||||
public bool RestorePropsEvents { get; set; }
|
public bool RestorePropsEvents { get; set; }
|
||||||
public bool ControlFlowDeobfuscation { get; set; }
|
public bool ControlFlowDeobfuscation { get; set; }
|
||||||
|
@ -53,6 +61,14 @@ namespace de4dot.cui {
|
||||||
Files = new List<IObfuscatedFile>();
|
Files = new List<IObfuscatedFile>();
|
||||||
SearchDirs = new List<SearchDir>();
|
SearchDirs = new List<SearchDir>();
|
||||||
DefaultStringDecrypterMethods = new List<string>();
|
DefaultStringDecrypterMethods = new List<string>();
|
||||||
|
RenameNamespaces = true;
|
||||||
|
RenameTypes = true;
|
||||||
|
RenameProperties = true;
|
||||||
|
RenameEvents = true;
|
||||||
|
RenameFields = true;
|
||||||
|
RenameMethods = true;
|
||||||
|
RenameMethodArgs = true;
|
||||||
|
RenameGenericParams = true;
|
||||||
RenameSymbols = true;
|
RenameSymbols = true;
|
||||||
RestorePropsEvents = true;
|
RestorePropsEvents = true;
|
||||||
ControlFlowDeobfuscation = true;
|
ControlFlowDeobfuscation = true;
|
||||||
|
@ -369,6 +385,14 @@ namespace de4dot.cui {
|
||||||
if (!options.RenameSymbols)
|
if (!options.RenameSymbols)
|
||||||
return;
|
return;
|
||||||
var renamer = new Renamer(deobfuscatorContext, theFiles) {
|
var renamer = new Renamer(deobfuscatorContext, theFiles) {
|
||||||
|
RenameNamespaces = options.RenameNamespaces,
|
||||||
|
RenameTypes = options.RenameTypes,
|
||||||
|
RenameProperties = options.RenameProperties,
|
||||||
|
RenameEvents = options.RenameEvents,
|
||||||
|
RenameFields = options.RenameFields,
|
||||||
|
RenameMethods = options.RenameMethods,
|
||||||
|
RenameMethodArgs = options.RenameMethodArgs,
|
||||||
|
RenameGenericParams = options.RenameGenericParams,
|
||||||
RestorePropertiesFromNames = options.RestorePropsEvents,
|
RestorePropertiesFromNames = options.RestorePropsEvents,
|
||||||
RestoreEventsFromNames = options.RestorePropsEvents,
|
RestoreEventsFromNames = options.RestorePropsEvents,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user