Katalog CD 1.52 by Zomo

Dzisiejszym tematem drogie dziatki bedzie Katalog CD w wersji 1.52, czyli o przewadze wygody nad rozumem. Polscy programisci albo mysla ze w Polsce nikt nie umie poslugiwac sie debbugerem albo sa bardzo leniwi zeby zabezpieczyc swoj calkiem niezly program. Kat_CD wzialem za przyklad tylko dlatego ze jest dostepny na plytach z wiekszoscia magazynow. Ale przejdzmy do lekcji nr 1.

Cel: Katalog CD w wersji 1.52 (wczesniejsza czy pozniejsza to nie ma znaczenia i tak jest lame zabezpieczona).

Narzedzia: SoftICE v3.2, pare szarych komorek.

Uwaga: Jesli nigdy nie uruchamiales SoftIce'a to najpierw przecztaj Dodatek umieszczony na koncu tego pliku.

A wiec do roboty. Tan tut jest przeznaczony raczej dla poczatkujacych i nie sadze aby ktos srednio zaawansowany znalazl cos dla siebie. Zakladam iz wiesz co to sa breakpoints przynajmniej teoretycznie. Opisana w tym tutorialu metoda jest zawsze pierwsza czynnoscia jaka wykonuje zanim zabiore sie za jakikolwiek program, jest naprawde banalna i przynosi calkiem dobre efekty w polskich warunkach :)

1. Uruchamiamy nasz cel, tzn. Katalog CD w wersji 1.52, kat_cd.exe. Z tympewnie sobie poradziles :)

2. Wyskakuje paskudne okienko "Program nie jest zarejestrowany. Czy gozarejestrowac?" Tak/Nie. Oczywiecie ze chcemy go zarejestrowac wiec naciskasz Tak.

3. Program prosi potulnie o wpisanie: Imienia i nazwiska, Adresu, Nr licencyjnego, okiej wypelniamy: Zomo, Blotna 7, jako nr licencyjny, ktorego nie znamy :), wpisuje zawsze 12121212 (moze byc dowolny).

4. Teraz najwazniejsze, zakladamy breakpointy. Wchodzimy do SoftIce'a naciskajac CTRL-D, pojawia sie duze czarne okno, to jest miejsce w ktorym tworzy sie magia :). Teraz pare przydatnych informacji. Standardowymi funkcjami do wprowadzania danych w Windowsie 32-bit (95,98,NT) sa GetDlgItemTextA i GetWindowTextA, te wystarcza do naszego malego tutoriala. Wiec jak juz sie pewnie domyslasz nalezy znalesc miejsce w ktorym wczytywane sa nasze dane zamieniane na PRAWDZIWY nr licencyjny i porownywane z wpisanym przez nas. Wiec robimy tak: bpx getwindowtexta [enter], bpx getdlgitemtexta [enter], juz wyjasniam o co chodzi. BPX - BreakPoint on eXecution czyli prostym jezykiem zatrzymaj jesli zostanie wolana funkcja .... . Ok breakpointy zalozone wiec wychodzimy z SI ctrl-d. Nastepnie w naszym cudownym Programie naciskamy OK.

5. I co sie dzieje, uruchamia sie SoftIce a wiec dziala :). W SI widzisz taki oto napis 'Break due to BPX USER32!GEWINDOWTEXTA', oto zadzialal nasz breakpoint. Naciskamy Ctrl-d aby wyjsc za SI. Znowu sie wlacza nasz debugger znowu naciskamy ctrl-d. Po raz ostatni wlacza sie Soft Ice tym razem nie naciskamy ctrl-d tylko F11, dlaczego? a to dlatego aby sie znalesc w kodzie programu a nie w gleboko w zakamarkach Windowsa. Pytanie do Ciebie: dlaczego trzeba nacisnac ctrl-d az trzy razy? Dlatego iz wpisalismy trzy dane o ile pamietasz: Nazwisko, Adres i Nr.

6. Teraz dokona sie najwazniejsza ale i najprostsza czesc calej zabawy. Wpisujemy magiczne polecenie: s 30:0 l ffffffff '12121212', juz tlumacze o co biega, ale nie zapomnij o '' poniewaz jest to wazne. S - search ,szukaj 30:0 jest to segment danych a ffffffff to jest zeby przeszukiwal do 4 GB danych, powinno wystarczyc na dobry poczatek :) a to '12121212' to jesli jeszcze pamietasz jest wpisany przez nas numer licencji. Tada znalazl, widzisz w oknie u gory kupe smiecia i swoj numer tzn 12121212 nastepnie robisz tak, naciskasz alt-strzalka w dol pare razy i co widzisz swoje dane:Zomo , Blotna 7. Jeszcze pare razy naciskasz alt-strzalka w dol tak aby dane znalazly sie na samej goze ekranu (zebys je widzial). Teraz wymagana jest odrobina cierpliwosci. Naciskasz F10 do momentu az sie pojawi twoj prawdziwy nr licencyjny :)) (naciskaj F10 cierpliwie i powoli). Dla moich danych jest E24797AAD20D16BC.

7. Wylaczasz breakpointy: bc *, breakpoint clear * - wszystkie. Wpisujesz numer i po krzyku program jest Twoj, dokonales tego mozesz sie czuc dumny.

Oto podsumowanie:

IMIE_I_NAZWISKO=Zomo
ADRES=Blotna 7
NR_LIC=E24797AAD20D16BC

DODATEK:

Zeby wsztstko w tym tutorialu zadzialalo jak nalezy u Ciebie musisz odpowiednio skonfigurowaC SI. W pliku winice.dat musisz: Usunac przecinki z ponizszych ciagow tak jak na przykladzie (jest ;exp=costam powinno byc exp=costam)

EXP=c:\windows\system\kernel32.dll
EXP=c:\windows\system\user32.dll
EXP=c:\windows\system\gdi32.dll

Jeszcze aby wygodnie pracowac z SI zastap swoja linie INIT="cost tam" na INIT="lines 60; wd 22; wc 25; wr; code on; X;"

Podsumowanie: Jesli chcesz znalesc seriala to szukasz w pamieci swoich danych i gdzies w ich okolicy powinien pojawic sie serial, ale zycie nie jest zbyt proste i dziala to na ok 20-30% programow :).

Podziekowania: WereWolf, WildKid, GustawKit, TKC, ED!SON, +Fravia, +ORC.

Dedykacja: Ten maly tut jest dedykowany wszystkim moim przyjaciolom.

PS. Do wszytkich Polakow piszacych soft pod Winde, 'Ludzie zabezpieczajcie sie jakos!'.

Zomo'98