CbD's Tutorial #4
                                                     Alternitive to Serial # Locating
			Target : Business Cards 32 v 4.18
                                                     Level: New to Intermediate

Motive of Crack:
	Well we all know that sometimes we cant seem to find the right serail number
	when we are cracking a program, So this crack is to help you to better understand
	that there are other ways to register even if you cant find that " GooD " number
	I will show you that you can simply make the program take any number as a 
	"GooD" one. This type of crack can be hard in some cases but for this example
	I have choosen a fairly simple program for us to use. If you have read my other
	Tutorials you should know that I crack in steps to help each of you new crackers
	to follow along and hopefully not get lost :-). 

About the Crack:
	This crack will have 3 main Parts to it each of them having there own steps for
	you to follow. I hope i have made it easy for you and if for some reason you 
	have trouble with it please feel free to join us on EFNET in #cracking4Newbies
	and ask for help. Please note that we dont mind helping the newest of the 
	Cracking world to better their skills as this is what we are here for. 


The Target:             Business Cards 32 v4.18
Get it From:             http://www.midstream.com
Protection Type:    Serial Number Registration with a 30day time limit
Requested by:	   None
Tools Needed:	   SoftIce, Hiew(or other Hex Editor)

The Crack

Part #1
	Ok lets get the crack started, so go and get the prorgram from midstream
	and install it. Got it installed yet? well do it....

Step 1
	Well let start this crack by looking at our little program, So load Bcards
	and then you will see the nag screen telling us that we are not a registered user
	(Not Yet anyway) and that you have 30 days to try the program. Well click and get rid
	of the nag and then click [HELP] [REGISTER] you will get the little box for you to 
	put in your info. Well put the Name in you want then the company (if you want) and 
	then the serial number. 

Step 2
	Now if we wanted to find the "GooD" serial number we would have to use softice
	to find the location that the "GooD" number get compared to ours, But we dont 
	care what the number should be cause we are going to make the program
	take our bogus number ( And Like It ) and then give us a registered user status.
	But for us to do this we have to still use Softice so we can find where the program
	checks for a valid number then make it think any number is a good one
	so lets get in SoftIce and start the work. Do this  Ctrl-D   this put you in SI
	now we need to break when the programs reads our Serial number so
	we will set a BP(BreakPoint) on GetDlgItemTextA (I have already found the right
	function for you) so do this   BPX GETDLGITEMTEXTA    and press enter
	now we have the only break point we need for this crack. So get out of SI with 
	Ctrl-D.

Step 3
	Now you should be back in Bcards at the registration screen, so press enter
	and you will land back in SI at the GetDlgItemTextA function that was called
	by our program. Well this is not where we need to be, because our program
	has three different textboxes to read the data from (1) Name (2) company 
	(3) serial number, and the one we want is the serail number one. So 
	lets press F11 to return to the place the function was called then press F5
	and let the program continue to run, we will break again at the GetDlgItemTextA
	function, this is where the program gets our company info, this to is not what we
	want so Press F11 to return and then F5, now we break at the function once more
	so we Press F11 to get to where the function was called from. This is where we
	will start to do the real cracking of the program.

Step 4
	Now that we are in the part of the code that will be checking our serial number
	and deciding if we are a (GooD Guy) or a (Bad Cracker) we will need to do some single
	stepping to see what happens here. So Press F10 and watch the lines of code as they
	pass. We will want to stop on the code below.

Your addresses may differ but the code it's self should look the same

:00412C3A	ADD	ESP,04
:00412C3D	CMP	BX,AX          [STOP HERE]  <---- compares part of our serial # with parts of the good one
:00412C40	JNZ	00412C7E      <---- if all is good then go ahead and if not the jump
:00412C42	LEA	EAX, [EBP-0C]        so this is one of our points we need to make a change to


	Ok we will need to change the JNZ (Jump if Not Zero) to JZ (Jump if Zero) and in doing this
	if we were to enter a valid serial number the program would not allow it to register as it
	will then think that it is a Bad number. So lets make a note of the the address we 
	will need to change and also you should do a     D xxxx:00412C40 and then write down
	the value from the data window for later use. Or if  you just want to crack your program
	and not make a general crack to distribute you can make the change in SI  like this

