diff --git a/de4dot-x64/Program.cs b/de4dot-x64/Program.cs index 76a18e11..c38e80f9 100644 --- a/de4dot-x64/Program.cs +++ b/de4dot-x64/Program.cs @@ -20,7 +20,7 @@ namespace de4dot_x64 { class Program { static int Main(string[] args) { - return de4dot.Program.main(de4dot.StartUpArch.x64, args); + return de4dot.cui.Program.main(args); } } } diff --git a/de4dot-x64/de4dot-x64.csproj b/de4dot-x64/de4dot-x64.csproj index 7ccb1b78..9b8eaba9 100644 --- a/de4dot-x64/de4dot-x64.csproj +++ b/de4dot-x64/de4dot-x64.csproj @@ -46,9 +46,9 @@ - - {4D10B9EB-3BF1-4D61-A389-CB019E8C9622} - d4d.code + + {879E4A7E-C320-42D2-8275-4F1E44CE64AA} + de4dot.cui diff --git a/de4dot.code/AssemblyClient/AssemblyClient.cs b/de4dot.code/AssemblyClient/AssemblyClient.cs index 81386777..cb9022ca 100644 --- a/de4dot.code/AssemblyClient/AssemblyClient.cs +++ b/de4dot.code/AssemblyClient/AssemblyClient.cs @@ -23,7 +23,7 @@ using System.Runtime.Serialization; using System.Threading; using AssemblyData; -namespace de4dot.AssemblyClient { +namespace de4dot.code.AssemblyClient { sealed class AssemblyClient : IAssemblyClient { const int WAIT_TIME_BEFORE_CONNECTING = 1000; const int MAX_CONNECT_WAIT_TIME_MS = 2000; diff --git a/de4dot.code/AssemblyClient/AssemblyClientFactory.cs b/de4dot.code/AssemblyClient/AssemblyClientFactory.cs index 3804d33d..decfd2e0 100644 --- a/de4dot.code/AssemblyClient/AssemblyClientFactory.cs +++ b/de4dot.code/AssemblyClient/AssemblyClientFactory.cs @@ -17,24 +17,24 @@ along with de4dot. If not, see . */ -namespace de4dot.AssemblyClient { - interface IAssemblyClientFactory { +namespace de4dot.code.AssemblyClient { + public interface IAssemblyClientFactory { IAssemblyClient create(); } - class SameAppDomainAssemblyClientFactory : IAssemblyClientFactory { + public class SameAppDomainAssemblyClientFactory : IAssemblyClientFactory { public IAssemblyClient create() { return new AssemblyClient(new SameAppDomainAssemblyServerLoader()); } } - class NewAppDomainAssemblyClientFactory : IAssemblyClientFactory { + public class NewAppDomainAssemblyClientFactory : IAssemblyClientFactory { public IAssemblyClient create() { return new AssemblyClient(new NewAppDomainAssemblyServerLoader()); } } - class NewProcessAssemblyClientFactory : IAssemblyClientFactory { + public class NewProcessAssemblyClientFactory : IAssemblyClientFactory { public IAssemblyClient create() { return new AssemblyClient(new NewProcessAssemblyServerLoader()); } diff --git a/de4dot.code/AssemblyClient/IAssemblyClient.cs b/de4dot.code/AssemblyClient/IAssemblyClient.cs index c2c8f86a..3b378e87 100644 --- a/de4dot.code/AssemblyClient/IAssemblyClient.cs +++ b/de4dot.code/AssemblyClient/IAssemblyClient.cs @@ -20,8 +20,8 @@ using System; using AssemblyData; -namespace de4dot.AssemblyClient { - interface IAssemblyClient : IDisposable { +namespace de4dot.code.AssemblyClient { + public interface IAssemblyClient : IDisposable { IAssemblyService Service { get; } void connect(); void waitConnected(); diff --git a/de4dot.code/AssemblyClient/IAssemblyServerLoader.cs b/de4dot.code/AssemblyClient/IAssemblyServerLoader.cs index adce1f6c..7ad3f28c 100644 --- a/de4dot.code/AssemblyClient/IAssemblyServerLoader.cs +++ b/de4dot.code/AssemblyClient/IAssemblyServerLoader.cs @@ -20,7 +20,7 @@ using System; using AssemblyData; -namespace de4dot.AssemblyClient { +namespace de4dot.code.AssemblyClient { interface IAssemblyServerLoader : IDisposable { void loadServer(); IAssemblyService createService(); diff --git a/de4dot.code/AssemblyClient/IpcAssemblyServerLoader.cs b/de4dot.code/AssemblyClient/IpcAssemblyServerLoader.cs index e987cf33..2146210f 100644 --- a/de4dot.code/AssemblyClient/IpcAssemblyServerLoader.cs +++ b/de4dot.code/AssemblyClient/IpcAssemblyServerLoader.cs @@ -20,7 +20,7 @@ using System; using AssemblyData; -namespace de4dot.AssemblyClient { +namespace de4dot.code.AssemblyClient { abstract class IpcAssemblyServerLoader : IAssemblyServerLoader { const string ASSEMBLY_SERVER_FILENAME_X86 = "AssemblyServer.exe"; const string ASSEMBLY_SERVER_FILENAME_X64 = "AssemblyServer-x64.exe"; @@ -30,12 +30,16 @@ namespace de4dot.AssemblyClient { string url; protected IpcAssemblyServerLoader() { - assemblyServerFilename = Utils.getArchString(ASSEMBLY_SERVER_FILENAME_X86, ASSEMBLY_SERVER_FILENAME_X64); + assemblyServerFilename = getServerName(); ipcName = Utils.randomName(15, 20); ipcUri = Utils.randomName(15, 20); url = string.Format("ipc://{0}/{1}", ipcName, ipcUri); } + static string getServerName() { + return IntPtr.Size == 4 ? ASSEMBLY_SERVER_FILENAME_X86 : ASSEMBLY_SERVER_FILENAME_X64; + } + public void loadServer() { loadServer(Utils.getPathOfOurFile(assemblyServerFilename)); } diff --git a/de4dot.code/AssemblyClient/NewAppDomainAssemblyServerLoader.cs b/de4dot.code/AssemblyClient/NewAppDomainAssemblyServerLoader.cs index 7c29ace4..b9c83d03 100644 --- a/de4dot.code/AssemblyClient/NewAppDomainAssemblyServerLoader.cs +++ b/de4dot.code/AssemblyClient/NewAppDomainAssemblyServerLoader.cs @@ -20,7 +20,7 @@ using System; using System.Threading; -namespace de4dot.AssemblyClient { +namespace de4dot.code.AssemblyClient { // Starts the server in a new app domain. sealed class NewAppDomainAssemblyServerLoader : IpcAssemblyServerLoader { AppDomain appDomain; diff --git a/de4dot.code/AssemblyClient/NewProcessAssemblyServerLoader.cs b/de4dot.code/AssemblyClient/NewProcessAssemblyServerLoader.cs index 338ea4dc..d5c51411 100644 --- a/de4dot.code/AssemblyClient/NewProcessAssemblyServerLoader.cs +++ b/de4dot.code/AssemblyClient/NewProcessAssemblyServerLoader.cs @@ -20,7 +20,7 @@ using System; using System.Diagnostics; -namespace de4dot.AssemblyClient { +namespace de4dot.code.AssemblyClient { // Starts the server in a new process class NewProcessAssemblyServerLoader : IpcAssemblyServerLoader { Process process; diff --git a/de4dot.code/AssemblyClient/SameAppDomainAssemblyServerLoader.cs b/de4dot.code/AssemblyClient/SameAppDomainAssemblyServerLoader.cs index 572c8594..9fb13936 100644 --- a/de4dot.code/AssemblyClient/SameAppDomainAssemblyServerLoader.cs +++ b/de4dot.code/AssemblyClient/SameAppDomainAssemblyServerLoader.cs @@ -20,7 +20,7 @@ using System; using AssemblyData; -namespace de4dot.AssemblyClient { +namespace de4dot.code.AssemblyClient { // Starts the server in the current app domain. class SameAppDomainAssemblyServerLoader : IAssemblyServerLoader { IAssemblyService service; diff --git a/de4dot.code/AssemblyModule.cs b/de4dot.code/AssemblyModule.cs index a52bda58..6a781f2d 100644 --- a/de4dot.code/AssemblyModule.cs +++ b/de4dot.code/AssemblyModule.cs @@ -24,7 +24,7 @@ using Mono.Cecil; using Mono.MyStuff; using de4dot.blocks; -namespace de4dot { +namespace de4dot.code { class AssemblyModule { string filename; ModuleDefinition module; diff --git a/de4dot.code/AssemblyResolver.cs b/de4dot.code/AssemblyResolver.cs index faf434a8..68816726 100644 --- a/de4dot.code/AssemblyResolver.cs +++ b/de4dot.code/AssemblyResolver.cs @@ -23,8 +23,8 @@ using System.IO; using System.Text.RegularExpressions; using Mono.Cecil; -namespace de4dot { - class AssemblyResolver : DefaultAssemblyResolver { +namespace de4dot.code { + public class AssemblyResolver : DefaultAssemblyResolver { public static readonly AssemblyResolver Instance = new AssemblyResolver(); Dictionary addedAssemblies = new Dictionary(StringComparer.Ordinal); Dictionary addedDirectories = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/de4dot.code/IObfuscatedFile.cs b/de4dot.code/IObfuscatedFile.cs index ace8befe..9a920580 100644 --- a/de4dot.code/IObfuscatedFile.cs +++ b/de4dot.code/IObfuscatedFile.cs @@ -18,12 +18,12 @@ */ using System.Collections.Generic; -using de4dot.deobfuscators; +using de4dot.code.deobfuscators; using Mono.Cecil; -using de4dot.renamer; +using de4dot.code.renamer; -namespace de4dot { - interface IObfuscatedFile { +namespace de4dot.code { + public interface IObfuscatedFile { ModuleDefinition ModuleDefinition { get; } IDeobfuscator Deobfuscator { get; } string Filename { get; } diff --git a/de4dot.code/Log.cs b/de4dot.code/Log.cs index ab428a8f..167630cf 100644 --- a/de4dot.code/Log.cs +++ b/de4dot.code/Log.cs @@ -20,8 +20,8 @@ using System; using System.Collections.Generic; -namespace de4dot { - static class Log { +namespace de4dot.code { + public static class Log { public static int indentLevel = 0; const int indentSize = 2; diff --git a/de4dot.code/MethodReturnValueInliner.cs b/de4dot.code/MethodReturnValueInliner.cs index 9c759356..5b4eeaba 100644 --- a/de4dot.code/MethodReturnValueInliner.cs +++ b/de4dot.code/MethodReturnValueInliner.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot { +namespace de4dot.code { // A simple class that statically detects the values of some local variables class VariableValues { IList allBlocks; diff --git a/de4dot.code/NameRegexes.cs b/de4dot.code/NameRegexes.cs index a40a875d..e4c63088 100644 --- a/de4dot.code/NameRegexes.cs +++ b/de4dot.code/NameRegexes.cs @@ -20,8 +20,8 @@ using System.Collections.Generic; using System.Text.RegularExpressions; -namespace de4dot { - class NameRegex { +namespace de4dot.code { + public class NameRegex { Regex regex; public const char invertChar = '!'; @@ -50,7 +50,7 @@ namespace de4dot { } } - class NameRegexes { + public class NameRegexes { IList regexes; public bool DefaultValue { get; set; } public const char regexSeparatorChar = '&'; diff --git a/de4dot.code/ObfuscatedFile.cs b/de4dot.code/ObfuscatedFile.cs index d99df3b0..0d7e5fab 100644 --- a/de4dot.code/ObfuscatedFile.cs +++ b/de4dot.code/ObfuscatedFile.cs @@ -25,15 +25,15 @@ using System.Text; using Mono.Cecil; using Mono.Cecil.Cil; using Mono.MyStuff; -using de4dot.deobfuscators; +using de4dot.code.deobfuscators; using de4dot.blocks; using de4dot.blocks.cflow; -using de4dot.AssemblyClient; -using de4dot.renamer; -using de4dot.PE; +using de4dot.code.AssemblyClient; +using de4dot.code.renamer; +using de4dot.code.PE; -namespace de4dot { - class ObfuscatedFile : IObfuscatedFile, IDeobfuscatedFile { +namespace de4dot.code { + public class ObfuscatedFile : IObfuscatedFile, IDeobfuscatedFile { Options options; ModuleDefinition module; IList allMethods; diff --git a/de4dot.code/Option.cs b/de4dot.code/Option.cs index 6ccd2a64..eccbf476 100644 --- a/de4dot.code/Option.cs +++ b/de4dot.code/Option.cs @@ -21,8 +21,8 @@ using System; using System.Collections.Generic; using System.Text.RegularExpressions; -namespace de4dot { - abstract class Option { +namespace de4dot.code { + public abstract class Option { const string SHORTNAME_PREFIX = "-"; const string LONGNAME_PREFIX = "--"; @@ -68,7 +68,7 @@ namespace de4dot { } } - class BoolOption : Option { + public class BoolOption : Option { bool val; public BoolOption(string shortName, string longName, string description, bool val) : base(shortName, longName, description) { @@ -96,7 +96,7 @@ namespace de4dot { } } - class IntOption : Option { + public class IntOption : Option { int val; public IntOption(string shortName, string longName, string description, int val) : base(shortName, longName, description) { @@ -123,7 +123,7 @@ namespace de4dot { } } - class StringOption : Option { + public class StringOption : Option { string val; public override string ArgumentValueName { @@ -146,7 +146,7 @@ namespace de4dot { } } - class NameRegexOption : Option { + public class NameRegexOption : Option { NameRegexes val; public override string ArgumentValueName { @@ -177,7 +177,7 @@ namespace de4dot { } } - class RegexOption : Option { + public class RegexOption : Option { Regex val; public override string ArgumentValueName { @@ -206,7 +206,7 @@ namespace de4dot { } } - class NoArgOption : Option { + public class NoArgOption : Option { Action action; bool triggered; @@ -232,7 +232,7 @@ namespace de4dot { } } - class OneArgOption : Option { + public class OneArgOption : Option { Action action; string typeName; diff --git a/de4dot.code/PE/Cor20Header.cs b/de4dot.code/PE/Cor20Header.cs index b59b62eb..8e1d4084 100644 --- a/de4dot.code/PE/Cor20Header.cs +++ b/de4dot.code/PE/Cor20Header.cs @@ -19,7 +19,7 @@ using System.IO; -namespace de4dot.PE { +namespace de4dot.code.PE { class Cor20Header : IFileLocation { public uint cb; public ushort majorRuntimeVersion; diff --git a/de4dot.code/PE/DataDirectory.cs b/de4dot.code/PE/DataDirectory.cs index 9dfe6a49..2600b177 100644 --- a/de4dot.code/PE/DataDirectory.cs +++ b/de4dot.code/PE/DataDirectory.cs @@ -19,7 +19,7 @@ using System.IO; -namespace de4dot.PE { +namespace de4dot.code.PE { struct DataDirectory { public uint virtualAddress; public uint size; diff --git a/de4dot.code/PE/DotNetStream.cs b/de4dot.code/PE/DotNetStream.cs index 18c5e23d..cb3fc39e 100644 --- a/de4dot.code/PE/DotNetStream.cs +++ b/de4dot.code/PE/DotNetStream.cs @@ -19,7 +19,7 @@ using System.IO; -namespace de4dot.PE { +namespace de4dot.code.PE { class DotNetStream : IFileLocation { public string name; public uint fileOffset; diff --git a/de4dot.code/PE/FileHeader.cs b/de4dot.code/PE/FileHeader.cs index 8bff853c..95f41bd6 100644 --- a/de4dot.code/PE/FileHeader.cs +++ b/de4dot.code/PE/FileHeader.cs @@ -19,7 +19,7 @@ using System.IO; -namespace de4dot.PE { +namespace de4dot.code.PE { enum Machine : ushort { i386 = 0x14C, ia64 = 0x200, diff --git a/de4dot.code/PE/IFileLocation.cs b/de4dot.code/PE/IFileLocation.cs index a69f422d..7edaf878 100644 --- a/de4dot.code/PE/IFileLocation.cs +++ b/de4dot.code/PE/IFileLocation.cs @@ -17,7 +17,7 @@ along with de4dot. If not, see . */ -namespace de4dot.PE { +namespace de4dot.code.PE { interface IFileLocation { uint Offset { get; } uint Length { get; } diff --git a/de4dot.code/PE/Metadata.cs b/de4dot.code/PE/Metadata.cs index a985ea7a..7c99fda3 100644 --- a/de4dot.code/PE/Metadata.cs +++ b/de4dot.code/PE/Metadata.cs @@ -21,7 +21,7 @@ using System; using System.IO; using System.Text; -namespace de4dot.PE { +namespace de4dot.code.PE { class Metadata : IFileLocation { uint magic; ushort majorVersion, minorVersion; diff --git a/de4dot.code/PE/MetadataTables.cs b/de4dot.code/PE/MetadataTables.cs index 8a5f0ee4..6dae31c2 100644 --- a/de4dot.code/PE/MetadataTables.cs +++ b/de4dot.code/PE/MetadataTables.cs @@ -20,7 +20,7 @@ using System; using System.IO; -namespace de4dot.PE { +namespace de4dot.code.PE { using MVT = MetadataVarType; class MetadataTables { diff --git a/de4dot.code/PE/MetadataType.cs b/de4dot.code/PE/MetadataType.cs index 3e57a278..d242dd54 100644 --- a/de4dot.code/PE/MetadataType.cs +++ b/de4dot.code/PE/MetadataType.cs @@ -19,7 +19,7 @@ using System.Collections.Generic; -namespace de4dot.PE { +namespace de4dot.code.PE { enum MetadataIndex { iModule = 0, iTypeRef = 1, diff --git a/de4dot.code/PE/MetadataTypeBuilder.cs b/de4dot.code/PE/MetadataTypeBuilder.cs index c6c42948..3ef0f778 100644 --- a/de4dot.code/PE/MetadataTypeBuilder.cs +++ b/de4dot.code/PE/MetadataTypeBuilder.cs @@ -20,7 +20,7 @@ using System; using System.Collections.Generic; -namespace de4dot.PE { +namespace de4dot.code.PE { enum MetadataVarType { end, stop, diff --git a/de4dot.code/PE/OptionalHeader.cs b/de4dot.code/PE/OptionalHeader.cs index 91dbf3ce..f7929fb0 100644 --- a/de4dot.code/PE/OptionalHeader.cs +++ b/de4dot.code/PE/OptionalHeader.cs @@ -19,7 +19,7 @@ using System.IO; -namespace de4dot.PE { +namespace de4dot.code.PE { class OptionalHeader : IFileLocation { public ushort magic; public byte majorLinkerVersion; diff --git a/de4dot.code/PE/PeImage.cs b/de4dot.code/PE/PeImage.cs index ad683b6c..959c32cf 100644 --- a/de4dot.code/PE/PeImage.cs +++ b/de4dot.code/PE/PeImage.cs @@ -20,8 +20,8 @@ using System; using System.IO; -namespace de4dot.PE { - class PeImage { +namespace de4dot.code.PE { + public class PeImage { BinaryReader reader; BinaryWriter writer; FileHeader fileHeader; @@ -35,11 +35,11 @@ namespace de4dot.PE { get { return reader; } } - public Cor20Header Cor20Header { + internal Cor20Header Cor20Header { get { return cor20Header; } } - public Resources Resources { + internal Resources Resources { get { return resources; } } diff --git a/de4dot.code/PE/ResourceData.cs b/de4dot.code/PE/ResourceData.cs index e4d2ad6b..5e6a5ece 100644 --- a/de4dot.code/PE/ResourceData.cs +++ b/de4dot.code/PE/ResourceData.cs @@ -17,7 +17,7 @@ along with de4dot. If not, see . */ -namespace de4dot.PE { +namespace de4dot.code.PE { class ResourceData : ResourceDirectoryEntry { uint rva; uint size; diff --git a/de4dot.code/PE/ResourceDirectory.cs b/de4dot.code/PE/ResourceDirectory.cs index 4edc6d9d..fef65c99 100644 --- a/de4dot.code/PE/ResourceDirectory.cs +++ b/de4dot.code/PE/ResourceDirectory.cs @@ -19,7 +19,7 @@ using System.Collections.Generic; -namespace de4dot.PE { +namespace de4dot.code.PE { class ResourceDirectory : ResourceDirectoryEntry { Resources resources; int offset; diff --git a/de4dot.code/PE/ResourceDirectoryEntry.cs b/de4dot.code/PE/ResourceDirectoryEntry.cs index e1fa224e..a08cc66b 100644 --- a/de4dot.code/PE/ResourceDirectoryEntry.cs +++ b/de4dot.code/PE/ResourceDirectoryEntry.cs @@ -19,7 +19,7 @@ using System.Collections.Generic; -namespace de4dot.PE { +namespace de4dot.code.PE { abstract class ResourceDirectoryEntry { protected readonly string name; protected readonly int id; diff --git a/de4dot.code/PE/Resources.cs b/de4dot.code/PE/Resources.cs index df70b568..9c402fbd 100644 --- a/de4dot.code/PE/Resources.cs +++ b/de4dot.code/PE/Resources.cs @@ -20,7 +20,7 @@ using System.IO; using System.Text; -namespace de4dot.PE { +namespace de4dot.code.PE { class Resources { BinaryReader reader; uint startOffset; diff --git a/de4dot.code/PE/SectionHeader.cs b/de4dot.code/PE/SectionHeader.cs index 052df9d8..37e4d0bb 100644 --- a/de4dot.code/PE/SectionHeader.cs +++ b/de4dot.code/PE/SectionHeader.cs @@ -20,7 +20,7 @@ using System.IO; using System.Text; -namespace de4dot.PE { +namespace de4dot.code.PE { class SectionHeader : IFileLocation { public byte[] name; public uint virtualSize; diff --git a/de4dot.code/StringDecrypter.cs b/de4dot.code/StringDecrypter.cs index 16b614d6..a8707b76 100644 --- a/de4dot.code/StringDecrypter.cs +++ b/de4dot.code/StringDecrypter.cs @@ -21,10 +21,10 @@ using System; using System.Collections.Generic; using Mono.Cecil; using Mono.Cecil.Cil; -using de4dot.AssemblyClient; +using de4dot.code.AssemblyClient; using de4dot.blocks; -namespace de4dot { +namespace de4dot.code { abstract class StringDecrypter : MethodReturnValueInliner { protected override void inlineReturnValues(IList callResults) { foreach (var callResult in callResults) { diff --git a/de4dot.code/UserException.cs b/de4dot.code/UserException.cs index ef963020..3a141724 100644 --- a/de4dot.code/UserException.cs +++ b/de4dot.code/UserException.cs @@ -19,8 +19,8 @@ using System; -namespace de4dot { - class UserException : Exception { +namespace de4dot.code { + public class UserException : Exception { public UserException(string message) : base(message) { } diff --git a/de4dot.code/Utils.cs b/de4dot.code/Utils.cs index 3fa1d471..e9034c7a 100644 --- a/de4dot.code/Utils.cs +++ b/de4dot.code/Utils.cs @@ -22,21 +22,16 @@ using System.Collections.Generic; using System.IO; using System.Text; -namespace de4dot { - public enum StartUpArch { - x86, - x64, - } - +namespace de4dot.code { // These are in .NET 3.5 and later... - internal delegate TResult Func(); - internal delegate TResult Func(T arg); - internal delegate TResult Func(T1 arg1, T2 arg2); - internal delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); - internal delegate void Action(); - internal delegate void Action(T arg); - internal delegate void Action(T1 arg1, T2 arg2); - internal delegate void Action(T1 arg1, T2 arg2, T3 arg3); + public delegate TResult Func(); + public delegate TResult Func(T arg); + public delegate TResult Func(T1 arg1, T2 arg2); + public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); + public delegate void Action(); + public delegate void Action(T arg); + public delegate void Action(T1 arg1, T2 arg2); + public delegate void Action(T1 arg1, T2 arg2, T3 arg3); class Tuple { public T1 Item1 { get; set; } @@ -55,17 +50,8 @@ namespace de4dot { } } - static class Utils { + public static class Utils { static Random random = new Random(); - public static StartUpArch startUpArch = StartUpArch.x86; - - public static string getArchString(string x86, string x64) { - switch (startUpArch) { - case StartUpArch.x86: return x86; - case StartUpArch.x64: return x64; - default: throw new ApplicationException(string.Format("Invalid startUpArch {0}", startUpArch)); - } - } public static IEnumerable unique(IEnumerable values) { // HashSet is only available in .NET 3.5 and later. @@ -172,20 +158,6 @@ namespace de4dot { return Path.Combine(getOurBaseDir(), filename); } - public static void printStackTrace(Exception ex, Log.LogLevel logLevel = Log.LogLevel.error) { - var line = new string('-', 78); - Log.log(logLevel, "\n\n"); - Log.log(logLevel, line); - Log.log(logLevel, "Stack trace:\n{0}", ex.StackTrace); - Log.log(logLevel, "\n\nERROR: Caught an exception:\n"); - Log.log(logLevel, line); - Log.log(logLevel, "Message:"); - Log.log(logLevel, " {0}", ex.Message); - Log.log(logLevel, "Type:"); - Log.log(logLevel, " {0}", ex.GetType()); - Log.log(logLevel, line); - } - // This fixes a mono (tested 2.10.5) String.StartsWith() bug. NB: stringComparison must be // Ordinal or OrdinalIgnoreCase! public static bool StartsWith(string left, string right, StringComparison stringComparison) { diff --git a/de4dot.code/de4dot.code.csproj b/de4dot.code/de4dot.code.csproj index 791d58aa..bb21bbb5 100644 --- a/de4dot.code/de4dot.code.csproj +++ b/de4dot.code/de4dot.code.csproj @@ -8,7 +8,7 @@ {4D10B9EB-3BF1-4D61-A389-CB019E8C9622} Library Properties - de4dot + de4dot.code de4dot.code v2.0 512 @@ -56,7 +56,6 @@ - @@ -121,7 +120,6 @@ - @@ -145,7 +143,6 @@ - diff --git a/de4dot.code/deobfuscators/ArrayFinder.cs b/de4dot.code/deobfuscators/ArrayFinder.cs index de6cef47..d942a2f7 100644 --- a/de4dot.code/deobfuscators/ArrayFinder.cs +++ b/de4dot.code/deobfuscators/ArrayFinder.cs @@ -23,7 +23,7 @@ using Mono.Cecil.Cil; using de4dot.blocks; using de4dot.blocks.cflow; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { class ArrayFinder { List arrays = new List(); diff --git a/de4dot.code/deobfuscators/CliSecure/CliSecureRtType.cs b/de4dot.code/deobfuscators/CliSecure/CliSecureRtType.cs index e1ec70e8..dd7afa88 100644 --- a/de4dot.code/deobfuscators/CliSecure/CliSecureRtType.cs +++ b/de4dot.code/deobfuscators/CliSecure/CliSecureRtType.cs @@ -20,7 +20,7 @@ using System; using Mono.Cecil; -namespace de4dot.deobfuscators.CliSecure { +namespace de4dot.code.deobfuscators.CliSecure { class CliSecureRtType { ModuleDefinition module; TypeDefinition cliSecureRtType; diff --git a/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs b/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs index 57adfcb4..ab253c48 100644 --- a/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs @@ -21,10 +21,10 @@ using System.Collections.Generic; using Mono.Cecil; using Mono.MyStuff; using de4dot.blocks; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators.CliSecure { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.CliSecure { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "CliSecure"; public const string THE_TYPE = "cs"; const string DEFAULT_REGEX = @"[a-zA-Z_0-9>}$]$"; diff --git a/de4dot.code/deobfuscators/CliSecure/MethodsDecrypter.cs b/de4dot.code/deobfuscators/CliSecure/MethodsDecrypter.cs index 5645d21b..b0e8cad8 100644 --- a/de4dot.code/deobfuscators/CliSecure/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/CliSecure/MethodsDecrypter.cs @@ -20,9 +20,9 @@ using System; using System.Collections.Generic; using Mono.MyStuff; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators.CliSecure { +namespace de4dot.code.deobfuscators.CliSecure { class CodeHeader { public byte[] signature; public byte[] decryptionKey; diff --git a/de4dot.code/deobfuscators/CliSecure/ProxyDelegateFinder.cs b/de4dot.code/deobfuscators/CliSecure/ProxyDelegateFinder.cs index 023c3251..8233bd3d 100644 --- a/de4dot.code/deobfuscators/CliSecure/ProxyDelegateFinder.cs +++ b/de4dot.code/deobfuscators/CliSecure/ProxyDelegateFinder.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.CliSecure { +namespace de4dot.code.deobfuscators.CliSecure { class ProxyDelegateFinder : ProxyDelegateFinderBase { IList memberReferences; diff --git a/de4dot.code/deobfuscators/CliSecure/ResourceDecrypter.cs b/de4dot.code/deobfuscators/CliSecure/ResourceDecrypter.cs index ef057904..ec60dc86 100644 --- a/de4dot.code/deobfuscators/CliSecure/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/CliSecure/ResourceDecrypter.cs @@ -23,7 +23,7 @@ using System.Text; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.CliSecure { +namespace de4dot.code.deobfuscators.CliSecure { class ResourceDecrypter { ModuleDefinition module; TypeDefinition rsrcType; diff --git a/de4dot.code/deobfuscators/CliSecure/StackFrameHelper.cs b/de4dot.code/deobfuscators/CliSecure/StackFrameHelper.cs index d16908d6..0fe61ca1 100644 --- a/de4dot.code/deobfuscators/CliSecure/StackFrameHelper.cs +++ b/de4dot.code/deobfuscators/CliSecure/StackFrameHelper.cs @@ -21,7 +21,7 @@ using System; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.CliSecure { +namespace de4dot.code.deobfuscators.CliSecure { class StackFrameHelper { ModuleDefinition module; TypeDefinition stackFrameHelperType; diff --git a/de4dot.code/deobfuscators/CliSecure/StringDecrypter.cs b/de4dot.code/deobfuscators/CliSecure/StringDecrypter.cs index c75abbc9..ebb415d7 100644 --- a/de4dot.code/deobfuscators/CliSecure/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/CliSecure/StringDecrypter.cs @@ -21,7 +21,7 @@ using System; using System.Text; using Mono.Cecil; -namespace de4dot.deobfuscators.CliSecure { +namespace de4dot.code.deobfuscators.CliSecure { class StringDecrypter { ModuleDefinition module; TypeDefinition stringDecrypterType; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/AntiDebugger.cs b/de4dot.code/deobfuscators/CryptoObfuscator/AntiDebugger.cs index a3a8e5b1..dc26967f 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/AntiDebugger.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/AntiDebugger.cs @@ -20,7 +20,7 @@ using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class AntiDebugger { ModuleDefinition module; ISimpleDeobfuscator simpleDeobfuscator; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs b/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs index 05946631..fba96000 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs @@ -24,7 +24,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class AssemblyResolver { ModuleDefinition module; TypeDefinition resolverType; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs b/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs index 849f6ded..9ac63003 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs @@ -22,8 +22,8 @@ using System.Text.RegularExpressions; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.CryptoObfuscator { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "Crypto Obfuscator"; public const string THE_TYPE = "co"; const string DEFAULT_REGEX = @"!^(get_|set_|add_|remove_)?[A-Z]{1,3}(?:`\d+)?$&!^(get_|set_|add_|remove_)?c[0-9a-f]{32}(?:`\d+)?$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ProxyDelegateFinder.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ProxyDelegateFinder.cs index d9af3361..67ed6a96 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ProxyDelegateFinder.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ProxyDelegateFinder.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class ProxyDelegateFinder : ProxyDelegateFinderBase { Dictionary methodToType = new Dictionary(); diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs index d57188e8..4f820ef2 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs @@ -23,7 +23,7 @@ using System.IO.Compression; using System.Security.Cryptography; using Mono.Cecil; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class ResourceDecrypter { const int BUFLEN = 0x8000; ModuleDefinition module; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs index 85358589..81a74fc1 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceResolver.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class ResourceResolver { ModuleDefinition module; ResourceDecrypter resourceDecrypter; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs index 86ef9b14..3dfe3b71 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/StringDecrypter.cs @@ -21,7 +21,7 @@ using System.Text; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class StringDecrypter { ModuleDefinition module; EmbeddedResource stringResource; diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/TamperDetection.cs b/de4dot.code/deobfuscators/CryptoObfuscator/TamperDetection.cs index 14882b86..d473ae5e 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/TamperDetection.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/TamperDetection.cs @@ -20,7 +20,7 @@ using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.CryptoObfuscator { +namespace de4dot.code.deobfuscators.CryptoObfuscator { class TamperDetection { ModuleDefinition module; TypeDefinition tamperType; diff --git a/de4dot.code/deobfuscators/DeobUtils.cs b/de4dot.code/deobfuscators/DeobUtils.cs index 3f165c5a..552f0bc8 100644 --- a/de4dot.code/deobfuscators/DeobUtils.cs +++ b/de4dot.code/deobfuscators/DeobUtils.cs @@ -21,7 +21,7 @@ using System; using System.IO; using Mono.Cecil; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { static class DeobUtils { public static void decryptAndAddResources(ModuleDefinition module, string encryptedName, Func decryptResource) { Log.v("Decrypting resources, name: {0}", Utils.toCsharpString(encryptedName)); diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index 6095d276..bb89c51f 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -23,9 +23,9 @@ using Mono.Cecil; using Mono.Cecil.Cil; using Mono.MyStuff; using de4dot.blocks; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { abstract class DeobfuscatorBase : IDeobfuscator, IWriterListener { public const string DEFAULT_VALID_NAME_REGEX = @"^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.`-]*$"; diff --git a/de4dot.code/deobfuscators/DeobfuscatorInfoBase.cs b/de4dot.code/deobfuscators/DeobfuscatorInfoBase.cs index c59bc910..cea278bd 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorInfoBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorInfoBase.cs @@ -19,8 +19,8 @@ using System.Collections.Generic; -namespace de4dot.deobfuscators { - abstract class DeobfuscatorInfoBase : IDeobfuscatorInfo { +namespace de4dot.code.deobfuscators { + public abstract class DeobfuscatorInfoBase : IDeobfuscatorInfo { protected NameRegexOption validNameRegex; public DeobfuscatorInfoBase(string nameRegex = null) { diff --git a/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs b/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs index 0580176b..843e39c9 100644 --- a/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs @@ -22,8 +22,8 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.Dotfuscator { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.Dotfuscator { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "Dotfuscator"; public const string THE_TYPE = "df"; const string DEFAULT_REGEX = @"!^[a-z][a-z0-9]{0,2}$&!^A_[0-9]+$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX; diff --git a/de4dot.code/deobfuscators/Eazfuscator/Deobfuscator.cs b/de4dot.code/deobfuscators/Eazfuscator/Deobfuscator.cs index 8caa147e..cd929752 100644 --- a/de4dot.code/deobfuscators/Eazfuscator/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Eazfuscator/Deobfuscator.cs @@ -22,8 +22,8 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.Eazfuscator { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.Eazfuscator { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "Eazfuscator.NET"; public const string THE_TYPE = "ef"; const string DEFAULT_REGEX = @"!^#=&!^dje_.+_ejd$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX; diff --git a/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs b/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs index 254e3e9a..bccbb931 100644 --- a/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs +++ b/de4dot.code/deobfuscators/ExceptionLoggerRemover.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { class ExceptionLoggerRemover { Dictionary exceptionLoggerMethods = new Dictionary(); diff --git a/de4dot.code/deobfuscators/IDeobfuscatedFile.cs b/de4dot.code/deobfuscators/IDeobfuscatedFile.cs index 56535f0e..21ffa294 100644 --- a/de4dot.code/deobfuscators/IDeobfuscatedFile.cs +++ b/de4dot.code/deobfuscators/IDeobfuscatedFile.cs @@ -17,8 +17,8 @@ along with de4dot. If not, see . */ -namespace de4dot.deobfuscators { - interface IDeobfuscatedFile : ISimpleDeobfuscator { +namespace de4dot.code.deobfuscators { + public interface IDeobfuscatedFile : ISimpleDeobfuscator { void createAssemblyFile(byte[] data, string assemblyName, string extension = null); void stringDecryptersAdded(); } diff --git a/de4dot.code/deobfuscators/IDeobfuscator.cs b/de4dot.code/deobfuscators/IDeobfuscator.cs index e7c6046d..6417ba22 100644 --- a/de4dot.code/deobfuscators/IDeobfuscator.cs +++ b/de4dot.code/deobfuscators/IDeobfuscator.cs @@ -22,11 +22,11 @@ using System.Collections.Generic; using Mono.Cecil; using Mono.MyStuff; using de4dot.blocks; -using de4dot.renamer; -using de4dot.PE; +using de4dot.code.renamer; +using de4dot.code.PE; -namespace de4dot.deobfuscators { - interface IDeobfuscatorOptions { +namespace de4dot.code.deobfuscators { + public interface IDeobfuscatorOptions { bool RenameResourcesInCode { get; } } @@ -39,7 +39,7 @@ namespace de4dot.deobfuscators { } [Flags] - enum StringFeatures { + public enum StringFeatures { AllowNoDecryption = 1, AllowStaticDecryption = 2, AllowDynamicDecryption = 4, @@ -47,11 +47,11 @@ namespace de4dot.deobfuscators { } [Flags] - enum RenamingOptions { + public enum RenamingOptions { RemoveNamespaceIfOneType = 1, } - interface IDeobfuscator : INameChecker { + public interface IDeobfuscator : INameChecker { string Type { get; } string TypeLong { get; } string Name { get; } diff --git a/de4dot.code/deobfuscators/IDeobfuscatorInfo.cs b/de4dot.code/deobfuscators/IDeobfuscatorInfo.cs index b2f14c42..dce8c81b 100644 --- a/de4dot.code/deobfuscators/IDeobfuscatorInfo.cs +++ b/de4dot.code/deobfuscators/IDeobfuscatorInfo.cs @@ -19,8 +19,8 @@ using System.Collections.Generic; -namespace de4dot.deobfuscators { - interface IDeobfuscatorInfo { +namespace de4dot.code.deobfuscators { + public interface IDeobfuscatorInfo { string Type { get; } string Name { get; } IDeobfuscator createDeobfuscator(); diff --git a/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs b/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs index ff19ea21..7ae20fb0 100644 --- a/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs +++ b/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs @@ -19,8 +19,8 @@ using Mono.Cecil; -namespace de4dot.deobfuscators { - interface ISimpleDeobfuscator { +namespace de4dot.code.deobfuscators { + public interface ISimpleDeobfuscator { void deobfuscate(MethodDefinition method); void decryptStrings(MethodDefinition method, IDeobfuscator deob); } diff --git a/de4dot.code/deobfuscators/Operations.cs b/de4dot.code/deobfuscators/Operations.cs index ac788dd7..f0aa1978 100644 --- a/de4dot.code/deobfuscators/Operations.cs +++ b/de4dot.code/deobfuscators/Operations.cs @@ -17,14 +17,14 @@ along with de4dot. If not, see . */ -namespace de4dot.deobfuscators { - enum OpDecryptString { +namespace de4dot.code.deobfuscators { + public enum OpDecryptString { None, Static, Dynamic, } - interface IOperations { + public interface IOperations { bool KeepObfuscatorTypes { get; } OpDecryptString DecryptStrings { get; } } diff --git a/de4dot.code/deobfuscators/ProxyDelegateFinderBase.cs b/de4dot.code/deobfuscators/ProxyDelegateFinderBase.cs index 15f94977..ac17eacd 100644 --- a/de4dot.code/deobfuscators/ProxyDelegateFinderBase.cs +++ b/de4dot.code/deobfuscators/ProxyDelegateFinderBase.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { abstract class ProxyDelegateFinderBase { protected ModuleDefinition module; protected List delegateCreatorMethods = new List(); diff --git a/de4dot.code/deobfuscators/RandomNameChecker.cs b/de4dot.code/deobfuscators/RandomNameChecker.cs index 2f42c19e..b7a75395 100644 --- a/de4dot.code/deobfuscators/RandomNameChecker.cs +++ b/de4dot.code/deobfuscators/RandomNameChecker.cs @@ -21,7 +21,7 @@ using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { static class RandomNameChecker { static Regex noUpper = new Regex(@"^[^A-Z]+$"); static Regex allUpper = new Regex(@"^[A-Z]+$"); diff --git a/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolver.cs b/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolver.cs index b4022f73..4b9da9bc 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolver.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolver.cs @@ -21,7 +21,7 @@ using System; using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class AssemblyResolver { ResourceDecrypter resourceDecrypter; AssemblyResolverInfo assemblyResolverInfo; diff --git a/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolverInfo.cs b/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolverInfo.cs index 78a306f9..21cbca4b 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolverInfo.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/AssemblyResolverInfo.cs @@ -24,7 +24,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { public class EmbeddedAssemblyInfo { public string assemblyName; public string simpleName; diff --git a/de4dot.code/deobfuscators/SmartAssembly/AutomatedErrorReportingFinder.cs b/de4dot.code/deobfuscators/SmartAssembly/AutomatedErrorReportingFinder.cs index d5e0b36d..03542b30 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/AutomatedErrorReportingFinder.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/AutomatedErrorReportingFinder.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class AutomatedErrorReportingFinder { ModuleDefinition module; ExceptionLoggerRemover exceptionLoggerRemover = new ExceptionLoggerRemover(); diff --git a/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs b/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs index 4751ef1b..0fb26ab3 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs @@ -28,8 +28,8 @@ using de4dot.blocks; // SmartAssembly can add so much junk that it's very difficult to find and remove all of it. // I remove some safe types that are almost guaranteed not to have any references in the code. -namespace de4dot.deobfuscators.SmartAssembly { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.SmartAssembly { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "SmartAssembly"; public const string THE_TYPE = "sa"; BoolOption removeAutomatedErrorReporting; diff --git a/de4dot.code/deobfuscators/SmartAssembly/MemoryManagerInfo.cs b/de4dot.code/deobfuscators/SmartAssembly/MemoryManagerInfo.cs index 2d5b8dc1..6e3da9e7 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/MemoryManagerInfo.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/MemoryManagerInfo.cs @@ -20,7 +20,7 @@ using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class MemoryManagerInfo { ModuleDefinition module; TypeDefinition memoryManagerType; diff --git a/de4dot.code/deobfuscators/SmartAssembly/ProxyDelegateFinder.cs b/de4dot.code/deobfuscators/SmartAssembly/ProxyDelegateFinder.cs index 42513a52..17a8e7c9 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/ProxyDelegateFinder.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/ProxyDelegateFinder.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class ProxyDelegateFinder : ProxyDelegateFinderBase { static readonly Dictionary specialCharsDict = new Dictionary(); static readonly char[] specialChars = new char[] { diff --git a/de4dot.code/deobfuscators/SmartAssembly/ResolverInfoBase.cs b/de4dot.code/deobfuscators/SmartAssembly/ResolverInfoBase.cs index ed5a1066..47b80cba 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/ResolverInfoBase.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/ResolverInfoBase.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { abstract class ResolverInfoBase { protected ModuleDefinition module; ISimpleDeobfuscator simpleDeobfuscator; diff --git a/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypter.cs b/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypter.cs index 7663e0a8..c128325a 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypter.cs @@ -23,7 +23,7 @@ using System.Security.Cryptography; using Mono.Cecil; using ICSharpCode.SharpZipLib.Zip.Compression; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class ResourceDecrypter { ResourceDecrypterInfo resourceDecrypterInfo; diff --git a/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypterInfo.cs b/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypterInfo.cs index c58b86b7..f87c80d1 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypterInfo.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/ResourceDecrypterInfo.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class ResourceDecrypterInfo { ModuleDefinition module; TypeDefinition simpleZipType; diff --git a/de4dot.code/deobfuscators/SmartAssembly/ResourceResolver.cs b/de4dot.code/deobfuscators/SmartAssembly/ResourceResolver.cs index 26513174..33a16532 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/ResourceResolver.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/ResourceResolver.cs @@ -22,7 +22,7 @@ using System.IO; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class ResourceResolver { ModuleDefinition module; AssemblyResolver assemblyResolver; diff --git a/de4dot.code/deobfuscators/SmartAssembly/ResourceResolverInfo.cs b/de4dot.code/deobfuscators/SmartAssembly/ResourceResolverInfo.cs index 537c7ce3..d8e346db 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/ResourceResolverInfo.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/ResourceResolverInfo.cs @@ -21,7 +21,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class ResourceResolverInfo : ResolverInfoBase { EmbeddedAssemblyInfo resourceInfo; AssemblyResolverInfo assemblyResolverInfo; diff --git a/de4dot.code/deobfuscators/SmartAssembly/SimpleZipInfo.cs b/de4dot.code/deobfuscators/SmartAssembly/SimpleZipInfo.cs index 4a90afa4..ca5ef362 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/SimpleZipInfo.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/SimpleZipInfo.cs @@ -20,7 +20,7 @@ using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class SimpleZipInfo { public static bool isSimpleZipDecryptMethod_QuickCheck(ModuleDefinition module, MethodReference method, out TypeDefinition simpleZipType) { diff --git a/de4dot.code/deobfuscators/SmartAssembly/StringDecrypter.cs b/de4dot.code/deobfuscators/SmartAssembly/StringDecrypter.cs index c020d678..1b7ddc9b 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/StringDecrypter.cs @@ -20,7 +20,7 @@ using System; using System.Text; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class StringDecrypter { int stringOffset; byte[] decryptedData; diff --git a/de4dot.code/deobfuscators/SmartAssembly/StringDecrypterInfo.cs b/de4dot.code/deobfuscators/SmartAssembly/StringDecrypterInfo.cs index b97043b8..d39b9ea5 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/StringDecrypterInfo.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/StringDecrypterInfo.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class StringDecrypterInfo { ModuleDefinition module; ResourceDecrypter resourceDecrypter; diff --git a/de4dot.code/deobfuscators/SmartAssembly/StringEncoderClassFinder.cs b/de4dot.code/deobfuscators/SmartAssembly/StringEncoderClassFinder.cs index fa373ede..0ce7b099 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/StringEncoderClassFinder.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/StringEncoderClassFinder.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class StringsEncoderInfo { // SmartAssembly.HouseOfCards.Strings, the class that creates the string decrypter // delegates diff --git a/de4dot.code/deobfuscators/SmartAssembly/TamperProtectionRemover.cs b/de4dot.code/deobfuscators/SmartAssembly/TamperProtectionRemover.cs index 7d4f1d6b..e64ad353 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/TamperProtectionRemover.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/TamperProtectionRemover.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.SmartAssembly { +namespace de4dot.code.deobfuscators.SmartAssembly { class TamperProtectionRemover { ModuleDefinition module; List pinvokeMethods = new List(); diff --git a/de4dot.code/deobfuscators/StringCounts.cs b/de4dot.code/deobfuscators/StringCounts.cs index 0dd7705d..5df26d50 100644 --- a/de4dot.code/deobfuscators/StringCounts.cs +++ b/de4dot.code/deobfuscators/StringCounts.cs @@ -22,7 +22,7 @@ using System.Collections.Generic; using Mono.Cecil; using Mono.Cecil.Cil; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { class StringCounts { Dictionary strings = new Dictionary(StringComparer.Ordinal); diff --git a/de4dot.code/deobfuscators/TypesRestorer.cs b/de4dot.code/deobfuscators/TypesRestorer.cs index c5a896d9..d6a69522 100644 --- a/de4dot.code/deobfuscators/TypesRestorer.cs +++ b/de4dot.code/deobfuscators/TypesRestorer.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators { +namespace de4dot.code.deobfuscators { // Restore the type of all fields / parameters that have had their type turned into object. // This thing requires a lot more code than I have time to do now (similar to symbol renaming) // so it will be a basic implementation only. diff --git a/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs b/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs index 44cd5770..96e39063 100644 --- a/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs @@ -19,8 +19,8 @@ using System.Text.RegularExpressions; -namespace de4dot.deobfuscators.Unknown { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.Unknown { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "Unknown"; public const string THE_TYPE = "un"; public DeobfuscatorInfo() @@ -61,7 +61,7 @@ namespace de4dot.deobfuscators.Unknown { get { return obfuscatorName ?? "Unknown Obfuscator"; } } - public Deobfuscator(Options options) + internal Deobfuscator(Options options) : base(options) { } diff --git a/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs b/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs index 7a9408ad..8d48aa56 100644 --- a/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs @@ -20,8 +20,8 @@ using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.deobfuscators.Xenocode { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.Xenocode { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = "Xenocode"; public const string THE_TYPE = "xc"; const string DEFAULT_REGEX = @"!^[oO01l]{4,}$&!^(get_|set_|add_|remove_|_)?x[a-f0-9]{16,}$&" + DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX; diff --git a/de4dot.code/deobfuscators/Xenocode/StringDecrypter.cs b/de4dot.code/deobfuscators/Xenocode/StringDecrypter.cs index 4a9f6dcd..232946d3 100644 --- a/de4dot.code/deobfuscators/Xenocode/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/Xenocode/StringDecrypter.cs @@ -21,7 +21,7 @@ using System.Text; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.Xenocode { +namespace de4dot.code.deobfuscators.Xenocode { class StringDecrypter { const int STRING_DECRYPTER_KEY_CONST = 1789; ModuleDefinition module; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/AntiStrongname.cs b/de4dot.code/deobfuscators/dotNET_Reactor/AntiStrongname.cs index 76e4d802..4c2cd10b 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/AntiStrongname.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/AntiStrongname.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class AntiStrongName { TypeDefinition decrypterType; MethodDefinition antiStrongNameMethod; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/AssemblyResolver.cs b/de4dot.code/deobfuscators/dotNET_Reactor/AssemblyResolver.cs index a1484b7d..f7727458 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/AssemblyResolver.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/AssemblyResolver.cs @@ -23,7 +23,7 @@ using System.IO; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class ResourceInfo { public EmbeddedResource resource; public string name; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/BoolValueInliner.cs b/de4dot.code/deobfuscators/dotNET_Reactor/BoolValueInliner.cs index d037df7a..32733cd1 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/BoolValueInliner.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/BoolValueInliner.cs @@ -22,7 +22,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class BoolValueInliner : MethodReturnValueInliner { Dictionary> boolDecrypters = new Dictionary>(); diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/BooleanDecrypter.cs b/de4dot.code/deobfuscators/dotNET_Reactor/BooleanDecrypter.cs index 9e16fc3a..77859c31 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/BooleanDecrypter.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/BooleanDecrypter.cs @@ -21,7 +21,7 @@ using System; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class BooleanDecrypter { ModuleDefinition module; EncryptedResource encryptedResource; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs b/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs index f1a16c72..80102252 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs @@ -25,10 +25,10 @@ using Mono.Cecil; using Mono.Cecil.Cil; using Mono.MyStuff; using de4dot.blocks; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators.dotNET_Reactor { - class DeobfuscatorInfo : DeobfuscatorInfoBase { +namespace de4dot.code.deobfuscators.dotNET_Reactor { + public class DeobfuscatorInfo : DeobfuscatorInfoBase { public const string THE_NAME = ".NET Reactor"; public const string THE_TYPE = "dr"; const string DEFAULT_REGEX = DeobfuscatorBase.DEFAULT_VALID_NAME_REGEX; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/EmptyClass.cs b/de4dot.code/deobfuscators/dotNET_Reactor/EmptyClass.cs index e6111cc7..3cac270d 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/EmptyClass.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/EmptyClass.cs @@ -20,7 +20,7 @@ using Mono.Cecil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { // Detect some empty class that is called from most .ctor's class EmptyClass { ModuleDefinition module; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs b/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs index cda5905f..b7f88064 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs @@ -25,7 +25,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class EncryptedResource { ModuleDefinition module; MethodDefinition resourceDecrypterMethod; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/MetadataTokenObfuscator.cs b/de4dot.code/deobfuscators/dotNET_Reactor/MetadataTokenObfuscator.cs index ce7d1cc7..44d5d27c 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/MetadataTokenObfuscator.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/MetadataTokenObfuscator.cs @@ -21,7 +21,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { // Find the class that returns a RuntimeTypeHandle/RuntimeFieldHandle. The value passed to // its methods is the original metadata token, which will be different when we save the file. class MetadataTokenObfuscator { diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/MethodsDecrypter.cs b/de4dot.code/deobfuscators/dotNET_Reactor/MethodsDecrypter.cs index 5c7bcf53..342fdecc 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/MethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/MethodsDecrypter.cs @@ -24,9 +24,9 @@ using Mono.Cecil; using Mono.Cecil.Cil; using Mono.MyStuff; using de4dot.blocks; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class MethodsDecrypter { ModuleDefinition module; EncryptedResource encryptedResource; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/NativeFileDecrypter.cs b/de4dot.code/deobfuscators/dotNET_Reactor/NativeFileDecrypter.cs index 65e41cb1..007b702e 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/NativeFileDecrypter.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/NativeFileDecrypter.cs @@ -19,7 +19,7 @@ using System; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class NativeFileDecrypter { byte[] key; byte kb = 0; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/NativeImageUnpacker.cs b/de4dot.code/deobfuscators/dotNET_Reactor/NativeImageUnpacker.cs index e8bc1e02..125a840f 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/NativeImageUnpacker.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/NativeImageUnpacker.cs @@ -20,9 +20,9 @@ using System; using System.IO; using ICSharpCode.SharpZipLib.Zip.Compression; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class NativeImageUnpacker { PeImage peImage; bool isNet1x; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/QuickLZ.cs b/de4dot.code/deobfuscators/dotNET_Reactor/QuickLZ.cs index a06c65c5..d0a75ee9 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/QuickLZ.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/QuickLZ.cs @@ -11,7 +11,7 @@ using System; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { static class QuickLZ { static uint read32(byte[] data, int index) { return BitConverter.ToUInt32(data, index); diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/ResourceResolver.cs b/de4dot.code/deobfuscators/dotNET_Reactor/ResourceResolver.cs index 00ff62e8..b865360f 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/ResourceResolver.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/ResourceResolver.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class ResourceResolver { ModuleDefinition module; EncryptedResource encryptedResource; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/StringDecrypter.cs b/de4dot.code/deobfuscators/dotNET_Reactor/StringDecrypter.cs index 24320486..261aea5d 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/StringDecrypter.cs @@ -24,9 +24,9 @@ using System.Security.Cryptography; using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -using de4dot.PE; +using de4dot.code.PE; -namespace de4dot.deobfuscators.dotNET_Reactor { +namespace de4dot.code.deobfuscators.dotNET_Reactor { class StringDecrypter { ModuleDefinition module; EncryptedResource encryptedResource; diff --git a/de4dot.code/renamer/DerivedFrom.cs b/de4dot.code/renamer/DerivedFrom.cs index 68b7db46..5058e2f9 100644 --- a/de4dot.code/renamer/DerivedFrom.cs +++ b/de4dot.code/renamer/DerivedFrom.cs @@ -19,9 +19,9 @@ using System; using System.Collections.Generic; -using de4dot.renamer.asmmodules; +using de4dot.code.renamer.asmmodules; -namespace de4dot.renamer { +namespace de4dot.code.renamer { class DerivedFrom { Dictionary classNames = new Dictionary(StringComparer.Ordinal); Dictionary results = new Dictionary(); diff --git a/de4dot.code/renamer/ExistingNames.cs b/de4dot.code/renamer/ExistingNames.cs index 5dfb473f..1244df89 100644 --- a/de4dot.code/renamer/ExistingNames.cs +++ b/de4dot.code/renamer/ExistingNames.cs @@ -20,7 +20,7 @@ using System; using System.Collections.Generic; -namespace de4dot.renamer { +namespace de4dot.code.renamer { class ExistingNames { Dictionary allNames = new Dictionary(StringComparer.Ordinal); diff --git a/de4dot.code/renamer/INameChecker.cs b/de4dot.code/renamer/INameChecker.cs index d0c2499e..c8bc1da2 100644 --- a/de4dot.code/renamer/INameChecker.cs +++ b/de4dot.code/renamer/INameChecker.cs @@ -17,8 +17,8 @@ along with de4dot. If not, see . */ -namespace de4dot.renamer { - interface INameChecker { +namespace de4dot.code.renamer { + public interface INameChecker { bool isValidNamespaceName(string ns); bool isValidTypeName(string name); bool isValidMethodName(string name); diff --git a/de4dot.code/renamer/MemberInfos.cs b/de4dot.code/renamer/MemberInfos.cs index f46313b9..b49ce1a7 100644 --- a/de4dot.code/renamer/MemberInfos.cs +++ b/de4dot.code/renamer/MemberInfos.cs @@ -18,9 +18,9 @@ */ using System.Collections.Generic; -using de4dot.renamer.asmmodules; +using de4dot.code.renamer.asmmodules; -namespace de4dot.renamer { +namespace de4dot.code.renamer { class MemberInfo { protected Ref memberRef; public string oldFullName; diff --git a/de4dot.code/renamer/NameCreators.cs b/de4dot.code/renamer/NameCreators.cs index 46b32706..f9dd089e 100644 --- a/de4dot.code/renamer/NameCreators.cs +++ b/de4dot.code/renamer/NameCreators.cs @@ -21,7 +21,7 @@ using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.renamer { +namespace de4dot.code.renamer { interface INameCreator { string create(); } diff --git a/de4dot.code/renamer/Renamer.cs b/de4dot.code/renamer/Renamer.cs index eee9339a..4c72ea9a 100644 --- a/de4dot.code/renamer/Renamer.cs +++ b/de4dot.code/renamer/Renamer.cs @@ -22,11 +22,11 @@ using System.Collections.Generic; using System.Text.RegularExpressions; using Mono.Cecil; using Mono.Cecil.Cil; -using de4dot.renamer.asmmodules; +using de4dot.code.renamer.asmmodules; using de4dot.blocks; -namespace de4dot.renamer { - class Renamer { +namespace de4dot.code.renamer { + public class Renamer { public bool RenameNamespaces { get; set; } public bool RenameTypes { get; set; } public bool RenameProperties { get; set; } diff --git a/de4dot.code/renamer/TypeInfo.cs b/de4dot.code/renamer/TypeInfo.cs index 883665ee..455602ea 100644 --- a/de4dot.code/renamer/TypeInfo.cs +++ b/de4dot.code/renamer/TypeInfo.cs @@ -22,10 +22,10 @@ using System.Collections.Generic; using System.Text.RegularExpressions; using Mono.Cecil; using Mono.Cecil.Cil; -using de4dot.renamer.asmmodules; +using de4dot.code.renamer.asmmodules; using de4dot.blocks; -namespace de4dot.renamer { +namespace de4dot.code.renamer { class TypeInfo : MemberInfo { public string oldNamespace; public string newNamespace; diff --git a/de4dot.code/renamer/TypeNames.cs b/de4dot.code/renamer/TypeNames.cs index 20cdd09e..dfd9a300 100644 --- a/de4dot.code/renamer/TypeNames.cs +++ b/de4dot.code/renamer/TypeNames.cs @@ -21,7 +21,7 @@ using System; using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.renamer { +namespace de4dot.code.renamer { abstract class TypeNames { protected Dictionary typeNames = new Dictionary(StringComparer.Ordinal); protected NameCreator genericParamNameCreator = new NameCreator("gparam_"); diff --git a/de4dot.code/renamer/TypeRenamerState.cs b/de4dot.code/renamer/TypeRenamerState.cs index 31696eae..fab486dc 100644 --- a/de4dot.code/renamer/TypeRenamerState.cs +++ b/de4dot.code/renamer/TypeRenamerState.cs @@ -20,7 +20,7 @@ using System; using System.Collections.Generic; -namespace de4dot.renamer { +namespace de4dot.code.renamer { class TypeRenamerState { ExistingNames existingNames; Dictionary namespaceToNewName; diff --git a/de4dot.code/renamer/VariableNameState.cs b/de4dot.code/renamer/VariableNameState.cs index 38e232c0..8ad34599 100644 --- a/de4dot.code/renamer/VariableNameState.cs +++ b/de4dot.code/renamer/VariableNameState.cs @@ -19,7 +19,7 @@ using Mono.Cecil; -namespace de4dot.renamer { +namespace de4dot.code.renamer { class VariableNameState { ExistingNames existingVariableNames = new ExistingNames(); ExistingNames existingMethodNames = new ExistingNames(); diff --git a/de4dot.code/renamer/asmmodules/EventDef.cs b/de4dot.code/renamer/asmmodules/EventDef.cs index 17e5fe71..3c85cdfd 100644 --- a/de4dot.code/renamer/asmmodules/EventDef.cs +++ b/de4dot.code/renamer/asmmodules/EventDef.cs @@ -20,7 +20,7 @@ using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class EventDef : Ref { public MethodDef AddMethod { get; set; } public MethodDef RemoveMethod { get; set; } diff --git a/de4dot.code/renamer/asmmodules/ExternalAssemblies.cs b/de4dot.code/renamer/asmmodules/ExternalAssemblies.cs index 83f0d38e..af5cfd79 100644 --- a/de4dot.code/renamer/asmmodules/ExternalAssemblies.cs +++ b/de4dot.code/renamer/asmmodules/ExternalAssemblies.cs @@ -21,7 +21,7 @@ using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class ExternalAssembly { AssemblyDefinition asmDef; diff --git a/de4dot.code/renamer/asmmodules/FieldDef.cs b/de4dot.code/renamer/asmmodules/FieldDef.cs index 9c1798c4..2698f0dc 100644 --- a/de4dot.code/renamer/asmmodules/FieldDef.cs +++ b/de4dot.code/renamer/asmmodules/FieldDef.cs @@ -19,7 +19,7 @@ using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class FieldDef : Ref { public FieldDefinition FieldDefinition { get { return (FieldDefinition)memberReference; } diff --git a/de4dot.code/renamer/asmmodules/GenericParamDef.cs b/de4dot.code/renamer/asmmodules/GenericParamDef.cs index ef448c25..5661ab97 100644 --- a/de4dot.code/renamer/asmmodules/GenericParamDef.cs +++ b/de4dot.code/renamer/asmmodules/GenericParamDef.cs @@ -20,7 +20,7 @@ using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class GenericParamDef : Ref { public GenericParameter GenericParameter { get { return (GenericParameter)memberReference; } diff --git a/de4dot.code/renamer/asmmodules/IResolver.cs b/de4dot.code/renamer/asmmodules/IResolver.cs index 8276e1d8..95cbb88a 100644 --- a/de4dot.code/renamer/asmmodules/IResolver.cs +++ b/de4dot.code/renamer/asmmodules/IResolver.cs @@ -19,7 +19,7 @@ using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { interface IResolver { TypeDef resolve(TypeReference typeReference); MethodDef resolve(MethodReference methodReference); diff --git a/de4dot.code/renamer/asmmodules/MemberRefFinder.cs b/de4dot.code/renamer/asmmodules/MemberRefFinder.cs index 102f3b84..44445702 100644 --- a/de4dot.code/renamer/asmmodules/MemberRefFinder.cs +++ b/de4dot.code/renamer/asmmodules/MemberRefFinder.cs @@ -23,7 +23,7 @@ using Mono.Cecil; using Mono.Cecil.Cil; using de4dot.blocks; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class MemberRefFinder { public Dictionary eventDefinitions = new Dictionary(); public Dictionary fieldReferences = new Dictionary(); diff --git a/de4dot.code/renamer/asmmodules/MethodDef.cs b/de4dot.code/renamer/asmmodules/MethodDef.cs index 180e28ce..b921159c 100644 --- a/de4dot.code/renamer/asmmodules/MethodDef.cs +++ b/de4dot.code/renamer/asmmodules/MethodDef.cs @@ -20,7 +20,7 @@ using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class MethodDef : Ref { IList genericParams; IList paramDefs = new List(); diff --git a/de4dot.code/renamer/asmmodules/MethodNameScopes.cs b/de4dot.code/renamer/asmmodules/MethodNameScopes.cs index 787be368..e012e2b5 100644 --- a/de4dot.code/renamer/asmmodules/MethodNameScopes.cs +++ b/de4dot.code/renamer/asmmodules/MethodNameScopes.cs @@ -20,7 +20,7 @@ using System; using System.Collections.Generic; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class MethodNameScope { List methods = new List(); diff --git a/de4dot.code/renamer/asmmodules/Module.cs b/de4dot.code/renamer/asmmodules/Module.cs index 07338d79..84332270 100644 --- a/de4dot.code/renamer/asmmodules/Module.cs +++ b/de4dot.code/renamer/asmmodules/Module.cs @@ -22,7 +22,7 @@ using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class Module : IResolver { IObfuscatedFile obfuscatedFile; TypeDefDict types = new TypeDefDict(); diff --git a/de4dot.code/renamer/asmmodules/Modules.cs b/de4dot.code/renamer/asmmodules/Modules.cs index 02eef038..e7f6198c 100644 --- a/de4dot.code/renamer/asmmodules/Modules.cs +++ b/de4dot.code/renamer/asmmodules/Modules.cs @@ -22,7 +22,7 @@ using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class Modules : IResolver { bool initializeCalled = false; List modules = new List(); diff --git a/de4dot.code/renamer/asmmodules/ParamDef.cs b/de4dot.code/renamer/asmmodules/ParamDef.cs index 5a403182..1611636f 100644 --- a/de4dot.code/renamer/asmmodules/ParamDef.cs +++ b/de4dot.code/renamer/asmmodules/ParamDef.cs @@ -19,7 +19,7 @@ using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class ParamDef { public ParameterDefinition ParameterDefinition { get; set; } public int Index { get; private set; } diff --git a/de4dot.code/renamer/asmmodules/PropertyDef.cs b/de4dot.code/renamer/asmmodules/PropertyDef.cs index d6b8cbd3..7b855b6d 100644 --- a/de4dot.code/renamer/asmmodules/PropertyDef.cs +++ b/de4dot.code/renamer/asmmodules/PropertyDef.cs @@ -20,7 +20,7 @@ using System.Collections.Generic; using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class PropertyDef : Ref { public MethodDef GetMethod { get; set; } public MethodDef SetMethod { get; set; } diff --git a/de4dot.code/renamer/asmmodules/Ref.cs b/de4dot.code/renamer/asmmodules/Ref.cs index 5c02a696..11ab66be 100644 --- a/de4dot.code/renamer/asmmodules/Ref.cs +++ b/de4dot.code/renamer/asmmodules/Ref.cs @@ -19,7 +19,7 @@ using Mono.Cecil; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { abstract class Ref { public readonly MemberReference memberReference; public int Index { get; set; } diff --git a/de4dot.code/renamer/asmmodules/RefDict.cs b/de4dot.code/renamer/asmmodules/RefDict.cs index 9c4cb741..2efc3381 100644 --- a/de4dot.code/renamer/asmmodules/RefDict.cs +++ b/de4dot.code/renamer/asmmodules/RefDict.cs @@ -21,7 +21,7 @@ using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { interface RefDict where TRef : Ref where TMRef : MemberReference { int Count { get; } IEnumerable getAll(); diff --git a/de4dot.code/renamer/asmmodules/TypeDef.cs b/de4dot.code/renamer/asmmodules/TypeDef.cs index 33133bc6..8d5829c6 100644 --- a/de4dot.code/renamer/asmmodules/TypeDef.cs +++ b/de4dot.code/renamer/asmmodules/TypeDef.cs @@ -22,7 +22,7 @@ using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -namespace de4dot.renamer.asmmodules { +namespace de4dot.code.renamer.asmmodules { class TypeInfo { public TypeReference typeReference; public TypeDef typeDef; diff --git a/de4dot.code/CommandLineParser.cs b/de4dot.cui/CommandLineParser.cs similarity index 99% rename from de4dot.code/CommandLineParser.cs rename to de4dot.cui/CommandLineParser.cs index 38687bef..69344f42 100644 --- a/de4dot.code/CommandLineParser.cs +++ b/de4dot.cui/CommandLineParser.cs @@ -20,10 +20,11 @@ using System; using System.IO; using System.Collections.Generic; -using de4dot.deobfuscators; -using de4dot.AssemblyClient; +using de4dot.code; +using de4dot.code.deobfuscators; +using de4dot.code.AssemblyClient; -namespace de4dot { +namespace de4dot.cui { class CommandLineParser { static Infos stringDecrypterTypes = new Infos(); diff --git a/de4dot.code/FilesDeobfuscator.cs b/de4dot.cui/FilesDeobfuscator.cs similarity index 97% rename from de4dot.code/FilesDeobfuscator.cs rename to de4dot.cui/FilesDeobfuscator.cs index 366aaf15..a3a74116 100644 --- a/de4dot.code/FilesDeobfuscator.cs +++ b/de4dot.cui/FilesDeobfuscator.cs @@ -22,11 +22,12 @@ using System.IO; using System.Collections.Generic; using Mono.Cecil; using de4dot.blocks; -using de4dot.renamer; -using de4dot.deobfuscators; -using de4dot.AssemblyClient; +using de4dot.code; +using de4dot.code.renamer; +using de4dot.code.deobfuscators; +using de4dot.code.AssemblyClient; -namespace de4dot { +namespace de4dot.cui { class FilesDeobfuscator { Options options; @@ -99,7 +100,7 @@ namespace de4dot { } catch (Exception ex) { Log.w("Could not deobfuscate {0}. Use -v to see stack trace", file.Filename); - Utils.printStackTrace(ex, Log.LogLevel.verbose); + Program.printStackTrace(ex, Log.LogLevel.verbose); } finally { file.deobfuscateCleanUp(); @@ -204,7 +205,7 @@ namespace de4dot { } var deob = file.Deobfuscator; - if (skipUnknownObfuscator && deob is deobfuscators.Unknown.Deobfuscator) { + if (skipUnknownObfuscator && deob.Type == "un") { Log.v("Skipping unknown obfuscator: {0}", file.Filename); removeModule(file.ModuleDefinition); return false; diff --git a/de4dot.code/Program.cs b/de4dot.cui/Program.cs similarity index 62% rename from de4dot.code/Program.cs rename to de4dot.cui/Program.cs index 6b89c475..3d8bff7e 100644 --- a/de4dot.code/Program.cs +++ b/de4dot.cui/Program.cs @@ -20,28 +20,27 @@ using System; using System.Collections.Generic; using System.Text; -using de4dot.deobfuscators; +using de4dot.code; +using de4dot.code.deobfuscators; -namespace de4dot { +namespace de4dot.cui { public class Program { static IList deobfuscatorInfos = createDeobfuscatorInfos(); static IList createDeobfuscatorInfos() { return new List { - new de4dot.deobfuscators.Unknown.DeobfuscatorInfo(), - new de4dot.deobfuscators.CliSecure.DeobfuscatorInfo(), - new de4dot.deobfuscators.CryptoObfuscator.DeobfuscatorInfo(), - new de4dot.deobfuscators.Dotfuscator.DeobfuscatorInfo(), - new de4dot.deobfuscators.dotNET_Reactor.DeobfuscatorInfo(), - new de4dot.deobfuscators.Eazfuscator.DeobfuscatorInfo(), - new de4dot.deobfuscators.SmartAssembly.DeobfuscatorInfo(), - new de4dot.deobfuscators.Xenocode.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.Unknown.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.CliSecure.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.CryptoObfuscator.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.Dotfuscator.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.dotNET_Reactor.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.Eazfuscator.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.SmartAssembly.DeobfuscatorInfo(), + new de4dot.code.deobfuscators.Xenocode.DeobfuscatorInfo(), }; } - public static int main(StartUpArch startUpArch, string[] args) { - Utils.startUpArch = startUpArch; - + public static int main(string[] args) { try { if (Console.OutputEncoding.IsSingleByte) Console.OutputEncoding = new UTF8Encoding(false); @@ -59,7 +58,7 @@ namespace de4dot { Log.e("ERROR: {0}", ex.Message); } catch (Exception ex) { - Utils.printStackTrace(ex); + printStackTrace(ex); Log.e("\nTry the latest version before reporting this problem!"); return 1; } @@ -67,6 +66,20 @@ namespace de4dot { return 0; } + public static void printStackTrace(Exception ex, Log.LogLevel logLevel = Log.LogLevel.error) { + var line = new string('-', 78); + Log.log(logLevel, "\n\n"); + Log.log(logLevel, line); + Log.log(logLevel, "Stack trace:\n{0}", ex.StackTrace); + Log.log(logLevel, "\n\nERROR: Caught an exception:\n"); + Log.log(logLevel, line); + Log.log(logLevel, "Message:"); + Log.log(logLevel, " {0}", ex.Message); + Log.log(logLevel, "Type:"); + Log.log(logLevel, " {0}", ex.GetType()); + Log.log(logLevel, line); + } + static void parseCommandLine(string[] args, FilesDeobfuscator.Options options) { new CommandLineParser(deobfuscatorInfos, options).parse(args); diff --git a/de4dot.cui/Properties/AssemblyInfo.cs b/de4dot.cui/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..8dfe5bcf --- /dev/null +++ b/de4dot.cui/Properties/AssemblyInfo.cs @@ -0,0 +1,34 @@ +/* + Copyright (C) 2011 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 System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("de4dot.cui")] +[assembly: AssemblyDescription("de4dot Console UI code")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("de4dot.cui")] +[assembly: AssemblyCopyright("Copyright (C) 2011 de4dot@gmail.com")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] +[assembly: AssemblyVersion("1.3.6.3405")] +[assembly: AssemblyFileVersion("1.3.6.3405")] diff --git a/de4dot.cui/de4dot.cui.csproj b/de4dot.cui/de4dot.cui.csproj new file mode 100644 index 00000000..b8db6c89 --- /dev/null +++ b/de4dot.cui/de4dot.cui.csproj @@ -0,0 +1,67 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {879E4A7E-C320-42D2-8275-4F1E44CE64AA} + Library + Properties + de4dot.cui + de4dot.cui + v2.0 + 512 + + true + ..\de4dot.snk + + + AnyCPU + true + full + false + ..\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + ..\Release\ + TRACE + prompt + 4 + true + + + + + + + + + + {045B96F2-AF80-4C4C-8D27-E38635AC705E} + blocks + + + {D68133BD-1E63-496E-9EDE-4FBDBF77B486} + Mono.Cecil + + + {4D10B9EB-3BF1-4D61-A389-CB019E8C9622} + de4dot.code + + + + + \ No newline at end of file diff --git a/de4dot.sln b/de4dot.sln index 863bad2e..42597f32 100644 --- a/de4dot.sln +++ b/de4dot.sln @@ -21,6 +21,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssemblyServer-x64", "Assem EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "blocks", "blocks\blocks.csproj", "{045B96F2-AF80-4C4C-8D27-E38635AC705E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "de4dot.cui", "de4dot.cui\de4dot.cui.csproj", "{879E4A7E-C320-42D2-8275-4F1E44CE64AA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -793,6 +795,78 @@ Global {045B96F2-AF80-4C4C-8D27-E38635AC705E}.winphone_Release|Mixed Platforms.Build.0 = Release|Any CPU {045B96F2-AF80-4C4C-8D27-E38635AC705E}.winphone_Release|Win32.ActiveCfg = Release|Any CPU {045B96F2-AF80-4C4C-8D27-E38635AC705E}.winphone_Release|x86.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Debug|Win32.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Debug|x86.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Debug|Any CPU.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Debug|Win32.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Debug|x86.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Release|Any CPU.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Release|Any CPU.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Release|Mixed Platforms.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Release|Win32.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_2_0_Release|x86.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Debug|Any CPU.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Debug|Win32.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Debug|x86.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Release|Any CPU.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Release|Any CPU.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Release|Mixed Platforms.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Release|Win32.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_3_5_Release|x86.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Debug|Any CPU.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Debug|Win32.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Debug|x86.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Release|Any CPU.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Release|Any CPU.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Release|Mixed Platforms.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Release|Win32.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.net_4_0_Release|x86.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Release|Any CPU.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Release|Win32.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.Release|x86.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Debug|Any CPU.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Debug|Win32.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Debug|x86.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Release|Any CPU.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Release|Any CPU.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Release|Mixed Platforms.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Release|Win32.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.silverlight_Release|x86.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Debug|Any CPU.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Debug|Any CPU.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Debug|Win32.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Debug|x86.ActiveCfg = Debug|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Release|Any CPU.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Release|Any CPU.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Release|Mixed Platforms.Build.0 = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Release|Win32.ActiveCfg = Release|Any CPU + {879E4A7E-C320-42D2-8275-4F1E44CE64AA}.winphone_Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/de4dot/Program.cs b/de4dot/Program.cs index 4fb0dda6..8410a5a7 100644 --- a/de4dot/Program.cs +++ b/de4dot/Program.cs @@ -20,7 +20,7 @@ namespace de4dot_x86 { class Program { static int Main(string[] args) { - return de4dot.Program.main(de4dot.StartUpArch.x86, args); + return de4dot.cui.Program.main(args); } } } diff --git a/de4dot/de4dot.csproj b/de4dot/de4dot.csproj index 89f9742b..f28439f3 100644 --- a/de4dot/de4dot.csproj +++ b/de4dot/de4dot.csproj @@ -42,9 +42,9 @@ - - {4D10B9EB-3BF1-4D61-A389-CB019E8C9622} - d4d.code + + {879E4A7E-C320-42D2-8275-4F1E44CE64AA} + de4dot.cui