Update detection code
This commit is contained in:
parent
417fe04bba
commit
b23c35e049
|
@ -92,11 +92,19 @@ namespace de4dot.code.deobfuscators.Goliath_NET {
|
|||
|
||||
public void find() {
|
||||
var requiredFields = getRequiredFieldTypes();
|
||||
foreach (var type in module.Types) {
|
||||
var resourceName = type.FullName + ".resources";
|
||||
var resource = DotNetUtils.getResource(module, resourceName) as EmbeddedResource;
|
||||
|
||||
foreach (var tmp in module.Resources) {
|
||||
var resource = tmp as EmbeddedResource;
|
||||
if (resource == null)
|
||||
continue;
|
||||
if (!resource.Name.EndsWith(".resources", StringComparison.Ordinal))
|
||||
continue;
|
||||
string ns, name;
|
||||
splitTypeName(resource.Name.Substring(0, resource.Name.Length - 10), out ns, out name);
|
||||
var typeRef = new TypeReference(ns, name, module, module);
|
||||
var type = DotNetUtils.getType(module, typeRef);
|
||||
if (type == null)
|
||||
continue;
|
||||
if (!new FieldTypes(type).exactly(requiredFields))
|
||||
continue;
|
||||
|
||||
|
@ -106,6 +114,18 @@ namespace de4dot.code.deobfuscators.Goliath_NET {
|
|||
}
|
||||
}
|
||||
|
||||
void splitTypeName(string fullName, out string ns, out string name) {
|
||||
int index = fullName.LastIndexOf('.');
|
||||
if (index < 0) {
|
||||
ns = "";
|
||||
name = fullName;
|
||||
}
|
||||
else {
|
||||
ns = fullName.Substring(0, index);
|
||||
name = fullName.Substring(index + 1);
|
||||
}
|
||||
}
|
||||
|
||||
public void initialize() {
|
||||
if (encryptedResource == null)
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue
Block a user