4 ms·
Here's an ignorant technical question (I'm not a developer): Can variable- and method names still be discerned from publicly-distributed executable code by rev
by dctoedt 14y ago
Here's an ignorant technical question (I'm not a developer): Can variable- and method names still be discerned from publicly-distributed executable code by reverse-compiling it? It used to be that way years ago, but I have no idea if it's still true. If so, verbose names would make it that much easier for a competitor to reverse-engineer your distributed executable code. From that perspective, comments might be preferable to verbosity, because comments would get stripped out in compilation.
(Of course, this assumes that you distribute your executable instead of keeping it inaccessible to others, for example by running it on a Web server.)
- espinchi 14y agoIn some programming languages/platforms (e.g. Java), the product that you distribute can indeed be reverse engineered in a way that most original names are kept. But there are tools to obfuscate the code before turning it into something executable. In some others (e.g. C), the executable that's distributed pretty much talks the language of the underlying machine, so the original code structure and naming are not preserved.
- MichaelGG 14y agoGenerally, virtual machine or interpreted languages have such symbol information available, native compilers tend to not include such things in the binary. It is not that big of a deal though. On platforms like Java or .NET, you can run an obfuscator to strip out names and leave confusing looking strings. But it only increases reverse engineering complication very slightly. If you're trying to protect a small secret (like a key validation or special algorithm), you're out of luck, even if you strip symbol names. If you're trying to prevent wholesale ripoff of your app, legal action is more effective. Making your code "worse" is a terrible tradeoff for approximately zero gain.
- Evbn 14y agoIn fact, shipping symbol names makes it easier to prove copyright violation.
- tptacek 14y agoNot generally, but sometimes, depending on the language. That said: it is very easy to reverse engineer most compiled code regardless of the language; it is only a constant factor harder than understanding the source code in its original language.