Surf Robot v1.0
build 0.02.15
You don't have to SURF 4 a KEYGEN
Best view 1024 X 768
by FaT[BiT] \ TNT!
Cracking For Beginners
Program Info
Program Name : SurfRobot.exe
Program Type : Web Util.
Program Location :
Program Size : 429 KB
ToolZ :
Softice v4.5
C/C++ compiler

All these toolz can be found at
Easy ( X ) Medium (  ) Hard (  ) Pro (  )

Surf Robot v1.0
Cracked and Written by : FaT[BiT] \ TNT!
Tutorial No. : 35


-={ -- Azmo -- [XasX] -- Sir dReAM -- Astaga -- ChoRdLEss -- p0tHEAD -- Liaisons -- }=-

Intoduction & Protection


hi there and wellcome to another tutorial ...
wow !! no. 35 , i really didn't dreamed of making 35 tutorials, but now that i did !! , i hope to make even more tutorials cuz u know there is alot to learn and so little time , but we learn a new thing eveyday don't we ....


o.k this prog needs a name and code to register , and in this tutorial we will find the code for our name and also code a keygen , so let's start ...

The Essay

o.k install the prog and take a look at it , now click on Help/Register , and the prog will ask us for a name and code , so let's give him our info , in my case i wrote like this :

Name : FaT[BiT] \ TNT!
Code : 1234567890

o.k now before u click on the o.k button , set a breakpoint in softice like this one :

bpx hmemcpy

now press the F5 button to exit softice , then press the o.k button, softice will break, now press the F11 for ones , then press the F12 button for 11 times , then clear all the breakpoints and trace with the F10 button until u reach this code :

:004795EA 8D45D3                  lea eax, dword ptr [ebp-2D] <-- eax point to our name
:004795ED 33DB                    xor ebx, ebx <-- clear the ebx register
:004795EF 8A18                    mov bl, byte ptr [eax] <-- put a char in bl
:004795F1 8BF9                    mov edi, ecx <-- put in edi the value of ecx (counter = 1 at first time)
:004795F3 81E7FF000000            and edi, 000000FF
:004795F9 0FAFDF                  imul ebx, edi <-- multiply our char(ebx) by the counter(edi)
:004795FC 03F3                    add esi, ebx <-- add the result to esi
:004795FE 41                      inc ecx <-- add one to the counter
:004795FF 40                      inc eax <-- add one to eax to take the next char
:00479600 FECA                    dec dl <-- subtract one from the length of our name
:00479602 75E9                    jne 004795ED <-- if length of our name is not zero take the next char
:00479604 B85B690600              mov eax, 0006695B <-- put the value 6695Bh = 420187 in eax
:00479609 2BC6                    sub eax, esi <-- subtrace from eax esi (esi = value that we got from loop above)
:0047960B 8BF0                    mov esi, eax <-- put the result back in esi (our good code)
:00479669 8B95B4FEFFFF            mov edx, dword ptr [ebp+FFFFFEB4] <-- edx has our fake code
:0047966F 58                      pop eax <-- eax has our good code
:00479670 E8FFA7F8FF              call 00403E74 <-- check if they are equal
:00479675 0F85D8000000            jne 00479753 <-- jump if not to error

o.k !!! i will explain :

take the 1st char from our name and multiply it by the counter which is equal to 1 at first , then add the result to esi , add one to counter, and take the next char if the length of our name is not zero (reach the end of the name) , then do the whole thing again , now after we finish the loop , put the value of 6695Bh = 420187 in eax and subtract from it the result that we got from the loop , then store it back in esi ...

now that we got the algo. , let's code a keygen for it , so here is my source :

// a keygen for Surf Robot v1.0 by FaT[BiT] \ TNT!

#include <stdio.h>
#include <conio.h>

main ()
    unsigned char name[40];
    unsigned long value = 420187;
    unsigned long code = 0;
    unsigned long i; unsigned char ch ;
    printf(" Surf Robot v1.0 - keymaker - by FaT[BiT] \\TNT!\n");
    printf("Enter Name : ");
    if (strlen(name) > 0)
      { for (i = 0; i < strlen(name) ; i++)
        ch = name[i];
        code += ch * (i + 1);
       code = value - code ;
       printf("Your Code : %ld", code);
       exit (1);
    printf("Error : Name is to short. Enter 1 char. at least.");
    return 0 ;

o.k now copy the source code and save it as xxxxxxxx.c and compile it then run it , enter ur info , take the code back to the prog , write it , then click on the o.k button , and ...

Surf Robot is Registered

Final WordZ

i hope u have enjoyed this tut as much as i did writing it
in the end i would like to greet the following ppl !!
FaT[BiT]_FaTz0 greetz the following :

tKC ... (for showing me the light !! )
LW2000 ... ( Thanx alot i now use my brain )
[XasX] ... (i know u work hard , this is y u r good !!)
AzmO ... (yes!! man we are different !! )
Sir dReAm ... (u r the best !! )
tabm0de ... ( thanx alot !! ur a true friend !!)
ASTAGA ... (i don't mind if u comment this tutorial)
Marilyn, VaibLitzeR , and ShaQ ... (good luck to u all !! )

and to all TNT!CRACK!TEAM! members ... (keep up the good work !!)

any comments mail me :

See ya in another tut !!! Soon !!!

--= EOF =--