Remove encrypted resources and call to methods decrypter

This commit is contained in:
de4dot 2011-10-26 23:00:01 +02:00
parent dfb73f222f
commit ceca5718ba
5 changed files with 31 additions and 0 deletions

View File

@ -36,6 +36,10 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
get { return encryptedResource.ResourceDecrypterMethod; }
}
public EmbeddedResource BooleansResource {
get { return encryptedResource.EncryptedDataResource; }
}
public BooleanDecrypter(ModuleDefinition module) {
this.module = module;
this.encryptedResource = new EncryptedResource(module);

View File

@ -163,6 +163,17 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
});
}
DeobfuscatedFile.stringDecryptersAdded();
if (Operations.DecryptStrings != OpDecryptString.None)
addResourceToBeRemoved(stringDecrypter.StringsResource, "Encrypted strings");
if (options.DecryptMethods) {
addResourceToBeRemoved(methodsDecrypter.MethodsResource, "Encrypted methods");
addCctorInitCallToBeRemoved(methodsDecrypter.MethodsDecrypterMethod);
}
if (options.DecryptBools)
addResourceToBeRemoved(booleanDecrypter.BooleansResource, "Encrypted booleans");
if (Operations.DecryptStrings != OpDecryptString.None && options.DecryptMethods && options.DecryptBools)
addTypeToBeRemoved(methodsDecrypter.MethodsDecrypterMethod.DeclaringType, "Decrypter type");
}
public override bool deobfuscateOther(Blocks blocks) {

View File

@ -38,6 +38,10 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
set { resourceDecrypterMethod = value; }
}
public EmbeddedResource EncryptedDataResource {
get { return encryptedDataResource; }
}
public EncryptedResource(ModuleDefinition module) {
this.module = module;
}

View File

@ -35,6 +35,14 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
get { return encryptedResource.ResourceDecrypterMethod != null; }
}
public MethodDefinition MethodsDecrypterMethod {
get { return encryptedResource.ResourceDecrypterMethod; }
}
public EmbeddedResource MethodsResource {
get { return encryptedResource.EncryptedDataResource; }
}
public MethodsDecrypter(ModuleDefinition module) {
this.module = module;
this.encryptedResource = new EncryptedResource(module);

View File

@ -49,6 +49,10 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
get { return encryptedResource.ResourceDecrypterMethod != null; }
}
public EmbeddedResource StringsResource {
get { return encryptedResource.EncryptedDataResource; }
}
public IEnumerable<DecrypterInfo> DecrypterInfos {
get { return decrypterInfos; }
}