Remove invalid resources
This commit is contained in:
parent
32f9a780c4
commit
bde935c6d8
|
@ -139,6 +139,7 @@ namespace de4dot.code.deobfuscators.MaxtoCode {
|
||||||
addCctorInitCallToBeRemoved(method);
|
addCctorInitCallToBeRemoved(method);
|
||||||
addTypeToBeRemoved(mainType.Type, "Obfuscator type");
|
addTypeToBeRemoved(mainType.Type, "Obfuscator type");
|
||||||
removeDuplicateEmbeddedResources();
|
removeDuplicateEmbeddedResources();
|
||||||
|
removeInvalidResources();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Encoding getEncoding(int cp) {
|
static Encoding getEncoding(int cp) {
|
||||||
|
@ -160,6 +161,8 @@ namespace de4dot.code.deobfuscators.MaxtoCode {
|
||||||
|
|
||||||
public override int GetHashCode() {
|
public override int GetHashCode() {
|
||||||
int hash = 0;
|
int hash = 0;
|
||||||
|
if (resource.Offset != null)
|
||||||
|
hash ^= resource.Offset.GetHashCode();
|
||||||
hash ^= (int)resource.Data.Position;
|
hash ^= (int)resource.Data.Position;
|
||||||
hash ^= (int)resource.Data.Length;
|
hash ^= (int)resource.Data.Length;
|
||||||
return hash;
|
return hash;
|
||||||
|
@ -184,7 +187,7 @@ namespace de4dot.code.deobfuscators.MaxtoCode {
|
||||||
var rsrc = tmp as EmbeddedResource;
|
var rsrc = tmp as EmbeddedResource;
|
||||||
if (rsrc == null)
|
if (rsrc == null)
|
||||||
continue;
|
continue;
|
||||||
if (rsrc.Data.FileOffset == 0)
|
if (rsrc.Offset == null)
|
||||||
continue;
|
continue;
|
||||||
List<EmbeddedResource> list;
|
List<EmbeddedResource> list;
|
||||||
var key = new ResourceKey(rsrc);
|
var key = new ResourceKey(rsrc);
|
||||||
|
@ -216,6 +219,16 @@ namespace de4dot.code.deobfuscators.MaxtoCode {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void removeInvalidResources() {
|
||||||
|
foreach (var tmp in module.Resources) {
|
||||||
|
var resource = tmp as EmbeddedResource;
|
||||||
|
if (resource == null)
|
||||||
|
continue;
|
||||||
|
if (resource.Offset == null || (resource.Data.FileOffset == 0 && resource.Data.Length == 0))
|
||||||
|
addResourceToBeRemoved(resource, "Invalid resource");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override IEnumerable<int> getStringDecrypterMethods() {
|
public override IEnumerable<int> getStringDecrypterMethods() {
|
||||||
var list = new List<int>();
|
var list = new List<int>();
|
||||||
if (stringDecrypter != null && stringDecrypter.Detected)
|
if (stringDecrypter != null && stringDecrypter.Detected)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user