1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

How can i protect my C++ program from Reverse Engineering

Discussion in 'Tools programming' started by Manuel Ambulo, 17/2/08.

  1. Manuel Ambulo

    Manuel Ambulo

    Joined:
    29/9/06
    Messages:
    162
    Country:
    panama
    Hi,

    Just have a little question about programming. Is there a way or already existing way in which i can compile my C++ program in a way which Reverse Engineering can be hard?..i know that there is Obfuscator, but im not sure it it supports Visual C++ projects. I mean, how (or what i can use to) compile my program to avoid others to do Reverse Engineering on it, or at least, make them hard to do Reverse Engineering, so then i can protect my program from Reverse Engineering?

    Best Regards,

    Manuel Ambulo
  2. scruffyduck

    scruffyduck Administrator Staff Member FSDevConf team Resource contributor

    Joined:
    17/9/05
    Messages:
    25,443
    Country:
    wales
    Are you using dotNET or some other C++ compiler?
  3. Waugh

    Waugh

    Joined:
    3/10/06
    Messages:
    135
    Country:
    us-kentucky
    Manuel,

    If you are just worried about "reverse engineering" it is already hard in that your program is compile, and someone would need to be able to either understand assembly, or have a de-compiler handy to really discover your "algorythms".

    You might find some C++ obfuscators on codeproject.com.

    On the other hand, if you are worried about "copy-protection" (preventing someone from using an unlicensed copy), it comes in two main varieties... roll-your-own, and commercial.

    To roll your own, you'll need to be familiar with public key cyptography. You can do a search on "copy protection", or you can ask a vendor of a product whose protection you like what they use. Most will tell you privately if they know you are a programmer.

    Finally, if you distribute your program through a large distributor they will often provide you a "wrapper" free of charge, but not all of them really protect your product from being posted on pirate sites. Often, the wrapper simple unwraps a copy-protection free product which could then be posted.

    Cheers
  4. jimkeir

    jimkeir

    Joined:
    7/6/07
    Messages:
    87
    Country:
    unitedkingdom
    Hi,

    Three of the common utilities are called "ASProtect", "EXECryptor" and "Armadillo". There are plenty of others.

    Asprotect
    EXECryptor
    Armadillo

    Cheers,
    Jim
  5. Manuel Ambulo

    Manuel Ambulo

    Joined:
    29/9/06
    Messages:
    162
    Country:
    panama
    Yep, im using Visual C++ 2005, but my code is unmanaged, its the old C++, as i dont know managed code, i was hopping that Obfuscator could work with my Executable, but when i did some investigations and research i found that it just supports executables or modules generated with managed code, so i approached to the conclusion to not use it, because the program i have is very looong, and rewrite it in managed code, would be a very big pain for me... hehehe.



    Yeah, i know but in the world, there are many persons with many different skills of programming, even better than mine, so that opens widely the possibilities that someone could make a hack for break it...hehehe and i want to protect it at least enough so even having assembky knoweldges to make them to have a hard time trying to hack it.



    Thanks! :) i will check it now....



    Well, i had already thought in that, and found an approach that may try to stop from people make illegal copies, i made the program internet-dependant, so the program itselfs checks in my servers if the key is already registered and if so, it then let the program uses some features, that are not built-in in the executable, so if the program has an non-registered key, then it will not work. I mean, there are like 2 features that depends on downloading data from my server, which is not heavy than a text file, so transfers are quickly, but are features that are important for the program to work properly, so that gives me the oportunity to check if a key was generated by me or by another third person's program. I arrived to that approach because i was thinking that maybe if i omit like 2 or 3 critical security sections from the executable code, i will be like difficult to figure-out them because that section wont be able for "reverse-enginering" them...



    Thanks! Jim!, i didn't knew that there commercial programs made for encrypt the executables and modules :).....


    Best Regards,

    Manuel Ambulo
  6. n4gix

    n4gix Resource contributor

    Joined:
    26/9/06
    Messages:
    9,379
    Country:
    unitedstates
    :stirthepo:stirthepo
    Um, no offense Manual, but if the person's skills are that much better, why on earth would they be interested in hacking "hack code?" :stirthepo:rotfl::duck:
  7. Manuel Ambulo

    Manuel Ambulo

    Joined:
    29/9/06
    Messages:
    162
    Country:
    panama
    yeah they maybe couldnt any one that would like to hack "hack code", but just to prevent if someone could have that interest heheheeh :)

    Manuel Ambulo

Share This Page