Distribution of Confused Assemblies to Development Teams

Aug 15, 2012 at 3:57 PM
Edited Aug 15, 2012 at 4:00 PM

Confuser is amazing but I have an issue.

If I have an assembly I want obfuscated with Confuser, and I have another project that needs to utilize that confused assembly, how can they debug their application?

So far, it seems to me that any app referencing a confused assembly cannot run in debug mode - even if they are just calling the assembly and not trying to debug into it.

It seems to always throw some sort of FatalExecutionEngineError or such.

Any help is greatly appreciated. Awesome work!

Error:

FatalExecutionEngineError was detected
Message: The runtime has encountered a fatal error. The address of the error was at 0x002440cd, on thread 0x29e0. The error code is 0x80131623. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.

Aug 15, 2012 at 7:23 PM

So after some playing I realize that the Anti-Debug setting is what causes the problem, which yeah, seems obvious. And the assemblies work fine in a release build with no debugger.

Problem is I want to be able to distribute the DLL to another dev team so they can use it, but not allow them to debug into it.

I could give them a DLL for Release that has the Anti-Debug enabled I suppose, but it still means that a DLL without Anti-Debug is in circulation...

Coordinator
Aug 16, 2012 at 5:42 AM

Hi,

Confuser cannot detect whether it is Visual Studio or reverse engineer try to debug the DLL, so it will automatically exit when it detected a debugger.

For your situation, I suggest you use two version of assemblies, one for development that have some kind of pop-up message or watermark without anti debug, onr for release that with anti-debug.