Add preserveTokensAndTypes()
This commit is contained in:
parent
63f1ec4f93
commit
e8a9c0675a
|
@ -51,6 +51,8 @@ namespace de4dot.code.deobfuscators {
|
|||
MethodCallRemover methodCallRemover = new MethodCallRemover();
|
||||
byte[] moduleBytes;
|
||||
protected InitializedDataCreator initializedDataCreator;
|
||||
bool keepTypes;
|
||||
MetaDataFlags? mdFlags;
|
||||
|
||||
protected byte[] ModuleBytes {
|
||||
get { return moduleBytes; }
|
||||
|
@ -78,7 +80,7 @@ namespace de4dot.code.deobfuscators {
|
|||
public DecrypterType DefaultDecrypterType { get; set; }
|
||||
|
||||
public virtual MetaDataFlags MetaDataFlags {
|
||||
get { return Operations.MetaDataFlags; }
|
||||
get { return mdFlags ?? Operations.MetaDataFlags; }
|
||||
}
|
||||
|
||||
public abstract string Type { get; }
|
||||
|
@ -89,8 +91,9 @@ namespace de4dot.code.deobfuscators {
|
|||
get { return false; }
|
||||
}
|
||||
|
||||
protected virtual bool KeepTypes {
|
||||
get { return false; }
|
||||
protected bool KeepTypes {
|
||||
get { return keepTypes; }
|
||||
set { keepTypes = value; }
|
||||
}
|
||||
|
||||
protected bool CanRemoveTypes {
|
||||
|
@ -129,6 +132,15 @@ namespace de4dot.code.deobfuscators {
|
|||
initializedDataCreator = new InitializedDataCreator(module);
|
||||
}
|
||||
|
||||
protected void preserveTokensAndTypes() {
|
||||
keepTypes = true;
|
||||
mdFlags = Operations.MetaDataFlags;
|
||||
mdFlags |= MetaDataFlags.PreserveRids |
|
||||
MetaDataFlags.PreserveUSOffsets |
|
||||
MetaDataFlags.PreserveBlobOffsets |
|
||||
MetaDataFlags.PreserveExtraSignatureData;
|
||||
}
|
||||
|
||||
protected virtual bool checkValidName(string name) {
|
||||
return optionsBase.ValidNameRegex.isMatch(name);
|
||||
}
|
||||
|
|
|
@ -63,12 +63,9 @@ namespace de4dot.code.deobfuscators.Unknown {
|
|||
get { return obfuscatorName ?? "Unknown Obfuscator"; }
|
||||
}
|
||||
|
||||
protected override bool KeepTypes {
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
internal Deobfuscator(Options options)
|
||||
: base(options) {
|
||||
KeepTypes = true;
|
||||
}
|
||||
|
||||
void setName(string name) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user