Lekcja I - "Informacje wstepne" Spis tresci: 1) wyjasnienie pojec: - crack - cracker (poruszenie aspektu Hacker=!cracker) - debuger - disassembler - inne potrzebne 2) potrzebne narzedzia i gdzie je zdobyc: - softice - w32dasm - ida - filemon - regmon - peeditor 3) ogolne informacje o architekturze komputera: - jezyk maszynowy - rejestry procesora (32 bitowe, znacznikow) - sposob zapisu (hex, dec itp.) - tryb chroniony - pomocne teksty (linki) Let's Begin: -----====== 1) wyjasnienie pojec: =====----- Na poczatku wypadaloby zapoznac sie z terminologia, z jaka spotkasz sie podczas "zabawy w crack" ;-) - anty-debug: sztuczki majace na celu utrudnienie sledzenia programu... obecnie wiekszosc takich sztuczek jest skierowana przeciw SoftIco'wi... jednak w najblizszym czasie tendencja ta zmieni sie na korzysc TRW... najprostszymi sztuczkami sa np. MeltIce, INT 68, SetUnhandledExceptionFilter - anty-disasembler: podobnie jak powyzej z tym,ze skierowana przeciw disasemblerowi... o przykladach takich sztuczek poczytasz powyzej w punkcie o disasemblerach... - API: zbior funkcji w systemie Win, funkcje zdefioniowane sa w plikach *.dll, najpopularniejsze to np. user32.dll, kernel32.dll... programu tworzone w systemie Windows operuja przy wszelkich operacjach na tych wlasnie funkcjach nie na przerywaniach (jak w Dosie...) choc mozna tez i na przerywaniach w niektorych momentach (np. przy wykrywaniu SoftIce... :))) ) - Breakpoint: tzw. pulapka, po jej zastawieniu np. na pobranie text'u program (w ktorym zastawilismy pulapke - najczesciej debuger) bedzie przejmowal kontrole po wywolaniu funkcji pobierajacej tekst - Brutal-force: metoda lamania hasel/seriali itp. rzeczy, polega na sprawdzeniu wszystkich mozliwych hasel/seriali, jedna z najwolniejszych, ale jednoczesnie najlepszych metod... pomaga wtedy, gdy nie da odwrocic sie haslo normalna metoda reverse... obecnie wypierana przez swojego mlodszego kolege... algorytmy genetyczne... Metoda bardzo prosta, uniwersalna i gwarantujaca bardzo dobre wyniki w BARDZO szybkim czasie... - Cd-check zabezpieczenie cd-romu, najczesciej uzywane w grach do sprawdzenia obecnosci w napedzie plyty cd z gra... obecnie duza popularnoscia ciesza sie cyfrowe podpisy plyt tzw. SafeDisc - crack: inaczej cracking, ogolnie mozna by powiedziec ze jest to "sztuka lamania", omijania zabezpieczen programow, ich modyfikacja majaca na celu zrobienie z nim wszystkiego co nielegalne ;-) Np. wykasowanie paru przeszkadzajacych okienek, przedluzanie okresu uzytkowania programu, rejestrowanie go itp. Crack juz sam w sobie jest nielegalny, zgodnie z polskim prawem kazde "dotkniecie" cudzego programu (bez zgody wlasciciela) jest przestepstwem za ktore grozi chyba do 5 lat wiezienia. Cracking jednak jest NAJBEZPIECZENIJSZYM zajeciem z calego undergroundu! Wiec nie masz sie czego tak naprawde bac... nawet jakby policja cos tam zaczela majstrowac, to wierz mi, ze zajma sie jakimis grubymi rybkami ;-) - cracker: heh ;-) cracker to jest taki gosc, ktory bawi sie w crack, tzn. lamie programy ;-) Nie nalezy pod zadnym pozorem laczyc terminow cracker i hacker. Cracker, dziala tylko na wlasnym komputerze! Omija zabezpieczenia programow, a nie serverow! Pod zadnym pozorem cracker nie jest ciemniejsza stronka hackera (tzn. ta gorsza ;-)) jak maja w zwyczaju pisac rozne "poczytne" gazety. - Crackme: program od cracker'a dla cracker'a, swoistego rodzaju proba sil i umiejetnosci, czesto zlamanie go pozwala na przystapienie do jakiejsc grupy crackerskiej... - debuger: podstawowe narzedzie crackera, debuger pracuje w tle dzialajacych programow, ma on za zadanie analizowac jego dzialanie. W praktyce wyglada to tak, ze gdzies tam sobie program leci, a w momencie zadzialania debugera jego wykonywanie zatrzymuje sie, i wtedy cracker (chociaz debuger jest nie tylko uzywany przez nich!) moze analizowac program krok po kroku, instrukcja po instrukcji, majac mozliwosc analizowania wartosci rejestrow i danych. Jak zobaczysz w praktyce wyglada to o wiele prosciej ;-) - Dekompilator: program umozliwiajacy wyciagniecie kodu zrodlowego z pliku exe, z tego co wiem istnieja dekomplilaotry do visual'a, delphi oraz javy... - disassembler: zasada jego dzialania jest bardzo prosta, disassembleruje on kod programu, to znaczy analizuje go instrukcja po instrukcji i wyswietla wyniki na ekranie (troche zakrecilem ;-)). Tak na chlopski rozum: jest tam sobie gdzie program, disassembler bierze go i wyswietla po koleji co on tam ma w sobie za instrukcje. Dodatkowo wyswietla pozostale informacje znajdujace sie w pliku jak np. uzywane instrukcje, czy spis sekcji. Wszyskie instrukcje wyswietlane sa w jezyku maszynowym! Co to jest i czym to sie je zcytaj w pkt. 3.1 dzisiejszej lekcji ;-) - Dongle: tak zwany klucz sprzetowy, jedne z popularniejszych zabezpieczen programow graicznych/architektonicznych/geodezyjnych, dzialanie jego polega na wyslaniu do klucza (podpietego pod port LPT 1) i na podstawie otrzymanej odpowiedzi sprawdzic jego obecnosc/autentycznosc... jedno z najbardziej trudnych zabezpieczen (oczywiscie odpowiednio uzyty...) - Dump; inaczej "zdumpowanie", proces polegajacy na zrzucenie zawartosci pamieci komputera i zapisanie jej do pliku, sposob czesto stosowany wobec walki z plikami spakowanymi, na pewno nie raz uzywales ProcDump'a i jego opcji Bhrama Server... - Edytor zasobow: bardzo pozyteczne narzedzie umozliwiajace zmienianie napisow wystepujacych w programie, wyciaganie rysunkow, ikon itp. najpopluraniejszym narzedziem tego typu jest BRW... - Entry Point: adres pierwszej instrukcji wykonywanej podczas pracy programu... - Generic patcher: uniwersalny patch, dzialajacy na kilka wersji programow, za pomoca wbudowanych mechaniznow znajduje odpowiednia dzialke i ja zmienia... lepszy od normalnego patch'a jednak trudniejszy w wykonaniu... - Keyfile: rodzaj zabezpieczen w programie, polega na tym, ze dla wersji zarejestrowanej tworzony jest plik, gdzie zapisane sa wszystkie dane rejestracyjne, lamanie takich zabezpieczen polega na utworzeniu pulapki na otwarcie tych plikow (CreateFileA ???), i przesledzeniu sposobu odczytu danych z tych plikow... - Keygenerator: program tworzacy seriale dla podanych przez uzytkownika danych, inaczej mowiac dziala tak: wpisz kod, a ja podam ci wlasciwy serial dla twoich danych... wygodne, nieprawdaz??? - Krytografia: czesc dzialu "zabezpieczen", zajumuje sie kodowaniem informacji czyli tworzeniem takich informacji, aby nie byly mozliwe do odczytania dla osoby nieprzeznaczonej... ma zastosowania w bardzo wielu dziedzinach naszego zycia, np. pryz przesylaniu informacji w Internecie itp. - Loader: program dzialajacy w pamieci komputera, sluzyc ma zmienianiu kodow instrukcji w pamieci, najczesciej uzywany, kiedy program jest spakowany, a ze wzgledow techniczncyh nie mozna go rozpakowac - Member: czlonek jakiejs grupy, czy to crackerskiej, hackerskiej czy innej, np. CrackPl, Cookiecrk, - Nagscreen: rodzaj uprzykrzacza, z reguly jest to okienko informujace o niezarejstrowanym programie - Opkod: kod instrukcji asemblera wyrazony w kodach hex'owych, potrzebne jest to przy zmienianiu na stale plikow exe, dll, aby znalesc kod hexowe poszczegolnych instrukcji najlepiej uzyc SoftIce z wlaczona opcja Code (tzn. Code ON). - Patch: doslownie "nakladka", i taka wlasnie spedza funkcje, dokonuje zmian w danym programie, poprawiajac jego dzialanie, usuwajac jakies bledy, niedociagniecia, ktorych autorzy nie zauwazyli przed wydaniem programu. - PE: naglowek plikow wykonywalnych, znajduja sie w nim informacje o budowie pliku, adresy sekcji, tabela importow, itp. - Reverse enginering: jasniejsza ?! strona naszej dzialanosci, polega na sledzeniu wykonywania czegokolwiek, zrozumienia tego i (ewentualnie) odwrocenia... - Ring0: tryb pracy systemu Windows, programy w nim dzialajace maja dostep do dodatkowych zasobow systemowych itp. (a takze innych rzeczy). - Sekcja: czesc naglowka pliku exe,dll zawierajaca np. deklaracje zmiennych itp. kilka podstawowych sekcji: data, code, text itp. - Self modyfing code: w wolnym tlumaczeniu "Samo modyfikujacy sie kod..." i taka wlasnie spelnia funkcje... poprzez ustawienie atrybutow sekcji Code mozna robic takie cuda, trick bardzo chetnie wykorzystywany we wszystkich rodzajach crackme, a takze przy pakerach plikow wyoknywalnych. - Time-limit: zabezpieczenie czasowe, program dziala tylko przez jakis okreslony czas - Tutorial: tekst napisany od crack'era dla crack'era, ma za zadanie przekazac jakas wiedze, np. jak zabic swinke, czy zlamac patyk... - Unpacker: program neutralizujcy (rozpakowujacy) pliki spakowane, jakims pakerem najczesciej unpacker taki jest napisany pod konkretny paker - dziala tylko na okreslony , choc sa tez uniwersalne takie jak np. ProcDump - WideChar: format zapisu danych ch...
svirusek