Software Reverse Engineering - An Introduction To The Wild World Of Cracking Copyright (c) 1998 Volatility Document Courtesy of The Immortal Descendants - http://pages.prodigy.net/volatility My intent of this document, is to provide the absolute newbie with some guidance and background, so that he/she can begin a successful cracking "career". ------------------------------------------------------------------------------------- What Exactly IS Reverse Engineering (Cracking)? ------------------------------------------------------------------------------------- Cracking is a method of making a software program function other than it was originally intended by means of investigating the code, and, if necessary, patching it. The different types of cracking are/can be almost limitless! Maybe you want to remove an annoying nag screen? Maybe you want to ADD functionality that wasn't supposed to be there? Maybe you just want to find a proper registration code? Maybe you want to make the program ACCEPT ANY registration code? ------------------------------------------------------------------------------------- Why Crack? ------------------------------------------------------------------------------------- There are many reasons and motivations as to why people reverse engineer software. Sadly, one of the common driving factors is so the person can obtain all the free software he wants. My advice to you - "DO NOT let this become your motivation. There are many more reasons to crack, that will give you MUCH more satisfaction. Personally (and I hope you feel the same way), I like to crack simply for the knowledge and gratification. In fact, after I crack I program, I trash it! There is NOTHING more rewarding than seeing a message box pop saying "Thank you for registering!" after slaving over a piece of code, looking for that final devious "jump" or "push" for hours. I crack to further my own knowledge, and I write essays on my findings to help further the knowledge of others. The knowledge cracking can provide you with is virtually limitless. How better could learn how a program works, and HOW to program, than to reverse it? ------------------------------------------------------------------------------------- How Do I Learn? ------------------------------------------------------------------------------------- My advice would be to get your hands on ALL the tutorials, essays, articles, and anything else dealing with cracking that you can. There are MANY EXCELLENT tutorials out there, and suprisingly enough, LOTS of them are aimed at newbies and beginners. I'm not trying to play any favorites here, but anything put out by +ORC, +HCU (group of crackers +ORC founded), The Keyboard Caper, Razzia, just to name a few, are VERY good. You must ALWAYS be on the lookout for NEW names, and tutorials also... protections change constantly, and when they do, rest assured, a cracker will reverse it and make their findings available to the public. For the most part, crackers are extremely friendly, and extremely helpful people. I have yet to meet one who's been rude to me (even though I know they're out there). If you ask a cracker for help, 99% of the time, he/she will go out of his/her way to help you. We LIKE introducing new people to the scene... maybe YOU'LL be the one to crack that tricky protection that's that's been bugging us for awhile! ------------------------------------------------------------------------------------- Kickass! I'm Ready To Start... Umm....Where DO I Start? ------------------------------------------------------------------------------------- Like I said... get your hands on ALL the tutorials and such that you can... read them ALL THE WAY through........until you understand. Almost EVERY introduction to cracking tutorial, such as this one, will also tell you that a GOOD working knowledge of Assembly language is necessary. As much as I like the "hands on" approach to learn... it is true, you NEED to know some Assembly. The more you know, the faster, and better you will crack. You're going to want to jump right in... like I did. I spent damn near 8 months trying to find an easy way to crack without reading much, and without knowing ANY assembly. It doesn't work... I think I cracked ONE program during that period. That's when I took the time to start reading... things just started to click. READ, READ, READ and READ some more, before you even BEGIN to start playing with code. Trust me, it'll all pay off. ------------------------------------------------------------------------------------- Ok, Got My Reading Glasses On, Got Me Some Tutorials, Now What Tools Do I Need? ------------------------------------------------------------------------------------- Most tutorials will TELL you EXACTLY what tools you'll need, and the good ones will tell you the basics on how to use them. This introduction isn't going to do that... what I will do, is give you the name of three tools that are a good starting point. You can also crack many programs with JUST these tools. 1. SOFT-ICE - Arguably the BEST debugger around. Sometimes hard to set up, sometimes hard to use, sometimes makes you throw blunt objects at your monitor, but hey, nothing good comes easy, right? There are also MANY great SOFT-ICE tutorials aimed at the newbie. 2. Wdasm - Windows Disassembler. This program (along with a host of lesser quality disassemblers) will disassemble your program into actual Assembly code. You'd be surprised how many programs you can crack using just a disassembler and a hex-editor... 3. HIEW - Hacker's View Hex Editor. Again, arguably the BEST hex-editor. Easy to use, MANY functions, and even has it's own Assembler built right into it. You will modify (patch) the code with this. This is by NO means all you'll need to crack. These tools are just a starting point to get you "thinking" like a cracker. You will, however, crack many programs with simple protection routines with just these tools. The more you learn, with these, the easier it will be to move on to more advanced protections. ------------------------------------------------------------------------------------- Excellent! Just One Final Question, Isn't this illegal? ------------------------------------------------------------------------------------- The answer: Yes and no. If you heed my advice, and crack just for the knowledge and gratification. There is NO law stating that you cannot do so. If you reverse YOUR OWN programs, and trash them when you're finished, you are in no way breaking any law. If, however, you decide you want to keep, or distribute the cracked programs. You are breaking many laws. It WILL catch up with you. Don't do it! Don't fuck with software authors/vendors. They'll get you, and get you good. ------------------------------------------------------------------------------------- Final Notes ------------------------------------------------------------------------------------- Hopefully this tutorial has given you some basic steps to go on your way to a successful cracking career. If it hasn't, I won't be offended if you trash it, and look for other sources. There are many out there. This is just a needle in a haystack. Shareware is our source for cracking. Never in history, has there been such a great way to distribute something. Try before you buy, the ultimate money-back guarantee - if you don't like it, get rid of it! Support shareware... many of the authors deserve to get paid for their hard work. There are some who are just out for a quick buck, and put out half-assed programs asking an arm and a leg to register them. Fuck 'em! We'll reverse their programs to further our own knowledge, and won't give 'em one red cent. It all comes around in the end. Thank you for your attention, and best of luck to you, -Volatility-