 
                     Cracking Password Tracker Deluxe
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                               by Renegade



In this article it will be explained how to patch Password Tracker Deluxe,
so that you will be able to register it without paying anything.It doesn't
matter which version of this program you want to crack, because the routine
which checks the entered name/serial doesn't vary much.Instead of using
real addresses and values, variables are used, so that you can apply this
method to every version without much effort.

---------------------------------------------------------------------------

If you enter an invalid name and serial-number the MsgBox "Invalid 
registration number"  will be displayed.
Disassembling PwTrkr.exe and following this string reference you'll get to
this piece of code:

                                  push 0000000
                                  mov ecx, esi
                                  call 00000000
                                  mov ecx, eax
                                  call 00000000
                                  mov edx, dword ptr [esp+00]
                                  mov eax, dword ptr [esp+00]
                                  push edx
                                  push eax
:ADDRESS-1                        call SERIAL-CHECK 
                                  add esp, 00000000
                                  cmp eax, VALUE-X
                                  jne 00000000
                                  mov ecx, esi
                                  call 00000000
                                  jmp 00000000

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00000000(C)
|
                                  push 00000000
                                  push 00000000

* Possible StringData Ref from Data Obj ->"Invalid registration number."

--------------------------------------------------------------------------



The call which refers to the checking routine is the 3rd one,
SERIAL-CHECK. Here the first lines of the code:


* Referenced by a CALL at Addresses:
|:ADDRESS-1   , :ADDRESS-2  
|
:SERIAL-CHECK                     push 00000000
                                  push 00000000
                                  mov eax, dword ptr fs:[00000000]
                                  push eax
                                  mov dword ptr fs:[00000000], esp
                                  sub esp, 00000000
                                  mov eax, dword ptr [esp+00]
                                  push esi
                                  push eax
                                  lea ecx, dword ptr [esp+00]



So we know also that this routine is called from another section of the
code, ADDRESS-2.

:ADDRESS-2:                       call SERIAL-CHECK
                                  add esp, 00000000
                                  cmp eax, VALUE-X
                                  jne 00000000


That's exactly the same procedure as ADDRESS-1 does.
A simple way to patch it now would be to copy the "requested" values to
eax, replacing the cmp eax, VALUE-X with a mov eax,VALUE-X at ADDRESS-1
and ADDRESS-2.
