URL Adress Book v.2.06 by GustawKit

Program : URL Adress Book v.2.06
Tools   : Wdasm32
Cel     : crack
Tips    : zasada znacznika zarejestrowania

W przypadku tego programu podstawowe sposoby zawodza. Pulapki na pobieranie tekstu z okienka nic nie daja a HmemCpy powtarza sie zbyt wiele razy. Po zdekompilowaniu go w Wdasm32 mozemy zauwazyc, ze niektóre zasoby programu nie sa uwzglednione w listingu.

Ciekawy tekst po uruchomieniu programu pojawia sie w pasku tytulowym "URL Adress Book Lite Version". Poszukujac tego fragmentu otrzymamy taki oto fragment kodu :

:004542BE 55                      push ebp
:004542BF 68C7474500              push 004547C7
:004542C4 64FF30                  push dword ptr fs:[eax]
:004542C7 648920                  mov dword ptr fs:[eax], esp
:004542CA 803DC1AC450001          cmp byte ptr [0045ACC1], 01
:004542D1 750F                    jne 004542E2      <--- jak nie 1 to skok Lite
:004542D3 8D45F0                  lea eax, dword ptr [ebp-10]

* Possible StringData Ref from Code Obj ->"URL Adress Book "
                                  |
:004542D6 BAE0474500              mov edx, 004547E0
:004542DB E86CF6FAFF              call 0040394C
:004542E0 EB0D                    jmp 004542EF

* Referenced by a (U)nconditional or (C)onditional Jump at Adress:
|:004542D1(C)
|
:004542E2 8D45F0                  lea eax, dword ptr [ebp-10]

* Possible StringData Ref from Code Obj ->"URL Adress Book Lite Version"
                                  |
:004542E5 BAFC474500              mov edx, 004547FC
:004542EA E85DF6FAFF              call 0040394C

Widzimy tu ze program w zaleznosci od zarejestrowania co innego pisze w pasku tytulowym. Co wazne w tym fragmencie, ano to ze jezeli pod adresem 0045ACC1 mamy 1 to program jest pelny czyli prawdopodobnie zarejestrowany. Nalezy teraz znalezc miejsce gdzie modyfikowana jest wartosc w komórce 0045ACC1. Przegladajac zdisasemblowany kod zauwazysz, ze adres ten jest kilka razy wykorzystywany (modyfikowany lub sprawdzany) czyli jest znacznikiem zarejestrowania programu.

Po krótkiej analizie znajdziemy taki fragment kodu :

:00455DB1 E8FEDAFAFF              call 004038B4
:00455DB6 C605C1AC450000          mov byte ptr [0045ACC1], 00
:00455DBD B201                    mov dl, 01

Jest to miejsce gdzie program wpisuje 0 pod adres 0045ACC1, czyli robi go niezarejestrowanym. Zmodyfikujmy tak aby wpisywal 01 i program bedzie dzialal jak zarejestrowany. Jest to jeden z wielu sposobów zcrackowania programu. W wielu przypadkach jakis adres jest znacznikiem zarejestrowania i jego modyfikacja pozwala nam na zcrackowanie programu.