Add an option to not rename delegate fields
This commit is contained in:
parent
6be080ca59
commit
8a36c8eea6
|
@ -40,6 +40,7 @@ namespace de4dot.code.renamer {
|
||||||
public bool RestoreEvents { get; set; }
|
public bool RestoreEvents { get; set; }
|
||||||
public bool RestoreEventsFromNames { get; set; }
|
public bool RestoreEventsFromNames { get; set; }
|
||||||
public bool DontCreateNewParamDefs { get; set; }
|
public bool DontCreateNewParamDefs { get; set; }
|
||||||
|
public bool DontRenameDelegateFields { get; set; }
|
||||||
|
|
||||||
Modules modules;
|
Modules modules;
|
||||||
MemberInfos memberInfos = new MemberInfos();
|
MemberInfos memberInfos = new MemberInfos();
|
||||||
|
@ -255,10 +256,13 @@ namespace de4dot.code.renamer {
|
||||||
void renameFields(TypeInfo info) {
|
void renameFields(TypeInfo info) {
|
||||||
if (!RenameFields)
|
if (!RenameFields)
|
||||||
return;
|
return;
|
||||||
|
bool isDelegateType = isDelegateClass.check(info.type);
|
||||||
foreach (var fieldDef in info.type.AllFieldsSorted) {
|
foreach (var fieldDef in info.type.AllFieldsSorted) {
|
||||||
var fieldInfo = memberInfos.field(fieldDef);
|
var fieldInfo = memberInfos.field(fieldDef);
|
||||||
if (!fieldInfo.gotNewName())
|
if (!fieldInfo.gotNewName())
|
||||||
continue;
|
continue;
|
||||||
|
if (isDelegateType && DontRenameDelegateFields)
|
||||||
|
continue;
|
||||||
fieldDef.FieldDef.Name = new UTF8String(fieldInfo.newName);
|
fieldDef.FieldDef.Name = new UTF8String(fieldInfo.newName);
|
||||||
if (isVerbose)
|
if (isVerbose)
|
||||||
Logger.v("Field: {0} ({1:X8}) => {2}",
|
Logger.v("Field: {0} ({1:X8}) => {2}",
|
||||||
|
|
|
@ -121,7 +121,7 @@ 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) => {
|
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), d(elegate fields). Can be combined, eg. efm", "flags", (val) => {
|
||||||
foreach (var c in val) {
|
foreach (var c in val) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'n': filesOptions.RenameNamespaces = false; break;
|
case 'n': filesOptions.RenameNamespaces = false; break;
|
||||||
|
@ -132,6 +132,7 @@ namespace de4dot.cui {
|
||||||
case 'm': filesOptions.RenameMethods = false; break;
|
case 'm': filesOptions.RenameMethods = false; break;
|
||||||
case 'a': filesOptions.RenameMethodArgs = false; break;
|
case 'a': filesOptions.RenameMethodArgs = false; break;
|
||||||
case 'g': filesOptions.RenameGenericParams = false; break;
|
case 'g': filesOptions.RenameGenericParams = false; break;
|
||||||
|
case 'd': filesOptions.DontRenameDelegateFields = true; break;
|
||||||
default: throw new UserException(string.Format("Unrecognized --keep-names char: '{0}'", c));
|
default: throw new UserException(string.Format("Unrecognized --keep-names char: '{0}'", c));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,7 @@ namespace de4dot.cui {
|
||||||
public bool RenameMethods { get; set; }
|
public bool RenameMethods { get; set; }
|
||||||
public bool RenameMethodArgs { get; set; }
|
public bool RenameMethodArgs { get; set; }
|
||||||
public bool RenameGenericParams { get; set; }
|
public bool RenameGenericParams { get; set; }
|
||||||
|
public bool DontRenameDelegateFields { 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; }
|
||||||
|
@ -400,6 +401,7 @@ namespace de4dot.cui {
|
||||||
RenameMethods = options.RenameMethods,
|
RenameMethods = options.RenameMethods,
|
||||||
RenameMethodArgs = options.RenameMethodArgs,
|
RenameMethodArgs = options.RenameMethodArgs,
|
||||||
RenameGenericParams = options.RenameGenericParams,
|
RenameGenericParams = options.RenameGenericParams,
|
||||||
|
DontRenameDelegateFields = options.DontRenameDelegateFields,
|
||||||
RestorePropertiesFromNames = options.RestorePropsEvents,
|
RestorePropertiesFromNames = options.RestorePropsEvents,
|
||||||
RestoreEventsFromNames = options.RestorePropsEvents,
|
RestoreEventsFromNames = options.RestorePropsEvents,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user