Support latest CO build

This commit is contained in:
de4dot 2012-07-02 14:26:00 +02:00
parent 199a0b4043
commit b9e88972ae

View File

@ -18,6 +18,7 @@
*/ */
using System; using System;
using System.Collections.Generic;
using Mono.Cecil; using Mono.Cecil;
using Mono.Cecil.Cil; using Mono.Cecil.Cil;
using de4dot.blocks; using de4dot.blocks;
@ -69,7 +70,7 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
if (mergedIt) if (mergedIt)
return null; return null;
var resource = DotNetUtils.getResource(module, getResourceName()) as EmbeddedResource; var resource = DotNetUtils.getResource(module, getResourceNames()) as EmbeddedResource;
if (resource == null) if (resource == null)
return null; return null;
@ -78,12 +79,24 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator {
return resource; return resource;
} }
string getResourceName() { IEnumerable<string> getResourceNames() {
var names = new List<string>();
switch (resolverVersion) { switch (resolverVersion) {
case ResolverVersion.V1: return module.Assembly.Name.Name; case ResolverVersion.V1:
case ResolverVersion.V2: return string.Format("{0}{0}{0}", module.Assembly.Name.Name); names.Add(module.Assembly.Name.Name);
default: throw new ApplicationException("Unknown version"); break;
case ResolverVersion.V2:
names.Add(string.Format("{0}{0}{0}", module.Assembly.Name.Name));
names.Add(string.Format("{0}&", module.Assembly.Name.Name));
break;
default:
throw new ApplicationException("Unknown version");
} }
return names;
} }
bool checkType(MethodDefinition initMethod) { bool checkType(MethodDefinition initMethod) {