I want to know if there are ways to compile C, C++ and Python code in order to not be able to reverse engineering it over Linux or not?

I have heard there are some ways over Windows to do it, but I am working on Linux.

I want to compile my code securely, as released or final version.


At least I want to make it hard for usual users to disassemble,

I am using GCC for C and C++, also I would be thankful if you introduce me best compiler for Python.

  • What means are you familiar with on Windows? Can't those be extended to Linux? – devnull Feb 24 '14 at 9:56
  • 1
    Have you explored anti-debugging techniques? – devnull Feb 24 '14 at 9:57
  • @devnull not yet... – MLSC Feb 24 '14 at 9:58
  • I am not familiar with windows...I have hear there is a way in visual c in win – MLSC Feb 24 '14 at 9:59
  • 1
    i think any binary code is hard fo the usual user to disassemble. – umläute Feb 24 '14 at 10:24


you probably don't want to invest time into preventing people from disassembling your code: instead focus on making your project better, so that once your competitors have figured out how you did feature X, your software already has feature Y...

the reasoning is simple: if you have a dull project, then nobody will care to disassemble it and you have invested all the time for nought. otoh, if your product is cool, an armada of hackers will spent time to figure out how you did it. there is little you can do about it (and it happens to major players (like microsoft,...) as well). but these hackers will always be one step behind: re-constructing a program from assembler is not trivial. so make sure that you keep moving, and they will stay behind.


make sure that your code does not contain debugging symbols. with gcc this basically means that you should turn off the -g flag. (most likely this is exactly what Visual Studio's "Release" builds do for MSVC).

you might also think about static linking of external libraries (in order to keep code injection via the dynamic linker minimal)


do not trust any vendor, that providing a Release build will protect your binary in any way.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.