diff --git a/.gitignore b/.gitignore index 6f77d48..e10d50d 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,5 @@ packages/ *.sln.* gh-pages/ -.idea/ \ No newline at end of file +.idea/ +Properties/ diff --git a/MSILEmulator/MSILEmulator.csproj b/MSILEmulator/MSILEmulator.csproj index edabc98..5eefaf3 100644 --- a/MSILEmulator/MSILEmulator.csproj +++ b/MSILEmulator/MSILEmulator.csproj @@ -5,7 +5,7 @@ - + diff --git a/README.md b/README.md index 12c53e2..5336fa1 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,13 @@ # UnConfuserEx A tool for deobfuscating C# binaries protected with ConfuserEx2. -This was originally a private project that I decided to make public after it had no real use to me anymore. The removal of protections was very focused on one specific binary I was reversing so it's fairly likely things will break. Removers are all added to a "pipeline" so if there's some custom protection you need removing, it should be fairly straightforward to add it. - - If something does break, either fix it yourself, or raise an issue. Since this code was never meant to see the light of day, it is pretty (read: extremely) poor. I don't like looking at it, so I simply do not look at it any more (Although, I do occasionally feel like fixing some nasty bugs when I'm bored). +This was originally a private project that I decided to make public after it had no real use to me anymore. The removal of protections was focused on one specific binary I was reversing and they seemed to be using a slightly modified version of ConfuserEx, so it's possible that some things will be broken. ## Usage UnConfuserEx.exe -All that needs to be specified is the target binary. If no output is specified, the output will be named "obfuscated_target-deobfuscated" +If no output path is specified, the deobfuscated output will be in the same directory as the target with the "-deobfuscated" suffix applied. ## Protections Most common protections are removed by UnconfuserEx, but I haven't exhaustively tested permutations of the protections removed by it. YMMV. @@ -34,7 +32,7 @@ Most common protections are removed by UnconfuserEx, but I haven't exhaustively - [x] Switch - [ ] Jump (I've never seen a Jump-obfuscated binary so :shrug:) - [ ] Reference Proxy - - [x] Normal + - [ ] Normal - [ ] Dynamic (expression) (This might be removed as well? Never tested) - [x] x86 - [x] Renamer (All non-ASCII names are replaced with a generic (Type)No to improve readability) @@ -45,14 +43,7 @@ Most common protections are removed by UnconfuserEx, but I haven't exhaustively There may be more that I've missed. ## Issues -If you run into a consistent error trying to deobfuscate a binary and feel like raising an issue, please follow these steps: - -1. Remove file extensions from files (I will never execute anything sent to me anyway, it's just a bit of courtesy y'know :) ) -2. Zip/rar/7zip/whatever everything up -3. Create an issue with the console output from the failed deobfuscation, and a link to download the above archive. If you've done any investigation into the issue, please do share your findings as well, even if you don't think they'd be useful; you'd be surprised. -4. Pray that I eventually look at it and fix it. +If you run into a consistent error trying to deobfuscate a binary, upload the binary to any file sharing site and raise an issue with a link to the file, as well as the console output. ## Contributing -All contributions are welcome, make a pull request and I'll eventually get around to looking at it (if you think it's especially important, find a way to spam me on something because I rarely look at this repo). - -No specific requirements for contributions either, just don't be a fool. +All contributions are welcome, make a pull request and I'll try to respond in a reasonable amount of time. \ No newline at end of file diff --git a/UnConfuserEx/UnConfuserEx.cs b/UnConfuserEx/UnConfuserEx.cs index 5ea28c7..f371cb9 100644 --- a/UnConfuserEx/UnConfuserEx.cs +++ b/UnConfuserEx/UnConfuserEx.cs @@ -18,7 +18,7 @@ namespace UnConfuserEx static int Main(string[] args) { - XmlConfigurator.Configure(typeof(UnConfuserEx).Assembly.GetManifestResourceStream("UnConfuserEx.log4net.xml")); + XmlConfigurator.Configure(typeof(UnConfuserEx).Assembly.GetManifestResourceStream("UnConfuserEx.log4net.xml")!); if (args.Length < 1 || args.Length > 2) { diff --git a/UnConfuserEx/UnConfuserEx.csproj b/UnConfuserEx/UnConfuserEx.csproj index 0d65137..547ccf6 100644 --- a/UnConfuserEx/UnConfuserEx.csproj +++ b/UnConfuserEx/UnConfuserEx.csproj @@ -17,8 +17,8 @@ - - + + diff --git a/X86Emulator/X86Emulator.csproj b/X86Emulator/X86Emulator.csproj index 899e364..3fe4476 100644 --- a/X86Emulator/X86Emulator.csproj +++ b/X86Emulator/X86Emulator.csproj @@ -6,7 +6,7 @@ - +