Start Menu Cleaner v1.2 - Tutorial

Start Menu Cleaner v1.2 - (14k).

Welcome to this new reversers tutorial, I'll explain here all of the steps in greater detail than in other tutorials so that you can follow easily. So without further ado launch Start Menu Cleaner, you'll notice from the message box that there is a Register button, so select that. You should now be looking at a dialog box asking for a Name and Code.

I'll assume at this stage that you have installed SoftICE and that you have configured your winice.dat file, now just check that you can indeed enter SoftICE using the key combination Ctrl+D, use the same combination or F5 to exit back to Windows. Now type in your name and a fake code, I use CrackZ & 0123456789, but don't push O.K. yet, lets Ctrl+D into SoftICE and set some breakpoints.

Now what we are going to do is break in on the code that is responsible for retrieving the contents of the 2 dialog boxes (and then verifying their contents), programmers usually achieve this by using functions from the Windows 32 API, you should be able to locate a list of 'reversers API's' around the web. This program uses the function GetDlgItemTextA (use QuickView or a disassembler if you want to verify this), most of the time it is a question of trial and error.

In SoftICE you should type >bpx GetDlgItemTextA, and then F5 to return to Start Menu Cleaner, when you click O.K, SoftICE should pop up, immediately you should push F11 (return to caller), remember that these functions are exported from Windows and called by the application. Now, we are at the stage where 1 of the dialog boxes has been retrieved so push F5 and you'll get another break on GetDlgItemTextA (the 2nd dialog box contents), and once again push F11.

You can now disable the breakpoint by typing >bd *. If you have performed the above steps correctly you should be looking at this code.

:004011C7 PUSH 00406030
:004011CC PUSH 00406130 <-- Name entered.
:004011D1 CALL 00401280 <-- Calculate good code.
:004011D6 LEA EAX,[ESP+18] <-- Code entered.
:004011DA ADD ESP,08 <-- Stack correction.
:004011DD PUSH EAX <-- Push code entered to stack.
:004011DE PUSH 00406030 <-- Push good code to stack.
:004011E3 CALL [KERNEL32!lstrcmp] <-- String compare function.
:004011E9 TEST EAX,EAX <-- Test EAX for 0.
:004011EB JNZ 00401271 <-- Jump_bad_code.

In Softice we use the F10 key to single step each of these instructions, so press F10 twice (the highlight bar should now be on CALL 00401280), now type >d 00406130, you should see the name you entered. Now press F10 another 2 times so that the highlight bar is now on ADD ESP,08. If you type >d eax you'll be able to see the code you entered. Another 2 steps with F10 will place the highlight bar on CALL [KERNEL32!lstrcmp], now type >d 00406030, you should be able to read the good code from the data window.

You should obviously make a note of the good code and now you can register this program. This is obviously the most simple example but go now and read more about how to use SoftICE and assembly language if the code you see above doesn't make any sense. Reading some of the other tutorials on my page may help you learn more.

Start Menu Cleaner v1.2
Name: CrackZ
Code: 1254-11586-1981-389

Welcome to the world of reversing - note that this program is now given out freely by the author hence the publishing of this code is not illegal in anyway.


© 1998 CrackZ. 29th June 1998.