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-