Cracking Projects For Newbies

TASK 3
Sunday, 07-Feb-99 12:08:08
    194.206.12.224 writes:

    TASK 3
    ------


    Question 1.
    -----------

    a. After the call to 0040CCC0 (the code verification procedure), the code we typed in the registration window is in ECX, and the right code for our name is in EDX.

    b. ADD ESP,00000008 : I don't know what that means.

    c. TEST EAX,EAX is checking the register EAX for the value 00000000 (returned from the code verification procedure if the code we've entered is right) or for the value FFFFFFFF (returned from the code verification procedure if the code we've entered is wrong).

    d. The instruction JNE 0040B9BC jumps to the 'Sorry, the registration code...' message.



    Question 2.
    -----------

    Here is the whole code verification procedure :


    :0040CCC0 83EC04 sub esp, 00000004
    :0040CCC3 833D24F1420000 cmp dword ptr [0042F124], 00000000
    :0040CCCA 53 push ebx
    :0040CCCB 56 push esi
    :0040CCCC 7537 jne 0040CD05
    :0040CCCE 8B4C2410 mov ecx, dword ptr [esp+10] ;ECX=Our Code
    :0040CCD2 8B542414 mov edx, dword ptr [esp+14] ;EDX=The Right Code

    * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    |:0040CCF0(C)
    |
    :0040CCD6 8A01 mov al, byte ptr [ecx] ;AL=First letter of our code (in the first loop)
    :0040CCD8 3A02 cmp al, byte ptr [edx] ;Compare with the first letter of the right code
    :0040CCDA 751E jne 0040CCFA ;Jump to 0040CCFA if the letters are different
    :0040CCDC 0AC0 or al, al ;End of the code ?
    :0040CCDE 7412 je 0040CCF2 ;If yes jump to 40CCf2
    :0040CCE0 8A4101 mov al, byte ptr [ecx+01] ;Next letter
    :0040CCE3 3A4201 cmp al, byte ptr [edx+01] ;Compare next letter
    :0040CCE6 7512 jne 0040CCFA ;Jump to 0040CCFA if the letters are different
    :0040CCE8 83C102 add ecx, 00000002 ;Advance our code of two letters
    :0040CCEB 83C202 add edx, 00000002 ;Advance the real serial of two letters
    :0040CCEE 0AC0 or al, al ;End of serial?
    :0040CCF0 75E4 jne 0040CCD6 ;If not, continue the loop

    * Referenced by a (U)nconditional or (C)onditional Jump at Address:
    |:0040CCDE(C)
    |
    :0040CCF2 33C0 xor eax, eax ;You land here if your serial is right, this
    :0040CCF4 5E pop esi ;changes the value of EAX to 00000000
    :0040CCF5 5B pop ebx
    :0040CCF6 83C404 add esp, 00000004
    :0040CCF9 C3 ret



    * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
    |:0040CCDA(C), :0040CCE6(C)
    |
    :0040CCFA 1BC0 sbb eax, eax ;You land here if your serial is wrong, this
    :0040CCFC 5E pop esi ;changes the value of EAX to FFFFFFFF
    :0040CCFD 83D8FF sbb eax, FFFFFFFF
    :0040CD00 5B pop ebx
    :0040CD01 83C404 add esp, 00000004
    :0040CD04 C3 ret


    Question 3.
    -----------

    I couldn't find the procedure that calculates the right serial !!!

    GeniuX


Message thread:

GeniuX: Task One (04-Feb-99 13:34:16)

Back to main board


Message subject:

Name: (optional)

Email address: (optional)

Type your message here:




Back to main board

Copyright © InsideTheWeb, Inc. 1997-1999
All rights reserved.