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; } get { return encryptedResource.ResourceDecrypterMethod; }
} }
public EmbeddedResource BooleansResource {
get { return encryptedResource.EncryptedDataResource; }
}
public BooleanDecrypter(ModuleDefinition module) { public BooleanDecrypter(ModuleDefinition module) {
this.module = module; this.module = module;
this.encryptedResource = new EncryptedResource(module); this.encryptedResource = new EncryptedResource(module);

View File

@ -163,6 +163,17 @@ namespace de4dot.deobfuscators.dotNET_Reactor {
}); });
} }
DeobfuscatedFile.stringDecryptersAdded(); 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) { public override bool deobfuscateOther(Blocks blocks) {

View File

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

View File

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

View File

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