Remove native lib linked resource

This commit is contained in:
de4dot 2011-12-21 18:20:59 +01:00
parent 4abe33f729
commit a473f9eb02
2 changed files with 18 additions and 0 deletions

View File

@ -33,6 +33,7 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor3 {
MethodDefinition stringDecrypter2;
List<MethodDefinition> initMethods = new List<MethodDefinition>();
List<ModuleReference> moduleReferences = new List<ModuleReference>();
Resource linkedResource;
public bool Detected {
get { return decrypterType != null; }
@ -42,6 +43,10 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor3 {
get { return decrypterType; }
}
public Resource LinkedResource {
get { return linkedResource; }
}
public MethodDefinition StringDecrypter1 {
get { return stringDecrypter1; }
}
@ -113,6 +118,18 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor3 {
}
}
}
updateLinkedResource();
}
void updateLinkedResource() {
foreach (var modref in moduleReferences) {
var resource = DotNetUtils.getResource(module, modref.Name) as LinkedResource;
if (resource == null)
continue;
linkedResource = resource;
return;
}
}
MethodDefinition addStringDecrypter(TypeDefinition type, string name) {

View File

@ -299,6 +299,7 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor3 {
if (canRemoveDecrypterType && !isTypeCalled(decrypterType.Type)) {
addTypeToBeRemoved(decrypterType.Type, "Decrypter type");
addModuleReferencesToBeRemoved(decrypterType.ModuleReferences, "Native lib module references");
addResourceToBeRemoved(decrypterType.LinkedResource, "Native lib resource");
}
base.deobfuscateEnd();