Programy pomocne w crackingu Spis tresci: 1. Wstepniak 2. Debugger 3. Disassembler 4. Hex Edytor 5. Monitor Zasobow 6. Analizator plikow 7. PE Edytor 8. ProcDump, zwykle niezwykle narzedzie.. ale do czego sluzy.. 9. Resource Edytor 10. Generatory crackow, loaderow i keygeneratorow. 11. Dekompilator 12. Inne przydatne narzedzia 13. Koncowka ----------------- 1. WSTEPNIAK ----------------- hej... w tej lekcji omowimy narzedzia jakie sa pomocne kazdemu crackerowi... moze nie wszystkie beda ci potrzebne od razu.. ale z czasem gdy opanujesz jedno, drugie itd.. narzedzie i bedziesz zdobywal coraz to nowe crack-informacje przekonasz sie ze zast osowanie nowych narzedzi wiele spraw ulatwi.. i niektore... wydawalo by sie niemozliwe... pozwoli ci wykonywac i to bez "wiekszego" wysilku. Nie bede tu opisywal jak uzywac poszczegolnych narzedzi.. bo od tego beda inne lekcje.. ale napisze co pozwoli ci wykonac dane narzedzie oraz podpowiem ktore z nich (moim zdaniem) sa najbardziej funkcjonalne i w ktore jest sie warto wyposazyc. Oczywiscie to nie znaczy ze musisz ich uzywac.. ale wiekszosc opisow jest pod te narzedzia i sa co najwazniejsze bardzo fun kcjonalne.. a co rownie wazne... po odpowiednim wprowadzeniu sa stosunkowo latwe w obsludze. No mysle ze po takim wprowadzeniu mozemy zaczac poznawac narzedzia prawdziwego crackera... ------------ 2. DEBUGGER ------------ hmm... jaki wybrac?? jaki jest najbardziej funkcjonalny, a ktory pozwala sledzic kod bez wiekszych problemow?? he.. trudne pytania... proste odpowiedzi.. Opisze tutaj dwa debuggery.. TRW2000 oraz SOFTICE.... niektorzy z was (bardziej kumaci) moga sie zastanawiac dlaczego nie opisze mozliwosci innych debuggerow jak chocby COOL Debugger... he.. odpowiedz jest prosta.. poprostu z nich nie korzystalem.. wiec nie wiem jak dzialaja... jakie maja mozliwosci a jakich im brak... poprostu nie sprawdzalem na wlasnej skorze to nie bede opisywal. Dobra ale koniec tego pierniczenia.. zacznijmy wreszcie omawiac konkretna sprawe... SOFTICE - ten debugger to zywy crackerski przelom... na nim uczylo sie wielu dzisiejszych crackerow... jest on szalenie funkcjonalny i jest najpopularniejszym debuggerem wsrod crackerow... na niego powstalo juz tysiace opisow.. sposobow dzialania.. rozne tipsy i tricki... to wszystko dla niego. Z zalozenia debugger jako taki powstal aby pomoc programistom w lokalizowaniu bledow wywolywanych przez swoje programy.. ale cos chyba nie wyszlo.. co prawda debugger pomaga programistom ale jeszcze bardziej poma ga... he.. no komu?? no wlasnie.. nam!... crackerom. Softice pozwala na bardzo zaawansowane operacje na pamieci... poczynajac od zwyklego sledzenia w pamieci i obserwowania w niej zmian poprzez zmiany instrukcji az po... he.. tutaj nie potrafilem okresli c.. moze kiedys ty to zrobisz.. moze.. Pozwole sobie wymienic kilka operacji ktore umozliwia nam softice: - zastawianie pulapek na wywolaniach funkcji api, - zastawianie pulapek na adresie w pamieci, - zastawianie pulapek warunkowych np. gdy al==30h, - zastawianie pulapek warunkowych na wywolaniach funkcji api np. zakladamy pulapke na otwarcie pliku przy warunku ze ten plik ma sie nazywac "robaczek.txt" lub ze ma miec rozszerzenie "*.reg".. i wiele wiele innych warunkow zaleznych od aktualnych potrze b, - modyfikacje instrukcji w pamieci, - modyfikacje wszystkich rejestrow, - zakladanie pulapek na wiadomosciach przesylanych przez system (WM_XXXXXX), zarowno mozna zalozyc w taki sposob aby si przerywal na kazdej wyslanej wiadomosci do danego okna jak rowniez na konkretnej np. WM_DESTROY..., - wbudowany kalkulator pozwala wykonywac rozne operacje arytmetyczne (np. cmp, add, mul, idiv) i logiczne (np. xor, or, ror, rcl, not, shl) po uzyciu odpowiedniego operatora oraz pozwala wyswietlic wynik na trzy sposoby (hex, dec, ascii) - pozwala sprawdzic "co sie stanie gdy ta instrukcja sie wykona??" - umozliwia zalozenie pulapki na odczyt/zapis w obrebie okreslonego adresu, - pozwala na lamanie progow zabezpieczonych dongle poprzez zastawienie pulapki na operacje wyj./wej. - i wiele wiele innych ktorych nie sposob wymienic... TRW2000 - ten debugger to rowniez przelom. Jest debuggerem konkurencyjnym do softice, a to znaczy nie wiecej nie mniej ze posiada bardzo podobne funkcje. W zasadzie to pozwala na to samo co si. TRW jest w zasadzie loaderem.. uruchamiajac go widzimy okien ko z ktorego po chwili wnioskujemy ze musimy wybrac plik ktorego chcemy sledzic.. kiedy go wybierzemy klikamy load i jestesmy w mejscu gdzie program zaczyna swoja dzialalnosc.. w si jest to rowniez mozliwe po wykorzystaniu loadera dolaczonego do niego. T RW jest takim debuggerem ktorego uruchamiamy i zamykamy jak zwykly program... chocby notatnik. Jest to bardzo pomocne i pozwala uniknac tylu problemow ile ma si podczas ladowania sie do pamieci.. Nie bede tu opisywal funkcji tego debuggera bo mozesz wycz ytac na co pozwala si i mozesz to rowniez przypiac do TRW.. jednakze trw pozwala na cos co w si jest niemozliwe.. otoz na sledzenie programu zarowno na poziomie ring3 jak rowniez ring0... he he.. tak bardzo ciekawe.. i pomocne, ;)) PODSUMKA Z DEBUGGEROW Osobiscie nie moge ci powiedziec uzywaj tego a tego debuggera bo ten jest lepszy.. ktory wybierzesz to juz twoja decyzja.. ja osobiscie proponuje uzywac zarowno si jak rowniez trw naprzemiennie. Bo przeciez musisz pamietac taka mala anegdodke, ze: "Gdzie si nie moze tam trw pomoze...;))" i na tym milym akcencie zakoncze omawianie debuggerow ;)) ---------------- 3. DISASSEMBLER ---------------- Podobnie jak w debuggerach na crack rynku panuja dwa disassemblery. Sa to IDA (Interactive DisAssembler) oraz W32DASM. Sa to disassemblery bardzo rozniace sie od siebie a jednak bardzo podobne. W32DASM - jest to chyba (juz niedlugo) najbardziej rozslawiony disassembler. Pozwala na prawie wszystko czego mozna oczekiwac od disassemblera. Posiada nawet wbudowany debugger, ktory moim skromnym zdaniem jest bardzo prymitywny (czyt. malo funkcjonalny) chociaz tu lepiej sie nie bede w tym temacie rozpisywal bo zaledwie kilka razy z niego korzystalem i chyba go jeszcze dobrze nie poznalem. Disassembler jakim jest W32DASM jest latwym w obsludze bardzo funkcjonalnym progiem.. jednakze na jego niekorzysc wychodzi to ze technik antydisasm na niego wyszlo juz tyle ze wlasciwie jak programisci z URSoftware nie wypuszcza nowej wersji W32DASM odpornej na terazniejsze sztuczki przeciw temu disassemblerowi to straci on racje bytu wsrod crackerow.. a z tego pros tego wzgledu ze kazda lama bedzie mogla wywalic W32DASM. Oczywiscie mozna probowac mieszac w kodzie, reversowac go.. ale czy jest sens? lepiej poprostu sie przerzucic na inny. Oto kilka podstawowych funkcji na jakie pozwala W32DASM: - znajdywanie ciagow znakow wystepujacych w programie (String Data References), - debuggowanie programu, - podazanie do okreslonych miejsc w progu np. entry point (goto), - wykonywanie skokow, - podglad offsetu okreslonej instrukcji oraz jej opcodu, - przejrzyste przegladanie tablicy importow (to tam gdzie sa wszystkie api, biblioteki i takie tam) dzieki czemu mozemy sprawdzic jakich funkcji uzywa program, - podglad pliku w widoku hex'adecymalnym... czyli cos podobnego jak w hexedytorze, - zapisywanie aktualnie zdisassemblowanego pliku do pliku projektu dzieki czemu gdy zdisassemblowany plik jest dosc duzy nie musimy czekac na disassemblacje co przy duzych plikach.. trwa.. i trwa.. i trwa.. - szukanie tekstu w zdisassemblowanym projekcie, - drukowanie.. (he he.. to byl zart.. chociaz mozesz drukowac.. ;)) - i jeszcze kilka innych ktore jak narazie nie beda ci potrzebne, IDA (Interactive DisAssembler) - na co pozwala IDA? no mozesz sie tylko domyslac jezeli na jej opis zostala przeznaczona cala lekcja.. Powiem krotko.. IDA pozwala na o wiele wiecej niz W32DASM.. jednakze nie posiada debugera. Jest to baardzo wysoko konfi gurowalny program co czyni go dla poczatkujacego trudnym w obsludze.. przynajmniej na poczatku.. po jakims czasie gdy sie juz przyzwyczaisz sam bedziesz mogl doceniac uroki tego proga. Mozesz w nim skonfigurowac prawie wszystko.. poczawszy od calego wygl adu poprzez ustawienie pod jakim procesorem byl kompilowany plik co pozwala na efektywniejsza i trafniejsza disassemblacje az do konfiguracji he.. niewiem czego.. mnie trudno jest wyznaczyc tu granice... Niewatpliwa wada ID'y jest dluga.. he.. co ja mowie.. baaardzo dluga disassemblacja w porownaniu z W32DASM.. a jak bardzo dluzsza??.. powiem tak.. pod WDASM'em gdy disassemblowalem 9 mb plik paint shop pro zajelo mi to cos ok. 30-40 min. a pod IDA ten sa m plik disassemblowalem 2 doby.. bez kilku godzin... a wszystko dzialo sie na CPU 500 mhz.. 196 mb ramu... to jak bardzo wolno disassembluje mozesz sobie sam skojarzyc. Jednakze dzieki wolniejszej disassemblacji ID'e jest o wiele trudniej wywalic niz W32 DASM. Disassemblacja ID'y jest o wiele dokladniejsza i zaczyna sie ZAWSZE od entry point.. co napewno wplywa na korzysc ID'y. Moje skromne zdanie jest takie ze warto zaplacic te kilka godzin dluzej za lepsza, dokladniejsza i bardziej wydajna disassemblac je przy baardzo wysokich mozliwosciach konfiguracyjnych. Wiecej w specjalnej lekcji przeznaczonej dla ID'y. PODSUMKA Z DISASSEMBLEROW W disassemblerach tez nie ma mowy o uzywaniu tylko jednego z nich. Wogole cracker to taki "zawod" w ktorym trzeba sie uczyc uzywac roznych narzedzi i niewolno sie przyzwyczajac do uzywania tylko jednego z dostepnych poniewaz co chwile wymyslane sa jakies techniki anty i niestety dzis jednym narzedziem mozemy robic cuda ale juz jutro moze zostac wymyslona technika anty na to narzedzie i jesli nie potrafisz obejsc tego anty to musisz sie przerzucic na inne narzedzie. Chociaz wbrew pozorom wielu crackerow ...
gootia