A xxxx:00412C40          [ENTER]  <----- Press the Enter Key
xxxx:00412C40	JZ      00412C7E        [ENTER]   [ENTER]  <---- Press Enter Twice
	(Note the xxxx is the starting value for the address as you see it on your system mine is 0137)

	now this will not modify your program on the disk only what is running in the system memory
	after you close the program the changes you made will be gone, but if you do all the right
	steps  the program will still be registered. 
	
Step 5
	Ok that was one of the 3 changes that will need to be made becasue if you scroll down with the
	Ctrl-downarrow you will see the following code after you locate it Press F10 till you get to the 
	CMP then if you wish you can make your changes.

:00412C62	ADD	ESP,04
:00412C65	CMP	SI,AX        [STOP HERE]  <---- compares part of our serial # with parts of the good one
:00412C68	JNZ	00412C7E      <---- Notice that the jump is to the same address as before
:00412C6A	LEA	EAX, [EBP-0C]   	 so we will need to do the same as we did above

	do a D xxxx:00412C68     the write down the value from the data window for this one
	and again if you want to you can make the change from right here in softice

A xxxx:00412C68          [ENTER]  <----- Press the Enter Key
xxxx:00412C68	JZ      00412C7E        [ENTER]   [ENTER]  <---- Press Enter Twice

	now that is the second change now we have one more then the crack will be done

Step 6
	Now F10 just a few lines and you will see this code below
	
:00412C62	ADD	ESP,04
:00412C65	CMP	EAX, [EBP-0098]       [STOP HERE]  
:00412C68	JZ	00412C91      	<--- Jump if all the code is good
:00412C6A	LEA	EAX, [EBP-0C]   	 
		
	Remeber to do a D xxxx:00412C68 and write down the values.
	Now here we will need to change the JZ to a JNZ  and once we have done this we can disable our
	breakpoints and hit F5 or Ctrl-D and let the program continue and as we pop back to the program we
	will see that we are now a registered owner of this program .......


	Ok we ahve now Cracked this program and if we want to we can make a general crack 
	so everyone can crack there copy. to do this just follow the steps below

Part 2 

Step 1
	Ok remember the values I told you to write down ?  did you ? well if not i have provided them 	below	

First one was 
	xxxx:00412C40   75  3C  8D  45  F4  50  E8  59 
		               ^    ^      ^      ^     ^      ^     ^     ^    <--- Values you will need

Second one
	xxxx:00412C68   75  14  8D  45  F4  50  E8  31 
		               ^    ^      ^      ^     ^      ^     ^     ^    <--- Values you will need

Third one 
	xxxx:00412C7C   75  13  8D  45  F4  50  E8  1D 
		               ^    ^      ^      ^     ^      ^     ^     ^    <--- Values you will need

	The following instructions are for users of HIEW only if you are using a different
	Hex editor then you will need to find the commands that do the same procedures
	
	ok Start Hiew by editing the bcards.exe file (Make a backup first)
	then do the following

	1) when hiew starts press the F4 key to get Hex view
	2)press F7 to search 
	3) enter the first string  from above(only the ones marked)
	4)press F2 to get the Code view
	5)press F3 to edit the code
	6)press F2 for ASM mode
	7)change the JNZ to a JZ
		(This may show as a JE or a JNE depending on the step you are in 1,2 or 3)
	8)press F9 to update
	9)Press F10 to exit
	
	now do the same for each of the three strings, you will need to restart Hiew each time
	to insure that you are able to get the proper search result
	(Note for the last on make sure you change the JZ to a JNZ)
	after you are done with all three you can then exite Hiew and continue to part 3

Part 3

	Makeing a Patch with Gpatch

	ok remember I told you to make a back up copy of your file before you used HIEW
	well you should name it like this  Bcards32.bak   and the one you edited should be
	Bcards32.exe   (note you should read the Doc that comes with gpatch to full understand
	how to use it) if you want you can make a txt file  named gpatch.txt and put any nfo 
	about your patch you want.   now run gpatch like this   gpatch bcards32.exe
	it will make you a patch and name it patch.com  you can now rename it to whatever you
	like and distribute it .    well thats it for this tut.

	I hope this Tutorial has been helpful and showed you another way to crack 
	those serial number protections. Well even if you cant seem to make the crack work
	(Dont see why you couldn't) i have included the crack with the tutorial.

Enjoy and  Happy Cracking.........    _CbD_  ME/C4N'97

			EFNET      #Cracking4Newbies    stop by and see us sometime....