diff --git a/de4dot.code/de4dot.code.csproj b/de4dot.code/de4dot.code.csproj index a94bc0b0..7c5a4264 100644 --- a/de4dot.code/de4dot.code.csproj +++ b/de4dot.code/de4dot.code.csproj @@ -179,6 +179,7 @@ + diff --git a/de4dot.code/deobfuscators/MethodsDecrypter.cs b/de4dot.code/deobfuscators/MethodsDecrypter.cs new file mode 100644 index 00000000..82441ff7 --- /dev/null +++ b/de4dot.code/deobfuscators/MethodsDecrypter.cs @@ -0,0 +1,38 @@ +/* + Copyright (C) 2011-2012 de4dot@gmail.com + + This file is part of de4dot. + + de4dot is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + de4dot is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with de4dot. If not, see . +*/ + +using Mono.MyStuff; +using de4dot.code.AssemblyClient; +using de4dot.mdecrypt; + +namespace de4dot.code.deobfuscators { + static class MethodsDecrypter { + public static DumpedMethods decrypt(string filename, byte[] moduleCctorBytes) { + using (var client = new NewProcessAssemblyClientFactory().create()) { + client.connect(); + client.waitConnected(); + var info = new DecryptMethodsInfo(); + info.moduleCctorBytes = moduleCctorBytes; + client.Service.installCompileMethod(info); + client.Service.loadObfuscator(filename); + return client.Service.decryptMethods(); + } + } + } +}