Jump to content
  • Advertisement
Sign in to follow this  
tonymontana

Book about anti-cracking / preventing cracking

This topic is 4446 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

i wonder if there is a Book about anti-cracking / preventing cracking of .exe files.I want to learn more about protecting .exe files from crackers(i know it is not always possible..but at least i want to make my programs hard to crack).All i need is a book (with example source codes ).I have already read a lot of websites about this.All of them are just describing what you should do..but there is no actual implementation of system ( no code). is tehre a tutorial which is about protecting a program using serial-keys or something ("key-file method ...)

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Quote:
Original post by tonymontana
i wonder if there is a Book about anti-cracking / preventing cracking of .exe files.I want to learn more about protecting .exe files from crackers(i know it is not always possible..but at least i want to make my programs hard to crack).All i need is a book (with example source codes ).I have already read a lot of websites about this.All of them are just describing what you should do..but there is no actual implementation of system ( no code).
is tehre a tutorial which is about protecting a program using serial-keys or something ("key-file method ...)


there are plenty of webpages about exactly this topic, however the best thing you can really do, is to simply check out the various cracking related websites, in fact these feature often forums, too. And the folks there are usually pretty willing to provide creative ideas to make cracking your app harder.

Share this post


Link to post
Share on other sites
I'd actually suggest looking up on the literature about how to crack software, which is a little more plentiful. It's my personal belief that you can't expect to effectively defend against an attack unless you understand the attack to begin with, and that includes knowing how to pull it off.

Share this post


Link to post
Share on other sites
So you say...firstly you must be at least a novice cracker to defend your program ..ok i don't think it will be much difficult to be a novice cracker(or having a knowledge about it).But there must be a book with codes/examples about defending an exe file..Isn't there such a book?(it there is say it plz)

Would u Say me a website that has tutorials for newbies(a website that has implementation too..not only ideas..i already know/read such sites).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by tonymontana
So you say...firstly you must be at least a novice cracker to defend your program ..ok i don't think it will be much difficult to be a novice cracker(or having a knowledge about it).But there must be a book with codes/examples about defending an exe file..Isn't there such a book?(it there is say it plz)

I don't think such a book exists, at least not dedicated to executable protection schemes in particular. However, if it did exist it would certainly be outdated rather quickly. The cracking scene is a very dynamic movement.
However, if you know what tools and techniques are used to crack binaries, you'll also get to know the problems and limitations of the various existing approaches.
In fact, there are some applications that make it very complicated to crack them. So, if you follow the corresponding discussions you'll also learn what's suitable to make a cracker's life harder.

So, if you know how cracking works, you also learn what makes cracking more complicated and sometimes even unfeasible in the end. Nevertheless, there isn't the one general solution to the cracking problem, rather you'll always have to combine various approaches in order to make them interact with each other, so that all protection schemes depend on each other and render an executable unusable when being targetted.
In the end, knowing assembly language and having a basic knowledge about hardware architectures can be very useful. In particular, if you actually take the time and try to crack your own stuff, so that you see how your abstract sources are converted to low level stuff and what this looks like.


Quote:
Original post by tonymontanaWould u Say me a website that has tutorials for newbies(a website that has implementation too..not only ideas..i already know/read such sites).

Check the various wikipedia articles about cracking, reverse engineering, decompilation, debugging etc. and you will come up with plenty of references, even a single webpage with a community forum will do, as these folks will happily share their knowledge with you.
If you want to check out one of the sites that used to be extremely popular, do a google for "fravia's".
http://en.wikipedia.org/wiki/Software_cracking

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
http://www.woodmann.com/fravia/protec.htm

Share this post


Link to post
Share on other sites
For protection, there are two options that are worth exploring. The first is big expensive protection packages like StarForce that do some unknown magic and can protect your program for a short while. The other options is machine-code obfuscation and virtualization, which can be done using products such as EXECryptor. It's pointless to spend time becomming a decent cracker and then trying to invent your own protection [1] because protection doesn't protect very well no matter what it does. Thus, if you value your time, you should simply buy an existing product and use it to protect your program as well as can be done.

[1] UNLESS your intent is to spend a _very_ long time to come up with a complete solution, which you could then sell to others in order to make the time worthwhile. In that case, a good book to teach you basic reverse engineering is Reversing: Secrets of Reverse Engineering. A book that I don't own but have looked at, and seems to be a very bad book on exactly the topic you asked for, is Crackproof Your Software: Protect Your Software Against Crackers .

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by Extrarius
For protection, there are two options that are worth exploring. The first is big expensive protection packages like StarForce that do some unknown magic and can protect your program for a short while. The other options is machine-code obfuscation and virtualization

Yes, but there are also many other methods to make cracking your binaries significantly harder, and that's the overall point of doing all this: making the task as difficult as possible.

Quote:
Original post by Extrarius
It's pointless to spend time becomming a decent cracker and then trying to invent your own protection [1] because protection doesn't protect very well no matter what it does. Thus, if you value your time, you should simply buy an existing product and use it to protect your program as well as can be done.

again, you don't need to become a "decent cracker" in order to apply the tricks and techniques recommended by professional crackers. If you check out the aforementioned webpage you'll find numerous excellent tips that in fact make cracking a LOT harder-without necessarily being too complex to apply for a high level programmer, likewise there's usually hardly any need for commercial products if you know what you're doing.
Also, it is crucial to keep in mind that a commercial protection scheme is a much more interesting target for a cracker than a normal application in itself, simply because there's the possibility to crack multiple apps at once by cracking the underlying scheme.


Share this post


Link to post
Share on other sites
I've read the site, and basically none of the methods mentioned on that page are worth spending time on if you're developing for a modern operating system running on a modern platform.
Also, SoftIce isn't really used by anybody anymore and hasn't been in a LONG time. Yes, it's a good kernel mode debugger, but kernel mode code is difficult to do correct and SoftIce has never been stable on the NT platform.

A far more effective thing to do would be to modify the default calling convention to 'fastcall' in your C++ compiler settings and turning optimizations on maximum settings (NOT the generic 'maximum', but set each individual setting to the highest value - in VS2002 and 2003 at least, they're not the same), because disassemblers have difficulty tracking parameters that aren't passed via stdcall/cdecl and the optimizer will mangle fastcall so that parameters are sometimes passed using nonstandard conventions (not even fastcall). Turning on link-time code generation ('global optimization') helps make sure things are optimized as much as possible.

Inlining is good also, because it makes it more difficult to track each place a function is called, which can be very important to find when decyphering complicated logic (or trying to modify a function). Also, using virtual functions makes it at least take manual effort to track function calls, and if used excessively can make it somewhat difficult to figure out which functions are called when.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
There's also a wiki book about Reverse Engineering:
http://en.wikibooks.org/wiki/Reverse_Engineering

While its sections about cracking in general aren't yet populated, you are probably encouraged to do so if you'd like ;-)

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!