Valek / Phrozen Crew - Cracking Tutor #05

Target : mIRC v6.03
Target URL : http://www.mirc.com
Tools : PEiD v0.8 or PE-Scan v3.13, W32Dasm v8.93+, HIEW (Hackers' View Hex Editor)
Tools URL : http://protools.cjb.net


INTRODUCTION
Welcome to my fifth tutor for the Phrozen Crew. In this tutor I show you by simple byte patching, you can register mIRC with ANY name and ANY serial number.


IDENTIFICATION

Like with all other target programs, it is an advantage to know whether or not an application is packed with a encryption/protection scheme and if so, with which one. For this reason I recommend the PEiD (PE iDentifier v0.8) coded by snaker & Qwerton or PE-Scan v3.13 by Snyper.



I also recommend that if you use PEiD that you turn on the HARDCORE scanning option number 2 ON. The reason for this is that a lot of the more advanced packers/encryptors will try and fake identifiers by using other packers/cryptors' identification strings as well as virtually no identification markings at all. This will limit those chances to allmost none!



After you had scanned mIRC for any known packers, you'll find it is NOT packed, so it makes your task as a cracker a little easier since you do NOT have to unpack and rebuild any part of the executable file.


CRACKING mIRC
Make a backup copy of the mIRC executable, ie. "Copy of mIRC.Exe". Load W32Dasm and load the backup copy of the main mIRC executable and wait for it to finish disassembling it. Becuase mIRC deals with mostly "text", there will a a LOT of String References. I'm going to help you make your task a little easier.

Run the original executable and try registering with your desired nickname and fake serial. You'll be greeted with a "The registration name and number you have entered ..." error message. Exit the main executable and Alt+TAB back to W32Dasm. Click the Search toolbar and type in "The registration" (without the "" markings of course!) and click search. If will find this error message for you.

Since this is NOT on the exact conditional jump that we are looking for, scroll up untill you reach the following lines and string references:



Run the HIEW hex editor and select the main "mIRC.Exe" executable. Press F4 and select "Decode". Now press F5 and type in the file offset, in this case: C5E9A and press ENTER. You will now be at the conditional jump. Press F3 and goto 85 and change it to 84. This means, change it from JNE to JE which is change from Jump if NOT equal to Jump if equal statement. Press F9 to save the changes and exit hiew.

Now execute the main "mIRC.Exe" file and register with ANY name and ANY serial. It worked! - Well, so you think... Exit the main file and run it again - Damn! it unregistered itself.. so what went wrong?

Load HIEW and go to the same offset and change it back to the original byte, ie. 85. If you look just above this conditional jump in W32Dasm, you'll se a CALL function, the very first one right about the conditional jump, select this line and click the "Jump To" W32Dasm speedbutton on the toolbar.

Once you have gone inside the "CALL" function, scroll all the way down untill you see THIS conditional jump:

Now using HIEW, change this specifc byte at this offset, save the changes, exit and execute the main "mIRC.Exe" file. Again register using ANY name and ANY serial number. Same thing again... it SEEMED to have worked, but lets find out for sure... Exit and restart it - yea baby yea... It is STILL registered

You have successfully cracked mIRc v6.03


Enjoy!

Valek / Phrozen Crew

PS: Click on the Phrozen Crew logo to visit our website or on my logo to contact me via email