Could this C++ project be decompiled with such tools like a .NET Reflector?

2.1k Views Asked by At

I use Microsoft Visual Studio 2012 and I want to write an application in native C++. Reason why I don't want to use Manged Code (.NET) because I don't want that my application was decompiled back to the Source Code with such tools like a .NET Reflector, but it would be nice if I still could use UI (CLR Windows Form) in my application.

But when I'm adding UI (CLR Windows Form) to my Win32 Project this message pops up:

message

Does that mean that from now all my project won't be compiled as a native code and there will be possibility to decompile whole my application with such tools like a .NET Reflector?

Or it will be "mixed" (Native Code + Managed Code) project ant there won't be ability to decompile whole application with such tools like a .NET Reflector only certain part of it which is responsible for UI?

P.S. Yes, I know that any application can be decompiled (!!!), but I namely asking about the decompiling tools for .NET based applications. With .NET Reflector you can "get back the original source code" from .NET applications. So my question is, does it will be possible "to get back the original source code" from this application or it will be somehow "mixed" code (manged + native) and there won't be possibility to decompile it back to the original source code with such tool like a .NET Reflector?

1

There are 1 best solutions below

3
On

If "decompiling" menas "to get back the original source", in absence of any symbol table in the executable, tha would be not possible.

If "decompiling" means "to get a user modifiable code that is semantically equivalent to the original and can be compiled back into an executable program" that is always possible (even by modifying the machine code itself directly: there are people that understand it!). How this is understandable to what large audience that's all another story.

The general law of marketing says "the only thing that cannot be copied is the one that never gets sold!" It's a matter related to the physical nature of software. There is no workaround from that (apart working for another universe)