Jump to content
  • Advertisement
Sign in to follow this  
berrtus

exe files

This topic is 3495 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Basic question: If say I sold exe files is it possible for someone to go back from the exe file to the actual code. I am assuming not, but just curious as to how much of my programming I give away when I release an exe file. In particular say I generated some unique fractals I assume it would not be easy to discover the algorithm from the exe file?

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by berrtus
Basic question: If say I sold exe files is it possible for someone to go back from the exe file to the actual code. I am assuming not, but just curious as to how much of my programming I give away when I release an exe file. In particular say I generated some unique fractals I assume it would not be easy to discover the algorithm from the exe file?


An exe compiled without debugging information should not contain variable, function, class or method names. Enabling RTTI might change this slightly with some compilers but it would not be possible to get your exact code back out of a compiled executable.

However, sophisticated disassemblers do exist and if someone was determined and skilled enough, they could probably reverse engineer your algorithm out of your exe.

Share this post


Link to post
Share on other sites
what EasilyConfused said may sound scary, but remember that a lot of work is needed to really reverse engineer anything out of a compiled binary, and even then success is questionable.

Most of the time people won't bother with trying to reverse engineer your executable, they'll look for known values in memory. I believe there was an article (either here or gamasutra) on AoE(I think) where someone did that and emailed them. (someone not being the author of the article. the author was part of the dev team)

Share this post


Link to post
Share on other sites
Couldn't you just obfuscate it?

I've heard that some compilers have a setting to insert random instructions that do nothing into the binary. If you are are worried about people looking for variable values in memory, you could try to disguise them, by say, adding random values, or swapping out different variables


Share this post


Link to post
Share on other sites
No offense, but who cares if someone can reproduce a particular fractal pattern?

Otherwise the usual program sales protection advice applies: Technological solutions cannot solve legal problems.

Share this post


Link to post
Share on other sites
If someone has a fair understanding of assembly language, they could easily run your program through a disassembler, such as ollydbg, and understand your algorithm.

Share this post


Link to post
Share on other sites
- If the code is in a .net language like C# or VB, there are programs that can regenerate the source pretty accurately.
- If the code is in a language like Delphi or VB6, there are older programs that can usually regenerate the source accurately.
- If it is in a scripting language like Autoit, Lua, etc... there are fewer programs, but it it still is possible.
- If it is written in C/C++, there are very few tools to actually recreate source, but if someone knew what they were looking for, then they could recreate it with a bit of work. Also, some compilers will embed code for debugging reasons, so you need to make sure you use an equivalent of a "release" mode and enable options to strip our all extra information.

If you think your code is worth protecting to the degree of paying for it, then you can check out commercial products such as Themida or EXECryptor (Themida can protect .Net as well I believe). You will want to mainly use code virtualization features and add in some anti-debugging options. However, in doing so you make your application a bit more hefty, more virus false-positive when scanned, and it will not be as "fast" due to extra overhead.

There are of course other free tools, but the only people you end up deterring from trying to rip your algorithms are the people who would not have bothered trying to take them in the first place [wink]. You get what you pay for in this field, the money spent on Execryptor and Themida servers its purpose well. That is not to say those will 100% protect your code, since that is not possible. However, it will strongly deter all but the most dedicated people from trying to get your stuff. For those people, there is nothing you can do.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!