Locus32 by tato

Cel             :       Locus32 - odszukac SN
Status          :       osiagnieto
Lokalizacja     :       PCWK 12/98
Narzedzia       :       Sice

Metoda: Standartowe BPX na MessageBoxA, GetDlgItemTxtA, GetWindowTextA, GetKeyboardType, MessageBoxA zawodza. Dopiero BPX LoadStringA przynosi jakies efekty. Zatem do dziela !

Po uruchomieniu programu "podziwiamy" na gornej belce okienka napis "(Unregistered Locus332 will expire in 32 days.)" ! Otwieramy menu Help/About Locus. Okienko dyssponuje dwoma klawiszami: nazwanymi Register i OK. Jak latwo zgadnac wybieramy to pierwsze. W pole "Type in your User name" wprowadzamy np. znaki "rantantitla" zas w pole "Type in User code" "nasz" kod - tzn. cokolwiek, lub zgola nic !. Po wcisnieciu ^D wchodzimy w Sice i ustawiamy pulapke na BPX LoadStringA. Jeszcze raz ^D (lub X, lub F5) i zatwierdzamy OK.

Program zatrzymuje sie poslusznie na pierwszym rozkazie realizujacym polecenie LoadStringA. Zatem F11 i jestesmy w kodzie programu, w miejscu skad wywolywana jest funkcja User32:LoadStringA. Wylaczmy BPX LoadStringA (nie bedzie wiecej potrzebne, "nasz" SN i tak nie pasuje). Poszukajmy stringu "rantantitla" w pamieci komputera poleceniem s 30:0 l ffffff 'rantantitla'. Sice lokalizuje go (poleceniem "s" mozemy sprawdzic, ze nawet trzykrotnie). Zapamietajmy adres pierwszego wystapienia (mozna przywolac znowu s 30:0 l ....). Zalozmy pulapke na "odczyt" tego stringu poleceniem BPMB nasz_adres R i wylaczmy ja na razie.

Dalej F5 i komunikat o blednym kodzie ! OK i ^D. W Sice "gasimy" wszystkie pulapki procz tej na string 'rantantitla'. I w okienku rejestracji wybieramy OK. Sice zatrzymuje sie na poleceniu REPZ MOVSB (tzn. powtarzaj dopoki nie_zero przesuniecie bajtow spod DS:ESI do ES:EDI). Poniewaz program "zdazyl" juz cos przesunac "nasz" string "rantantitla" zaczyna sie teraz pod ES:EDI-3, nasza uwage powinnismy przeniesc na nowa lokalizacje. Poleceniem BPMB zakladamy nowa pulapke na nowy adres i "gasimy" obie. Po F5 ogladamy okienko z komunikatem "This is not a valid registration code". Dalej jak poprzednio, OK i ^D, uaktywniamy ostanio zalozona pulapke, ^D i wracamy do okna rejestracji. OK i Sice zatrzymuje sie znowu na instrukcji REPZ MOVSD i teraz interesujace nas "miejsce" znajduje sie bodaj pod ES:EDI-C. Ale to nie koniec: bez gaszenia ostatniej pulapki wciskay F5 i powtornie zatrzymujemy sie na ciagu rozkazow MOVSB. Poleceniem d ES:EDI-3 ustawiamy sie na poczatek naszego User Name, klawiszami Alt-Down przesuwamy podgglad pamieci tak by nad naszym stringiem bylo trohe miejsa (jakies 3 linijki), gasimy nasza pulapke, naciskamy F12 i mozemy "podziwiac" pojawiajacy sie znikad SN ("$"+8 cyfr).

Oczywiscie, po podaniu tego SN i User Name dla ktorego program usluznie go wygenerowal spowoduje zalegalizowanie naszej kopii i utworzenie w katalogu programu zaszyfrowanego pliku-klucza ! Usuniecie tego pliku i ponowne uruchomienie programu umozliwi nam stwierdzenie, ze przed "naszym" kluczem jest generowany jeszcze conajmniej jeden klucz.

przykladowe dane:

User name        :    tato/CPL
SN               :    $D3AACCB8
ilosc maszyn     :    200

tato@iname.com