ďťż
Katalog wyszukanych fraz
Citizen Journalism - t by Krzysztof Kozek!

Znalazłem to na necie. mam nadzieje, że sie wam przyda:
Download: Rapidshare, Hotfile, Megaupload, Przeklej i Inne Spis tresci: I Crack 1. Wstep. 1.1 Kto to wlasciwie jest ten cracker??? 1.2 Czy crack jest legalny? Co mi grozi? 1.3 Jak zaczac? 1.4 Newsy. 2. Pytania o SoftIce. 2.01 Czemu gdy probuje zalozyc jakas pulapke widze komunikat "Symbol not definited"? 2.02 Do czego sluzy Loader dolaczony do Softice? 2.03 Czy mozna sprawdzic jakie sa zaladowane funkcje API? 2.04 Czemu niektore programy nie lapia sie w Loaderze ? (poprawiony przez: Imaginative) 2.05 Jak mozna zmienic wymiary okna SoftIce? 2.06 Jak sprawic, azeby SoftIce nie reagowal na wyjatki (ang. faults)? 2.07 Jak sprawic, azeby Softice pokazywal kody hex'owe instrukcji? 2.08 Jaka komenda sluzy do szukania jakiegos ciagu znakow w pamieci? 2.09 Czy mozna sprawic, aby SoftIce przejmowal kontrole w momencie gdy program wywola przerywanie 1 lub 3 ? 2.0A Czy mozna zastawic pulapke na konkretny adres, ktora wywola sie kiedy w EAX bedzie np. 0? 2.0B A jak zalozyc pulapke kiedy nie znamy adresu, a np. EAX ma osiagnac 31323334? 2.0C Czy mozna jakos zmienic wielkosc czcionki, jej kolory itp.???? 2.0D SoftIce pokazuje mi inne kody hexowe komend niz w rzeczywistosci, czemu? 2.0E Czy mozna zmienic wartosc jakiegos rejestru, bez modyfikacji kodu? 2.0F Jak zmienic wartosc flagi (inaczej znacznika)? 2.10 Jak mozna wyciac kawalek kodu programu z SoftIce? 2.11 Czy idzie jakos zrobic screen'a SoftIce? 2.12 SoftIce mi nie dziala... Co robic??? 2.13 Jak sprawic, azeby SoftIce dzialal w okienku? 2.14 Jak zmienic wartosc hexowa na decymendalna i odwrotnie? 2.15 Po uruchomieniu symbol loadera(32) wyskakuje coś takiego: "SoftICE is not active. Symbols cannot be loaded."... CTRL-D SoftIce jest... czyli cos tu nie gra ale co? 2.16 Czy jest SoftIce w wersji pod Dos'a? 2.17 Wie ktos moze co trzeba zrobic, zeby byc w Entry Point programu za pomoca SoftIce? 2.18 Czy jest mozliwosc zrobienia patha do programow spakowanych, lub zakodowanych??? 2.19 Czemu gdy zakladam pulapke na jakis adres to czasami pokauje mi sie komunikat "Invalid adress"? 3. Pytania o anty-debug. 3.01 Program wykrywa zalozenie pulapki na dana funkcje, jak temu zapobiec? 3.02 Program wywoluje przerywanie INT 68, co moge zrobic? 3.03 W jaki sposob mozna ominac wykrywanie SoftIce poprzez metode zwana MeltIce? 3.04 Jakie sa najpopularniejsze techniki anty-debug??? 3.05 A jak im zapobiegac? 4. Pytania o disasemblery. 4.01 Niektore programy nie disasembleruja sie czemu??? 4.02 Jak sprawic, aby rozpakowany program dobrze sie disasemblerowal? 4.03 Jakie sa znane techniki anty-Wdasm? 4.04 Czemu WDasm nie pokazuje w SDR tekstow z Visual'a? 5 Visual Basic. 5.01 Czy jest jakis sposob na rozpoznanie z ktorej wersji bibliotek VB korzysta program? 5.02 Czy istnieja dekompilatory do Visual Basic'a? 5.03 W jaki sposob radzic sobie z programami pisanymi w tym jezyku? 5.03.01 Ver. 3.0 5.03.02 Ver. 4.0 5.03.03 Ver. 5.0 5.03.04 Ver. 6.0 6. Pytania ogolne. 6.01 Jak dobrac sie do programu zabezpieczonego dongl'em? 6.02 Jak sprawdzic jakich funkcji API uzywa program? 6.03 Jak mozna zmienic napisy w pliku? 6.04 Jak wyciagnac z pliku ikony, grafiki itp.? 6.05 Jak zmieniac kod programu? 6.06 Jak sprawdzic w czym pisany jest program? 6.07 Jak walczyc z tzw. Instal Shieldem? 6.08 Jak zmienic entry point w programie ? 6.09 Jak stwierdzic ze exec w progu jest spakowany, a jezeli jest to czym i jak go rozpakowac? 6.0A Czym jest spowodowane pojawienie sie komunikatu procdumpa w czasie proby rozpakowania .exe "Process not 32bits, not loaded or alresdy finished"? 6.0B Co to sa Loadery, do czego sluza i skad je wziasc? 7. Slownik pojec zwiazanych z crack'iem. 8. Spis podstawowych narzedzi wraz z krotkim opisem. 9. Screen ( wykonany z uzyciem IceDump'a ) z SoftIce wraz z krotkim opisem co i jak... II Programimng 1. Asembler 1.01 Komendy... 1.01.01 Opis instrukcji "XOR" 1.01.02 Opis instrukcji "ROR" i "ROL" 1.01.03 Opis instrukcji "SHL" i "SHR" 1.01.04 Opis komendy "cmp". 1.01.05 Opis komendy "mov". 1.01.06 Opis komendy "add". 1.01.07 Opis komendy "sub". 1.01.08 Opis komendy "call". 1.01.09 Opis komendy "ret". 1.01.0A Opis komendy "push " oraz "pop". 1.01.0B Opis komendy "test". 1.01.0C Opis komendy "inc" i "dec". 1.01.0D Opis komendy "reps" i jej odmian. 1.02 Co znaczy porownanie Test EAX,EAX? 1.03 Co to sa flagi, do czego sluza i jakie jest ich znaczenie? 2. Spis funkcji API, dla: 2.01 Pobrania tekstu i operacji na nim... 2.02 Wyswietlania okien... 2.03 Dla czasu... 2.04 Dla programow pisanych w Visual Basic'u... 2.05 Dla rejestru... 2.06 Dla innych rzeczy... III Rozne dodatki i takie tam... 1. Tabela kodow ASCII 2. Zbior link'ow do wielu stron o crack'u, asemblerze itp. 2.01 Strony polskie (9 link'ow) 2.02 Strony zagraniczne (99!!! linkow) 2.03 Strony o krytografii (1 glowny link...) FF. Slowo koncowe i podziekowania. ******************************************************************************** ******* ********************************* UWAGA ************************************************ ******** Nie ponosze zadnej odpowiedzialnosci za niewlasciwe wykorzystanie ************* ****************** zamieszczonych tutaj informacji ************************************* ******* Wszystko co zostalo napisane, napisane jest w celach edukacyjnych ************** ******************************************************************************** ******* I Crack 1.Wstep Ostatnio duzo sie mowi o problemach nnewbies, mowi sie, ze nie maja swojego glownego, przewodniego pliku - czegos gdzie znalezliby odpowiedzi na nurtujace ich pytania. Wielu z nich pragnie prawdziwego, czystego zbioru pytan i odpowiedzi. Oto on... Zbior pytan i odpowiedzi... czyste, prawdziwe FAQ (Najczesciej Zadawane Pytania z ang.). Staralem umiescic sie tutaj jak najwiecej pytan, probowalem przewidziec o co mozecie pytac... Niestety JA, ani nikt nie jest w stanie tego zrobic... Dlatego prosze Was, jesli brakuje Wam tutaj jakiegos pytania, piszcie na adres: zhrbytom@friko.internet.pl a gwarantuje, ze w nowszej edycji znajdzie sie tutaj... W ostatnim czasie dodalem tutaj takze zbior (dosc pokazny - 107 adresy) oraz slownik pojec, oraz spis programow... Milej lektury, zyczy wszystkim TepeX^CrackPl2ooo... 1.1 Kto to wlasciwie jest ten cracker??? Cracker... do tego slowa kazdy "niewtajemniczony" podaje inna definicje... np. wandal, ciasteczko itp. umysl ludzki wymslil juz tyle hasel... ze az strach myslec - co jeszcze? W naszej definicji CRACKER jest to osoba: - inteligetna (wbrew niektorym opinia :)))) - bardzo dobrze poslugujaca sie komputerem - znajaca asemblera - potrafiaca zmieniac kod programu, znajdowac odpowiednie hasla itp. - zna sie na kryptografi (niekoniecznie... ale dobrze, azeby znal...) - hmm... W sumie wychodzi na to, ze cracker jest to osoba zajmujaca sie modyfikowaniem programu w czesto jednoznacznych celach... stara sie "zlamac" zabezpieczenia programu, znalezc odpowiednie haslo itp. A co to jest crack? Jest to dziedzina pracy komputerowej (ale mi haslo wyszlo...) zajmujaca sie ogolnie szerokim pojeciem kryptografi. Ciezko ujac to slowami... kazdy robi to co tylko moze z programem, powstalo juz tyle mozliwych produkcji, ze az glowa boli... 1.2 Czy crack jest legalny? Co mi grozi? Hmm... crack NIE JEST LEGALNY... grozi za to pare dobrych lat wiezenia... aczkolwiek nie masz sie czego bac... o ile wiem to jeszcze nikt nie polecial za crack... chyba ze rozumiesz pod tym pojeciem piractwo :((( . Zabronione jest JAKIEKOLWIEK dotykanie programu debugerem, disasemblerem... chyba, ze... no wlasnie Polskie prawo jest tak skomplikowane i zawile, ze niewiele osob lapie sie w tym wszystkim... Polskie prawo poniekad pozwala debugowac program jesli chce sie go dostosowac do pracy z wlasnym dzielem... jak to ktos ujal np. z crack'iem... Tak na marginesie Polskie prawo pozwala rowniez na legalne kopie zapasowe gier... ale kazdy sam wie jak to z tym bywa, np. LPM 2000, Roller Coster Tycon, itp... W sumie proponuje sciagnac sobie z sieci pare ustaw i zaglebic sie w pouczajcom lekture. Co grozi??? w sumie nic poza paroma latami... w wiezieniu... jednak odsetek crackerow wsadzanych do paki jest tak duzy, ze masz wieksze szanse na... wygrana w totolotka... Wystarczy tylko nie pokazywac swoich prawdziwych danych, jak np. adres, imie nazwisko... chociaz niektorzy podali i nic... widaz policja mocno spi :))))... i jak tu sie bac??? 1.3 Jak zaczac? Pierwsze co potrzebujesz to komputer :)))... nie powaznie... Co muszisz miec/umiec: - dostep do INET-u inaczej ciezko jes sciagac jakies progamy itp.. - znac asemblera - przynajmniej w stopniu podstawowym... wiecej nauczysz sie "trakcie" - miec takie male cos w glowie zwane mozgiem... - MIEC SZCZESCIE... najlepiej jak najczesciej... i jak najwiecej... - .... Gdy juz masz to wszystko to wypadalo by wejsc do sieci poszperac po stronach i sciagnoc parenascie mega programow... lub zamowic plytke ze stronami (np. u mnie...). A oto co potrzebujesz: - debuger, najlpiej Softice ver.3/4 - disasembler np. WDasm, IDA, - przyadlyby sie jakies monitory rejestru i plikow, np. FileMon, RegMonitor... - kompilator asm'a, Masm albo Tasm (zaleznie od upodoban...) - i wszystko inne co wyglada ciekawie i moze ci jakos pomoc :))))... Gdy te programy leza juz na twoim dysku proponowalbym przeczytanie parenascie (tysiecy...) tutorow, o crack'u, ami'e i wszystkim innym z tym zwaiaznym... a potme juz tylko lamac, lamac i lamac... i nie dac sie zlapac :))))... 1.4 Newsy. ver. 1.0 alpha - Jako ze jest to pierwsza wersja newsow nie ma :((( ver 1.0 Beta - male poprawki... nowe materialy... ver. 1.01 - jak wyzej... dodane materialy Imaginative...; nowe hasla w slowniku... ver. 1.02 - dodano pkt. 1.3 Jak zaczac? , zbor linkow do stron o kryptografii 55 kb... ver. 1.03 - punkt 9 - screen ze SoftIce... ulepszony slownik... pkt. 2.16, 2.17, 5.8 i 5.7..., dodano pkt. 10 "Asembler" wraz z podrzednymi, pkt. 11 "Funckje API" wraz z pordzednymi, juz okolo 70 kb tekstu... ver. 2.00 - kolejne zmiany... rozbudowany dzial anty-debug... juz ponad 80 kb tekstu dodano pkt. 2.18 i inne... dadano rozdzial II i III... 2. Pytania o SoftIce. 2.01 Czemu gdy probuje zalozyc jakas pulapke widze komunikat "Symbol not definited"? Odpowiedz jest bardzo prosta - po prostu nie masz ich (bibliotek) zaladowanych, aby to uczynic musisz wyedytowac plik winice.dat i w jego ostatniej sekcji (tej nazwanej: Examples of export symbols that can be included for Windows 95 )usunac sredniki przed wywolaniem funkcji np.;EXP=darek.dll zmieniasz na EXP=user32.dll. 2.02 Do czego sluzy Loader dolaczony do Softice? Mowiac krotko sluzy on do loadowania programow :). W praktyce chodzi tutaj, o to aby sledzic program od samego poczatku, uzywajac Loadera ladujemy na pierwszej instrukcji programu. 2.03 Czy mozna sprawdzic jakie sa zaladowane funkcje API? Sluzy do tego komenda EXP nazwa_funkcji, parametrem nazwa_funkcji moze byc cokolwiek, np. poczatek nazwy jak getwin, jak tylko jeden znak g itp. 2.04 Czemu niektore programy nie lapia sie w Loaderze ? Cos takiego wystepuje glownie przy programach spakowanych. Program spakowany modyfikuje wartosc Charakterisic sekcji Code, Data i innych, zmieniajac C0000020 na C0000040. Jak to zmienic??? Wystarczy jakis programem (chyba ze umiesz recznie...) sluzacym do Poprawka by Imaginative... *Aby dalo rade zlapac/deasemblowac program pierwsza sekcja musi miec atrybut executable... masz tu rozpiske atrybutow: 20000000 - executable object 40000000 - readable object 80000000 - writeable object 20 - Code object C0000020=40000000 OR 80000000 OR 20 aby dalo rade zdeasemblowac proga, sekcja musi miec atrybut E0000020 ewentualnie 60000020. nie musi byc writeable... * 2.05 Jak mozna zmienic wymiary okna SoftIce? Wysokosc okna modyfikujemy komenda lines wartosc, standardowo ustawiona jest na 25. Natomiast szerokosc okna zmieniamy komenda width szerokosc (standardowo 80). 2.06 Jak sprawic, azeby SoftIce nie reagowal na wyjatki (ang. faults)? Sluzy do tego komenda Faults off/on, wlaczenie Faults on, wylaczenie Faults off. Standardowo wartosc ta jest ustawiona na wlaczona. 2.07 Jak sprawic, azeby Softice pokazywal kody hex'owe instrukcji? Dokonac mozna tego instrukcja code on - wlacza wyswietlanie kodow, code off - wylacza. 2.08 Jaka komenda sluzy do szukania jakiegos ciagu znakow w pamieci? Jest to s -cu address l length data-string, gdzie -c nierozrozniej wielkosci liter -u lańcuchy w formacie UniCode address adres poczatkowy, np. ja uzywam ds:0 length dokad szukac, u mnie 80000000 data-string napis w cudzyslowiu jaki szukamy, np. "987123" czyli mamy np. s ds:0 l 80000000 "TepeX", aby kontynuowac sprawdzanie wpisujemy samo s. 2.09 Czy mozna sprawic, aby SoftIce przejmowal kontrole w momencie gdy program wywola przerywanie 1 lub 3 ? Sluza do tego komendy I1here on/off i I3here on/off. 2.0A Czy mozna zastawic pulapke na konkretny adres, ktora wywola sie kiedy w EAX bedzie np. 0? Tak, mozna i jest to bardzo proste. Wystarczy uzyc operatora if, czyli np. komenda: bpx 40211233 if EAX==FFFFFFFF. Spowoduje zastawienie pulapki, ktore uaktywni sie w momencie gdy program bedzie w tym adresie i EAX bedzie rowne FFFFFFFF, skad te ==, jest to zwyczajne porownanie C i C++. 2.0B A jak zalozyc pulapke kiedy nie znamy adresu, a np. EAX ma osiagnac 31323334? Sluzy do tego komenda bprw modul atrybut if (rejestr==wartosc), czyli mamy np. bprw getright R if (EAX==123456), pulapka na modul getright przy odczycie, kiedy EAX osiagnie wartosc 123456. Na podstawie listu na liste dyskusyjna CrackPL Gustawa via Mandylion. 2.0C Czy mozna jakos zmienic wielkosc czcionki, jej kolory itp.???? Tak, do zmiany wielkosci czcionki sluzy do tego komenda Set font 1/2/3, gdzie standardowo jest ustawiona wartosc 1. 2.0D SoftIce pokazuje mi inne kody hexowe komend niz w rzeczywistosci, czemu? Taka dziwna przypadlosc czeka czasami uzytkownikow procesorow AMD (i moze nie tylko) powinna pomoc mala zmiana w pliku winice.dat, na samym poczatku linie Pentium On, zamieniamy na Pentium off. 2.0E Czy mozna zmienic wartosc jakiegos rejestru, bez modyfikacji kodu? Tak, i to bardzo prosto komenda r rejestr wartosc, lub samo r i znajdziemy sie w oknie z rejestrami, gdzie mozemy zmienic to co sie nam podoba... 2.0F Jak zmienic wartosc flagi (inaczej znacznika)? Sluzy do tego komenda r fl znacznik np. r fl z. Wydajac komende r fl znajdziemy sie w oknie z flagami, gdzie poruszajac sie kursorami mozemy klawiszem INSERT zmieniac ich wartosci (patrzac jak ladnie zmieniaja sie nam skoki...). 2.10 Jak mozna wyciac kawalek kodu programu z SoftIce? Wystarczy w czasie pracy nad programem wpisac komende u adres_poczatkowy L dlugosc. Gdzie adre_poczatkowy to adres komendy od ktorej zaczynamy kopiowanie a dlugosc to ilosc kopiowanych linii. A nastepnie wlaczyc Loader'a Numegi dolaczonego do SoftIce i zapisac logi do jakiegos pliku. Wsrod wielu linii znajdziemy to co nas interesuje. 2.11 Czy idzie jakos zrobic screen'a SoftIce? Trzeba posiadac dodatek do SoftIce zwany IceDump... A nastepnie uzyc komendy: pagein n plik_wyjsciowy. Gdzie plik wyjsciowy to nazwa pliku gdzie bedzie zrobiony screen. 2.12 SoftIce mi nie dziala... Co robic??? Jest to temat rzeka... Poprobuj zrobic WSZYSTKO, nawet to co uwazasz za nie razjonalne w takich przypadkach... A wiec np. wylacz myszke, wlacz SoftIce w okienku, zmieniaj plik winice.dat, wylaczaj makra. W ostatecznosci zmien system/wersje SoftIce/karte graficzna... Sprobuj zmienic system operacyjny z win98 na win95, czyli rob to co tylko mozesz... a jak nie to zmien SoftIce na TRW2000... 2.13 Jak sprawic, azeby SoftIce dzialal w okienku? Zrob tak: menu start, programu, Numega, display adapter setup i wlacz opcje uniwersal adapter setup... druga od dolu... zresetuj komp'a i ciesz sie Softice'm w okienku... 2.14 Jak zmienic wartosc hexowa na decymendalna i odwrotnie? Z hex'ow na decymendlana robimy tak... wpisujemy ? wartosc_hexowa i wypisuje nam ladnie SoftIce co i jak... Natomiast aby zmienic wartosc decymendalna na hex'y i inne urodzaje wpisujemy "? +wartosc_decymendalna"... przed wartoscia musisz wpisac + (plus)... 2.15 Po uruchomieniu symbol loadera(32) wyskakuje coś takiego: "SoftICE is not active. Symbols cannot be loaded." CTRL-D Ice jest czyli coś tu nie gra ale co? Przyczyna jest bardzo prosta... czyz nie bawiles sie ostatnio w zmienianie stringow SICE, Ntice i innych w pliku winice.exe??? jesli tak to hmmm... ma prawo tak sie dziac... czemu??? poniewaz wlasnie Loader uzywa funkcji Anty-debug z sterownikami... Jak temu zaradzic??? zmien napisy na jednakowew winice.exe (czy jak tam on sie zwie...) i w jakiejs bibliotece... lub zpatczuj Loadeda (chyba wiesz jak...) 2.16 Czy jest SoftIce w wersji pod Dos'a? Tak istnieje i jest to chyba wersja 2.8. Jednak mozna inaczej... w nowszych SoftIcech - ver. 3x i 4x jest przy instalacji katalog w katalogu glownym SoftIce gdzie jest plik dldr... wystarczy tylko uruchomic plik dldr.exe z nazwa innego pliku exe w parametrze i mamy loadera... czyli mamy np. dldr.exe dos.exe (plik dos.exe musi byc w tym samym katalogu... chyba...). 2.17 Wie ktos moze co trzeba zrobic, zeby byc w Entry Point programu za pomoca SoftIce? To jest wlasnie zadanie Loader'a dolaczonego do SoftIce... szery jego opis, co i jak przeczytasz w punkcie 2.2. 2.18 Czy jest mozliwosc zrobienia patha do programow spakowanych, lub zakodowanych??? Tak, mozna... trzeba tylko zrobic to lekko inaczej... W wiekszoszci przypadkow jedynym wyjsciem jest zrobienie tzw. loadera... W skrocie jego dzialanie polega na tym: - wlaczasz loader - wlaczasz progam - loader czeka, az program dojdzie do odpowiedniego momentu - kiedy to sie stanie zmienia kod programu, ale w pamieci! Bardzo dobrze sposob tworzenia loader'ow, wraz z kodem zrodlowym opisany jest w ISSUE zinie nr 1 albo 2... Chociaz czasami mozna program tak zmodyfikowac, azeby szlo tylko nieznacznie zmieniajac plik exe zmienic kod... bardzo dobrym przykladem to tego jest dzielo Dulka^CrackPl, ktory poradzil sobie bardzo ladnie tak z jednym programem... jesli chcesz zobaczyc jak to zrobil to przegladnij archiwum listy dyskusyjnej CrackPL-forum... 2.19 Czemu gdy zakladam pulapke na jakis adres to czasami pokauje mi sie komunikat "Invalid adress"? Wine? w tym przypadku ponosi SoftIce na spolke z Windowsem... jak zapewno zauwazyles cos takiego dzieje sie w sytuacji, gdy chcesz zalozyc pulapke na adres 32 bitowy (8 znakowy) w czasie kiedy aktualnie zatrzymales sie na procesie 16 bitowym (4 znakowym)... widac to np. po adresach w sekcji code... raz za 4 znakowe (16 bit.) a raz 8 znakowe... jedyne co mozesz zrobic to wylapac odpowiedni moment i wtedy zalozyc pulapke... 3. Pytania o anty-debug. 3.01 Program wykrywa zalozenie pulapki na dana funkcje, jak temu zapobiec? Jako, ze jest to coraz bardziej popularny trick anty-debug wypadalo by nauczyc sie go zwalczac... Zalozmy ze progam wykrywa pulapke na GetDlgItemTextA,w takim przypadku ustawiamy pulapke na bpm GetDlgItemTextA. Wtedy program przejmie kontrole w momencie porownania odopiedniej komorki pamieci z CC wtedy tylko r fl z i mozna spokojnie popatrzec jak SoftIce przejmuje kontrole... 3.02 Program wywoluje przerywanie INT 68, co moge zrobic? Wystarczy tylko w danym, odpowiednim momencie przeszukac pamiec komputera komenda s ds:0 l 80000000 CD,68. Nastepnie zalozyc na znalezione adresy i puscic program. Nastepnie kiedy juz przejmie kontrole wystarczy tylko zmodyfikowac rejestr EAX komenda r eax 400 i wszystko bedzie cacy... Prostszym sposobem jest uzycie takiej zmyslnej pulapki: BPX Exec_Int if ah==68. Poprawka : niedawno zostal wynaleziony nowy bardzo ciekawy sposob... wynaleziony zostal przez Plastka, zrob tak wez znajdz plik wmm.vxd i szukamy takiego ciazgu hexow: B4 43 CD 68 3D 86 F3 i zmien liczbe 43 na jakas inna np. na 50... nastepnie musisz taka sama zmiene uczynic w pliku winice.exe... tylko ze teraz szukasz ciagu: 80 FC 43 0F 84 26 01 80 i znow zmieniamy 43 na ta sama liczbe co poprzednio... 3.03 W jaki sposob mozna ominac wykrywanie SoftIce poprzez metode zwana MeltIce? Na poczatku krotkie info o tej metodzie... jest to jedna z najczesciej stosowanych i ... najprostszych metod anty-debug, polega na probie utworzenia/otwarcia pliku o nazwie vxd'ka SoftIce, sa to pliki \\.\SICE, \\.\NTICE oraz \\.\SIWVID. Najczesciej uzywana jest do tego funkcja CreateFileA. Coz wiec za tem zrobic??? Najprosciej uzyc jakiegos programu do "zabezpieczania" SoftIce, jak np. Frog's Ice. Jednak jezeli nie mamy tak wymyslnych narzedzi pod reka, trzeba sobie poradzic recznie... czyli mamy dwa makra: MACRO nosice="ED*(ESP+4) 0;PRET" MACRO nosi="BPX CreateFileA If *(*(ESP+4)+4)=='SICE' DO "nosice" wpisujemy je do pliku winice.dat, potem przed programem wpsiujemy w SoftIce "nosi" i mozemy isc spac spokojnie do domu... Jeszcze kolejnym wyjsciem jest modyfikacja pliku winice.exe i usuniecie podejrzanych napisow... nie dotykaj tylko napisow SIWVID, gydz spowoduje to napewno zawieszenie pracy kmputera przy ponowym uruchomieniu (wystapia bledy z vxdekiem....) 3.04 Jakie sa najpopularniejsze techniki anty-debug??? Huh... technik tych ostatnio namnozylo sie ostatnio... oto najpopularniejsze (materialy z pakietu Stona, Rad'a oraz strony CrackPL): - proba utworzeniu pliku ze sterownikami (vxd'kami) SoftIce czyli np. \\.\SICE itp. jesli zwroci blad mamy SoftIce - wywolanie int 68 z gdy ax==43h, jesli pod ax bedzie potem F386 to mamy Softice... - przeszukanie pamieci w poszukiwaniu stringu winice.brk - przeszukanie autoexec'u w poszukiwaniu stringu z SoftIce... - przeszukanie rejestru w poszukiwaniu: wpisu HKEY_LOCAL_MACHINE\SOFTWARE\NuMega\SoftICE :((( - wywolanie SetUnhandledExceptionFilter, czyli obsluga wyjatkow - szukanie pulapek na rozne funkcje... np. GetDlgItemTextA, czy MessageBoxA... - int 3, gdy w eax==4 a w ebx=="BCHK" 3.05 A jak im zapobiegac? Co do szukania stringow Softice w pamieci (SICE, NTICE) do masz podane to wyzej... pod nazwa MeltIce. Podobnie z Int68 i pulapkami na funkcje... Jesli chodzi o rejestr i autoexec, to najlepiej w rejstrze usunac podejrzane napisy (SoftIce i bez tego chodzi...), a w autoexec'u dac odnosnik np. do pliku a.bat, gdzie bedzie lezakowac link do SoftIce... Gorzej z kolejna metoda czyli szukaniem napisu winice.brk w pamieci... sa dwa wyjscia: - zainstaluj SoftIce ver.3.23 lub 3.22 i uruchom program zwany SiceTool, jesli chcesz mail me... umozliwia on WSZELAKA obrone SoftIce... w tym przed ta metoda... - dojscie do odpowiedniego kodu programu i zmiana skokow... W przypadku funkcji SetUnhandledExceptionFilter sprawa sie troche komplikuje... najlepiej zobaczmy to na przykladzie z jakiegos crackme... :00401000 mov dword ptr [00402015], esp :00401006 push 00401025 :0040100B Call SetUnhandledExceptionFilter :00401010 mov ebp, 4243484B :00401015 mov eax, 00000004 :0040101A int 03 :0040101D tu jakies inne niemile rzeczy np. ExitProcess... Program "nie sledzony" w momencie dojscia pod adres 0040101a skoczy do linii podanej jako ostatni parametr funkcji SetUnhandledExceptionFilter... jaki to paremetr??? push 00401025... W przeciwnym wypadku program poleci sobie dalej i.... wywola sie jakas swinska funkcja np. call ExitProcess... Jak temu zaradzic??? najlepiej spachowac exeka... dojdzmy do linii 00401010 lub 0040101a i zmienmy kod... np. na jmp 00401025... No to teraz czas na int3 z eax=4 i ebx="BCHK", tu pomoze mala modyfikacja pliku winice.exe Ladujemy plik winice.exe i szukamy ciagu: 4b 48 43 43 (jest to odwrocony napis BCHK)... i zmieniamy go na jakis inny dowolny... UWAGA!!! Zmiany takie moga miec jeden przykry skutek... ostatnio sie otym przekonalem lamiac pewne crackme... autor jego (LobiX) wysilil sie nad falszywa procedura dostepna dla osob uzywajacych SoftIce... ja natomiast majac spachowanego SoftIce nie zauwazylem tego zabiegu... byla potem niezla zabawa podczas rozmowy z autorem, ktory chcial dowiedziec sie jak "omninalem" to zabezpieczenie... 4. Pytania o disasemblery. 4.01 Niektore programy nie disasembleruja sie czemu??? Winna moze byc dwojaka (a nawet trojaka... ale o tym kiedy indziej...). Po pierwsze moze to byc wina spakowania pliku, jakims pakerem. Drugim winowajca moze byc jakis kawalek kodu zawierajacy jakies sztuczki anty-disasembler. W pierwszym przypadku pomaga rozpakowanie, a w drugim reczne debugowanie, albo zmiana disasemblera... 4.02 Jak sprawic, azeby rozpakowany program dobrze sie disasemblerowal? Najpierw nalezy sprawdzic czy program nie jest spakowany jakims exepackerem albo protectorem... jezeli nie, nalezy sprawdzic wartosci charackteristics naglowka PE pliku. Aby program mogl byc deasemblowany, pierwsza sekcja musi miec atrybut 60000020 lub E0000020. 4.03 Jakie sa znane techniki anty-Wdasm? (by Imaginative) ****************************** Tekst Imagninativa ********************************************* Najprostsza metoda przeciwko W32Dasm debugger jest sprawdzenie, czy nie jest otwarte jego okno. Jak to zrobic? Oto kod procedury wykrywajacej w32dasm i w razie wykrycia zamykajacej go -;) ; w sekcji .data nalezy zadeklarowac nastepujaca zmienna ; szW32Dasm db "URSoft W32Dasm Ver 8.93 Program Disassembler/Debugger",0 ; a oto kod wykrywajacy i wylaczajacy w32dasm: ;... push offset szW32Dasm push 0 call FindWindowA cmp eax,0 je dalej push 0 push 0 push WM_CLOSE push eax call PostMessageA dalej: ;... Innym sposobem anty-w32dasm jest utrudnianie deasemblacji. Mozna to zrobic w nastepujacy sposob: ;... jmp dalej db 23h dalej: ;... najlepiej umieszczac ten fragment przed instrukcjami jedno lub dwubajtowymi... aby zobaczyc jak dziala napisz proga uzywajacego tego snippetu i zdeasembluj go. Mozna pokombinowac z wartoscia po db aby uzyskac lepsze wyniki -;). Aby ulatwic stosowanie snippetu mozna zapisac go jako makro _fuck_dasm macro LOCAL f jmp f db 23h f: endm i w programie zamiast wpisywac caly snippet wystarczy wpisac ;... _fuck_dasm ;... ************************** Koniec tekstu Imaginativa ****************************************** A oto kawalek kodu programu Ptaska (z tego co wiem wyklada WDasm'a, a jak z IDA to nie wiadomo...): .386 locals jumps .model flat,STDCALL extrn ExitProcess:Proc .data wskaznik: xchg eax,ecx;kod instrukcji - 91h xchg eax,ecx xchg eax,ecx xchg eax,ecx xchg eax,ecx xchg eax,ecx xchg eax,ecx xchg eax,ecx xchg eax,ecx xchg eax,ecx jmp koniec .code start: mov edi,offset wskaznik;adres w selektorze danych mov ecx,10 petla: dec byte ptr [edi];zmniejsz 10 bajtow, kazdy o 1 co daje 90h(NOP) inc edi loop petla jmp wskaznik;a teraz skocz i wykonuj co siedzi w data(czyli nop'y) koniec: push 0 call ExitProcess end start 4.04 Czemu WDasm nie pokazuje w SDR tekstow z Visual'a? Winowajcom w tym przypadku jest maly kawalek kodu WDasm'a... Aby to naprawic trzeba zmienic ciag 28f6ff zpod offsetu 16B6C na 98F4FF... Proste??? A wiec hexedytor w dlon i zmieniamy... 5. Visual Basic 5.01 Czy jest jakis sposob na rozpoznanie z ktorej wersji bibliotek VB korzysta program? Widac to patrzac na zbior funkcji importowanych przez program... mozna to uczynic np. Quick View Plusem, czy WDasm'mem. Oto odopowiednie bilioteki dla odpowiednich wersji: vb300.dll - dla ver. 3.0 vb400.dll - dla ver. 4.0 msvbvm50.dll - dla ver. 5.0 msvbvm60.dll - dla ver. 6.0 5.02 Czy istnieja dekompilatory do Visual Basic'a? Obecnie dekompliatory wystepuja chyba tylko do wersji 3 i 4... Jak z innymi to jeszcze nie wiadomo... ale sadze, ze w niedalekiej przyszlosc nie bedzie problemow ze znaleznieniem dekompilatorow do nowszych wersji... 5.03 W jaki sposob radzic sobie z programami pisanymi w tym jezyku? Huh... trudne pytanie... w ogole panuje pojecie: "Chcesz dobrze zabezpieczyc program napisz go w Visual Basic'u...". Pojecie to sprawdza sie w wielu przypadkach... jednak istnieje kilka skutecznych sposobow... Sposob odpowiedni do wersji: 5.03.01 Ver. 3.0 Dekompilator... jest najlepszy w tym przypadku... chwila i problem z glowy.... 5.03.02 Ver. 4.0 Jak wyzej... dekompilator.... a jesli nie to jest mautki sposobik na okienka z serialem: - uruchamiamy program - wpsujemy dane - pulapka hmemcpy - przechodzimy do kodu - wpisujemy komende: s 0 l FFFFFFFF 56,57,8B,7C,24,10,8B,74,24,0C,8B,4C,24,14,33,C0,F3,66,A7 - jak znaleziono jakis adres to "bpm dataaddr"... i tak do konca.... - puszczamy program... - patrzymy na rejestry Esi,Edi i inne i wydzimy odpowiednie kody... 5.03.03 Ver. 5.0 No coz... do tej wersji nie ma jeszcze dekompilatora... Pierw sporoboj pozakladac pulapaki na funkcje uzywane przez programy Visual'owskie... jesli to nie dziala to uzywamy nowego narzedzia Numegi :)... zwie sie to SmartCheck... jest to najlepsze narzedzie do lamania programow visualowskich... jak go uzywac? polecam bardzo dobry tutor grupy aaocg... adres na koncu... jest to chyba tutor numer 2 albo 3... 5.03.03 Ver. 6.0 Z tym jest najgorzej... dzialanie podobne jak powyzej... SmartCheck i funkcje... czasami sa to normalne funckje API! 6. Pytania ogolne. 6.01 Jak dobrac sie do programu zabezpieczonego dongl'em? Przewaznie skutkuje pulapka na dostep do portu 37F lub innych COM. Czyli mamy np. dla SoftIce taka pulapke: bpio -h 37F. Potem tylko zmiana paru skokow i mamy problem z glowy... Jednak w przypadku HASP'a nie dziala to i trzeba szukac innej drogi... Np. poprzez MessageBoxA... 6.02 Jak sprawdzic jakich funkcji API uzywa program? Najprosciej mozna to uczynic disasmeblerujac program np. WDasm'em, chociaz dla duzych plikow exe nie jest to dobry sposob... Lepiej zrobic to jakims edytorem zasobow, mozna tez programem Quick View Plus (ktory mozemy przy okazji sobie zarejestrowac dal rozrywki...). 6.03 Jak mozna zmienic napisy w pliku? Podobnie jak powyzej skutkuje uzycie edytora zasobow, np. Borland Resource Workshop, jest on dolaczony do Pascal'a. Mozna tez znalezc go na jakiejs stronie WWW o crack'u np. strona grupy cookiecrk. 6.04 Jak wyciagnac z pliku ikony, grafiki itp.? Patrz wyzej... Proste, latwe i przyjemne... 6.05 Jak zmieniac kod programu? Pierwszym krokiem jaki musimy uczynic jest znalezienie kawalka kodu jaki musimy zmodyfikowac, np. mozna to uczynic za pomoca SoftIce. Wpisujemy komende code on i widzimy po lewej stronie kody hexowe instrukcji. Znajdujemy odpowiedni moment w kodzie programu, spisujemy kody z kilku linijek kodu (czemu z kilku linijek??? bo jak spiszesz z jednej linii znajdziesz potem kilkadziesiat takich miejsc i potem nie wiesz, ktory jest wlasciwy...). Nastepnie musisz wiedziec na co musisz zmienic dany kod. Jak??? tu jest maly problem musisz dowiedziec sie jak ma wygladac hex'owo zmodyfikowany kod. Jak??? najlepiej zrobic to w SoftIce, najezdzamy na interesujaca linie, wpisujemy: " A " nastepnie piszemy nowa instrukcje kodu. Spisujemy nowy kod hexowy i dokonujemy zmian... UWAGA!!! Zdarzyc sie moze, ze przy jakiejs zmianie nie beda ci sie zgadzaly ilosci bajtow, np. skok ma dwa bajty, mov 3 albo 4. Wolne miejsce trzeba jakos zapelnic, czyni sie to wpisujac w wolne miejsce 90 (kod hexowy instrukcji NOP, ktora nie czyni nic...). Przyklad: 0028:C00038FD 8BF9 MOV EDI,ECX 0028:C00038FF 8B09 MOV ECX,[ECX] 0028:C0003901 3BCF CMP ECX,EDI 0028:C0003903 740E JZ C0003913 musimy sprawic azeby skok z linii 0028:C0003903 zawsze sie wykonywal... Uczynimy to tak... zamiast JZ uzyjemy JMP. JMP ma kod hexowy EB. A wiec dokonujemy zmiany: 0028:C00038FD 8BF9 MOV EDI,ECX 0028:C00038FF 8B09 MOV ECX,[ECX] 0028:C0003901 3BCF CMP ECX,EDI 0028:C0003903 EB0E JMP C0003913 Spisujemy kody hexowe z tych czterech komend i w jakims hex edytorze zmieniamy odpowiednie wartosci. 6.06 Jak sprawdzic w czym pisany jest program? Oto odpowiednie przepisy: Delphi - widac w pliku exe napis delphi :))),a pod sekcja Pe napisy w stylu string, bollean itp. C++ - analogicznie jak wyzej, ale zamiast delphi jest C++ Visual - podczas debugowania takiego programu poruszasz sie po bibliotece VB4000, czy msvbvm50 czy 60... Asembler - trudno... jedyne co moze o tym swiadczyc to maly kod programu, bez zbednych smieci... poprostu sama rozkosz w debugowaniu, dla takich programow mozna nawet jezdzic po dead listingu :))))))))))))))))))))))))))))))... Czasami widac jakies info o kompilatorze.... 6.07 Jak walczyc z tzw. Instal Shieldem? Co to jest???? Jest to jezyk skryptowy sluzacy do pisania programow instalacyjnych... Wiekszosc z obecnych programow uzywa tego badziewia... Najprostszym sposobem jest... zdekompilowanie uporczywego programu... Wlasciwie to nie programu ale pliku *.ids - to wlasnie tam zapisany jest prawie caly skrypt programu...Dekompilator znajdziesz na jakiejs stronie... o adresach ponizej... Potem masz dwa wyjscia mozesz albo odgadnac co program robi z kodem, albo zmodyfikowac kod w dekompilatorze... opcje taka umozliwia pare tego typu programow, aczkolwiek nie wszystkie... 6.08 Jak zmienic entry point w programie ? Aby zmienic EP pliku wykonywalnego najlepiej uzyc jakiegos ogolnie dostepnego narzedzia, np. ProcDump'a... Instrukcja ta bedzie wlsnie pod ten program... o oto ona: - uruchom ProcDump'a - wybieramy "PE Editor" - ladujemy plik "ofiare" ... - wpisujemy w polu Entry Point nowy adres... i dajemy przycisk "OK"... 6.09 Jak stwierdzic ze exec w progu jest spakowany, a jezeli jest to czym i jak go rozpakowac? Program spakowany charakteryzuje sie kilkoma cechami: - nie laduje sie do Loader'a... - nie disasembleruje sie... - w pliku EXE widac jakies podejrzane napisy... a nie widac tych "naszych..." - dziwne wartosci niektorych sekcji PE... - dziwne "nowe" sekcje PE Najlpiej okreslic czy program jest spakowany jakims "komercyjnym" programem np. ExeScope... Poszukaj, pobrobuj... w 99% autor pakera pragnac sie zareklamowac umieszcza w spakowanym pliku info o sobie :))) najczesciej na poczatku lub koncu... Apropo rozpakowywania plikow to sa dwie mozliwosci: - uzyc jakiegos programu (np. ProcDump'a) z wbudowanym skrytami do bardzo wielu pakerow... sposob skuteczny na znane pakery... - recznie rozpakowac program... skuteczna jest metoda: Softice+IceDump+ProcDump... Oto on: - patczujemy SoftIce IceDump'em... - Ladujemy plik "ofiare" do Loadera Numegi (najpierw musimy go do tego przystosowac, patrz pkt. 4.2)... - dochodzimy do miesca gdzie rozpoczyna sie "wlasciwy" programa (a nie paker)... najczesciej ten moment odbywa sie poprzez skok jmp EAX, gdzie program skacze pod adres 00401000... zreszta sam zobacz... przewaznie widac to bardzo wyraznie... - wpisujemy komende: Pagein B "nazwa_okna_ProcDump'a_Bhrama_Servera..."... no wlasnie ProcDump sie klania... ma on takie cos co zwie sie Bhrama Server... po jego zalaczeniu pokazuje sie okienku czekajace na komenda... no wlasnie ta powyzsza... w momencie jej odebrania ProcDump przemieli nam cala pamiec i utworzy wlasciwy plik exe... zawierajacy caly program... nazwa_ok(...) jest poprostu nazwa tego okna Bhrama u mnie: "ProcDump32 - Dumper Server"... jak pewnie sie domysliles przed cala zabawa nalezy go miec wlaczonego... teraz tylko podajemy nazwe pliku i mamy ladniutki pliczek... 7. Slownik pojec zwiazanych z crack'iem. 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 bedzie (w ktorym zastawilismy pulapke - najczesciej debuger) przejmie 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 - dzielo cracker'a majace umozliwic pokazanie jak latwe i proste jest przerobienie programu jednym MALYM plikiem... a tak powaznie... "poprawka" do pliku... usuwajaca jakos niedogodnosc, np. nag-screen cracker - osoba (bardzo inteligetna :))) ) starajca sie doglebnie poznac dzialanie programow ( i nie tylko ), czasto uwazana ze zlo doczesne (gorsze od AIDS?!), ktore nalezy za wszelka cene wyplewic ze srodowiska 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 - program umozliwiajacy podgladanie (wlacznie z ingerencja) wykonywania programow, w zamierzeniach ma sluzyc programistom do znajdywania bledow w programach i kontrolowania ich wykonywania, ale wiadomo jak to jest ... i co sie dzieje ... i teraz jest naszym podstawowym narzedziem "pracy" dekompilator - program umozliwiajacy wyciagniecie kodu zrodlowego z pliku exe, z tego co wiem istnieja dekomplilaotry do visual'a, delphi oraz javy... dead code approach - termin wprowadzony (jak wiekszosc...) przez +ORC... polega na analizowaniu kodu programu poprzez... wydruk kodu na papierze lub poprzez jakis disasembler... Disasembler - rozklada program wykonywanlny na kody asmeblera, wraz z podzielaniem na sekcje, napisy... ciezko to wytlumaczyc... lepiej samemu zobaczyc czym to sie je... jednymi z najlepszych przedstawicieli tego gatunku sa IDA i WDasm... 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/auten- tycznosc... jedno z najbardziej trudnych zabezpieczen (oczywiscie odpowiednio uzyty...) Edytor zasobow - bardzo pozyteczne narzedzie umozliwiajace zmienianie napisow wystepujacych w programie, wyciaganie rysunkow, ikon itp. 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... HASP - rodzaj klucza sprzetowego, jeden z najlepszych... posiada mechanizmy skutecznie odstraszajaca wiekszosc potencjalnych piratow.. 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??? klucz sprzetowy - patrz dongle 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 rozpa- kowac 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, najczesciej na jakis dany program umozliwiajaca wykorzystywanie go NIEZGODNIE z prawami autorskimi PE - naglowek plikow wykonywalnych, znajduje sie w nim glowne centrum sterowania, np. adresy sekcji, itp. reverse enginering - jasniejsza ?! strona naszej dzialanosci, polega na sledzeniu wykonywania czegokolwiek, zrozumienia tego i (ewentualnie) odwrocenia... Ring0 - tryb ochorony systemu Windows Sekcja - czesc naglowka pliku exe,dll zawierajaca np. deklaracje zmiennych itp. kilka podstawowych sekcji: data, code, text itp. Self-modyfing kod - 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. Sentinel - kolejny rodzaj klucza sprzetowego 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... unpaker - 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 charakterstyczny dla programow pisanych w Visual'u..., powstal on na bazie formatu Unicode... na czym to polega??? tekst jest zapisywany z... przerwami, czyli np. TepeX wyglada T e p e X, gdzie pomiedzy danymi znajduje sie bajt zero, do zapisu tak danych uzywa sie funkcji MultiByteToWideChar. Wyjatek - moment pracy programu/systemu, podczas ktorego nastepuje blad, tzw. wyjatek krytyczny, uzytkownikom systemu Windows moze sie to kojarzyc z takim ladnym ... niebieskim ekranem, aby zaradzic takim przypadkom istnieje specjalna funkcja do obslugi wyjatkow, zwie sie... SetUnhandledExceptionFilter, poniekad sluzaca jako technika anty-debug... wyjatki mozna obslugiwac takze SoftIce'm poprzez ustawienie opcji Faults na On. 8. Spis podstawowych narzedzi wraz z krotkim opisem. Aspack - kolejny packer plikow wykonywalnych, jak zwykle .... :) Customiser - kolejny uzyteczny program, pokazuje hwnd i inne badziewie okna, umozliwia wykonywanie na nich wszystkich operacji (wlacznie z uaktywnieniem przycisku/okna, pokazeniem, schowaniem) IDA - bardzo dobry disasembler, niestety ciezki ( kilkanascie mg), jednak o wiele lepszy od WDasm'a... ICEDUMP - dodatek do SoftIce, umozliwia zruczanie pamieci do pliku (z mala pomoca ProcDumpa) oraz sluchania ulubionego mp3 podczas lamania ExeSpy - program rozpoznajcy czym spakowany jest dany plik (chodzi o pakery plikow wykonywalnych exe,dll) FileMonitor - analogicznie jak RegMonitor, tyle ze sluzy do plikow Frog's Ice - niezwykle uzyteczny program do zabezpieczenia SoftIe przed wykryciem, w niektorych przypadkach nieskuteczny Hiew - hex edytor, calkiem ladny i przyjemny, niestety/stety shareware LoneWolf - polski zbior crackow, seriali i keygeneratorow, pomysl i wykonanie Imaginative Masm - kompilator asmeblera, umozliwia tworzenie programow Windowsowych (oknowych) Neolite - paker plikow wykonywalnych PePack - paker plikow wykonywalnych ProcDump - najlepszy unpacker do spakowanych plikow (made by Stone and G-Rom ), przy okazji edytor Pe, process dumper i wiele innych pozytywnych rzeczy... RegMonitor - swietny program, pokazuje odwolania do rejestru, SafeDisk - program zabezpieczajacy plyty CD przed kopiowaniem tworzy unikalny numer seryjny, ktory nie jest kopiowany przez nagrywarki Shareware Cracker - zbior crack'ow by Profit Shrinker - paker plikow wykonywalnych Sicetool - program sluzacy do zabezpieczania SoftIce przed wykryciem... obsluguje tylko wersje 3.22 i 3.23... ale warto... bardzo pomaga... SmartCheck - niezastapione narzedzie do walki z programami napisanymi w Visual Basic'u SoftIce - jeden z najlepszy debuger'ow. Od wersji 3.0 jest pod windows'a. Naucz sie go dobrze - jest niezastapiony. Symbol Loader - centralna czasc SoftIce, sluzy do uruchamiania programow w SoftIce Tasm - kompilator asmeblera TRW - debuger A'la Softice... doslownie niemal identyczny... odpowiednio zmieniony jest identyczny jak on... stworzony przez nie jakiego LiuTa... cos tam z Chin... pomaga tam, gdzie... Softice jest wykrywany... posiada jedna ciekawa ceche... mozna go zaloczyc/wylaczyc w dowolnym momencie... np. po wlaczeniu programu :))) W32Dasm - najczesciej uzywany disasembler and debuger, pomoze ci gdy SoftIce zawiedzie UPX - paker plikow wykonywalnych 9. Screen ( :))) ) z SoftIce wraz z krotkim opisem co i jak... * EAX=00001607 EBX=C35E0018 ECX=00000000 EDX=13440010 ESI=00000097 * EDI=00002816 EBP=00000000 ESP=0000023A EIP=00004758 o d I s z a P c * CS=FF34 DS=9C0E SS=1551 ES=1551 FS=0000 GS=0000 ------------------------------------------------------------------------V86----- + FF34:4756 7405 JZ 475D + FF34:4758 EA05007000 JMP 0070:0005 + FF34:475D 1E PUSH DS + FF34:475E 2E8E1E273F MOV DS,CS:[3F27] + FF34:4763 3C06 CMP AL,06 + FF34:4765 7502 JNZ 4769 + FF34:4767 EB49 JMP 47B2 + FF34:4769 3C07 CMP AL,07 + FF34:476B 7502 JNZ 476F + FF34:476D EB57 JMP 47C6 ^ ------------------------------------CDMAX+0234---------------------------------- ' WINICE: Free32 Obj=01 Mod= NETBIOS ' WINICE: Free32 Obj=02 Mod= NETBIOS ' WINICE: Free32 Obj=03 Mod= NETBIOS ' WINICE: Free32 Obj=04 Mod= NETBIOS ' WINICE: Free32 Obj=05 Mod= NETBIOS ' WINICE: Free32 Obj=06 Mod= NETBIOS ' :pagein n darek.txt W sekcji * (gwiazdek... hehe...) mamy po koleji wypisane wszystkie rejestry procesora wraz z ich obecnymi hexymendalnymi wartosciami... Na koncu tej sekcji znaduje sie takze rejestr znacznikow procesora (mala litera oznacza ze ma wartosc 0 [zero] a duza ze 1 ) W sekcji + mamy podane aktualnie wykonywane komendy progamu/komputera :((( wraz z adresami po lewej stronie... W sekcji ^ mamy podana nazwe programu w ktorej sie aktualnie znajdujemy... pomaga nam to zorietnowac sie gdzie jestesmy... W sekcji ' wyswietlane sa komendy wpisywane przez nas... oraz rozne "notatki" SoftIca o zdarzeniach w komputerza... nierzadko bardzo pozyteczne... II Programing 1. Asmebler 1.01 Komendy... 1.01.01 Opis instrukcji "XOR" XOR jest instrukcja artymetyczna wykonujaca operacje na bitach w/g pewnej reguly... Przy xor'rze mamy zawsze dwie wartosci, A i B... np. xor EAX, EBX... wynik operacji zapisywany jest w pierwszym operandzie (w tym przypadku EAX), wynik... no wlasnie jaki wynik??? XOR po koleji bierze po jednym bicie z kazdego operandu i przerabia je w/g schematu (a - pierwsza wartosc, b - druga wartosc, c - wynik operacji...): a | b | c --------- 1 | 1 | 0 0 | 1 | 1 1 | 0 | 1 0 | 0 | 0 Wypadalo by w tym miejscu wspomniec o pewnej wlasciwosci tej funkcji... XOR wykonany dwa razy na tych samych argumentach da nam z powrotem dane wyjsciowe! Wlasnie z tego powou, ta funkcja czesto wykorzystywana jest w procedurach kodujacych... A oto przyklad: eax=22222222 ebx=11111111 1010100110001010110001110 101010011000101011000111 xor eax, ebx 1010100110001010110001110 EAX 0101010011000101011000111 EBX ------------------------- 1111110101001111101001001 Wynik w EAX Zwroci w rejestrze EAX wartosc: 33201993... (WARTOSCI DECYMENDLANE!!!) 1.01.02 Opis instrukcji "ROR" i "ROL" ROL i ROR sa to instrukrcje 'obracajace' bity... ROL w lewo, a ROR w prawo. Najlepiej zobaczyc to na przykladzie... ROL i ROR maja wywolanie : ROL rejestr, ilosc_miejsc_przesuniecia (gdzie ilosc jest podana w hexach...). Mamy wiec np. ROL EAX,03, gdzie EAX ma wartosc 32323232 (HEXOWO!!!) na bity to bedzie: 110010001100100011001000110010 rol obraca w lewo o 3 miejsca, a wiec mamy: - I przesuniecie 100100011001000110010001100101 - II przesuniecie 001000110010001100100011001011 - III przesuniecie 010001100100011001000110010110 ROL - scinamy bity z lewej strony i przenosimy na prawo... ROR - na odwrot... Jak widzisz ROL i ROR sa przeciwstawne wiec mozna do rozkodowania uzyc po prostu przeciwnej instrukcji z tym samym operandem i ta sama wartoscia przesuniec... :)))) 1.01.03 Opis instrukcji "SHL" i "SHR" Instrukcje SHL i SHR sa bardzo podobne jak funckje powyzsze (ROL i ROR) z mala roznica... ale pierw zobaczmy przyklad: EAX - ma 32323232 - 110010001100100011001000110010 SHL EAX,02 W EAX otrzymujemy C8C8C8C8 - 11001000110010001100100011001000... zobacz co sie stalo... do liczby zostaly dopisane dwa!!! bajty z prawej strony... takie jest wlasnie dzialanie SHL i SHR dopisuja dwa puste bajty... lecz uwaga w momecie gdy zostanie przekr oczona wartosc rejestru (w tym przyadku gdy bedzie mial dlugosc 32 bitow) procesor obetnie najsarsze bity... ktore to sa??? te przeciwne do strony do ktorej dodajemy... Mamy przyklad taki jak u gory z tym ze tym razem przesuwamy caly ten kram o 12 znakow.czyli otrzymujemy cos takiego.... 110010001100100011001000110010000000000000 ale z powodu ograniczenia rejstru scinamy stare bajty i mamy: 0100011001000110010000000000000 Aha, najlepiej do tego typu obliczen uzywaj kalkulatora WinShit'a w opcji zaawansowanej... 1.01.04 Opis komendy "cmp". Wywolanie: cmp wartosc,wartosc Dzialanie: funkcja porownuje dwie wartosci... wynik zapisuje w flagach... Zmiany flag: A ,C ,O ,P ,S ,Z 1.01.05 Opis komendy "mov". Wywolanie: mov wartosc#1,wartosc#2 Dzialanie: funkcja przenosi dana podana jako drugi parametr do pierwszego parametru... Zmiany flag: brak 1.01.06 Opis komendy "add". Wywolanie: add rejestr#1,wartosc#2 Dzialanie: funkcja dodaje do pierwszego operandu wartosc podana w drugim parametrze... Zmiany flag: A, C, O, P, S, Z 1.01.07 Opis komendy "sub". Wywolanie: sub rejestr#1,wartosc#2 Dzialanie: funkcja odejmuj od pierwszego operandu wartosc podana w drugim parametrze... Zmiany flag: A, C, O, P, S, Z 1.01.08 Opis komendy "call". Wywolanie: call funkcja Dzialanie: komenda ta wywoluje funkcje o nazwie podanej w parametrze, jednoczescie odklada ona na stos adres aktualnej instrukcji... Zmiany flag: brak 1.01.09 Opis komendy "ret". Wywolanie: ret Dzialanie: komenda ta oznamnia koniec call'u i powoduje przejscie do nastepnej instrukcji za call'em... choc nie Zmiany flag: A, C, O, P, S, Z 1.01.0A Opis komendy "push " oraz "pop". Wywolanie: push wartosc/rejestr pop wartosc/rejestr Dzialanie: push kladzie jakas dana na stos, natomiast pop ja zdejmuje... kiedy zostanie wykonana komenda push rejestr SP zostaje zwiekszony o 2 (lub 4) a do SS:SP leci dana wartosc... natomiast pop zmniejsza reejstr SP o 2 (4) i wtedy SS:Sp wskazuje na wartosc poprzednia... najlepiej zobacz to sobie jak to program robi... Zmiany flag: brak 1.01.0B Opis komendy "test". Wywolanie: test wartosc,wartosc Dzialanie: wykonanie tej komendy spowodoju ze komputer wykona operacje logiczna AND na dwoch wartosciach i wynik zapisze w rejestrze znacznikow... Zmiany flag: C, O, P, S, Z (A nie zdefioniowana) 1.01.0C Opis komendy "inc" i "dec". Wywolanie: inc rejestr dec rejestr Dzialanie: komenda inc inkrementuje, czyli zwieksza o jeden dana wartosc, natomiast komenda dec dana wartosc zmniejsza o jeden... Zmiany flag: A, O, P, S, Z 1.01.0D Opis komendy "repne" i jej odmian. Wywolanie: repne i inne... Dzialanie: dzialanie wszytkich tych komend troche sie rozni... ale w wszytkie inne daza do jednego... porownaja dana z rejstru ESI z dana z rejestru EDI... zmieniajac przy tym pare rzeczy... w tym np. rejestr CX... Zmiany flag: brak 1.02 Co znaczy porownanie Test EAX,EAX? Komenda Test porownuje wartosci w rejestrach podanych jako jej parametry... na podstawie wyniku ustawiane sa odpowiednio znaczniki... Ale jakie to ma zastosowanie w zabezpieczeniach... na pewno wiele razy spotkales taki kawalek kodu: call cos_tam test eax,eax jz zle_haslo W takim wypadku wydaje sie ze zawsze jest wynik pozytywny... bo jak dwie te same wartosci moga miec rozne wartosci??? Ale wbrew pozora... zaglebnijmy sie w dzialanie tej funkcji... a wiec... funkcja Test przeprowadza (w celu weryfikacji) operacje AND na dwoch argumentach... a co robi funkcja AND??? zobacz w tabelce jak zmieniaja sie bity: a | b | c --------- 1 | 1 | 1 0 | 1 | 0 1 | 0 | 0 0 | 0 | 0 Przenalizujmy sytuacje dla EAX rownego 00000000 w wyniku operacji AND na dwoch argumentach zerowych zostanie zwrocene w wyniku jej dzialania 00000000 (patrz tabelka) i z tego powodu flaga Z zostanie ustawiona... Jesli natomiast wezmiemy EAX rozne od zera np. 00000101 wtedy AND zwroci wartosc 00000101 i flaga Z nie zostanie ustawiona... Widzisz juz dzialanie tej funkcji??? jest to jakby porownanie czy w EAX jest zero... A znaczenie tego w kodowaniu??? Jesli wejdziesz w call'a zobaczysz czesto taki kawalek kodu: cmp eax,ebx jz dobrze xor eax,eax dobrze: ret Kapujesz??? Nie wiem jak to prosciej wytlumaczyc... :(((( 1.03 Co to sa flagi, do czego sluza i jakie jest ich znaczenie? Flagi sa to jakby osobne rejstry procesora sluzace do... no wlasnie czego... najlepije zobaczyc to na przykladzie, mamy np. kawalek kodu: cmp eax,ebx jz dobry_kod Przeanalizuj to... cmp porownuje dwie wartosci... a wynik porownania... no wlasnie gdzie jest wynik porownania??? w rejestrze znacznikow... zaleznie od wyniku dzialania tej komendy komputer odpowiednio ustawi znaczniki, ktore potem posluza jako (wy)znacznW skrocie mozna zapisac ich dzialanie tak: "sluza do kierowania wynokaniem lub nie wykonaniem skokow warunkowych etc."... W obecnych komputerach mamy takie rodzaje flag: o d i s z a p c... 2. Spis funkcji API, dla: (czesc funkcji ma swoje 16 biotwe odpowiedniki, bez A na koncu...) 2.01 Pobrania tekstu i operacji na nim... Pobranie: GetDlgItemTextA GetWindowTextA Hmemcpy (dosc uniwersalna funkcja... wywolywana bardzo czasto wiec uwazaj...) Operacje: lsctrcmp - porownanie... CharUpperA - zamiana tekstu na duze litery... CharLowerA - zamiana na male litery... 2.02 Wyswietlania okien... MessageBoxA - zwykly messagebox... CreateWindowExA - normalne okno... DialogBoxParamA - cos pomiedzy Messagem a Oknem... ShowWindow - do pokazania okna na pulpicie... 2.03 Dla czasu... GetSystemTimeA GetLocalTimeA 2.04 Dla programow pisanych w Visual Basic'u... __vbastrcmp - porownanie napisow... __vbastrcomp - jak wyzej __vbastrmove - przenoszenie napisow MultiByteToWideChar - zamiana tekstu na format Wide WideCharToMultiByte - przeciwna do powyzszej... rtcMsg - do messgaebox'a rtcBeep - pisk :) rtcGetPresentDate - pobranie daty... 2.05 Dla rejestru... OpenKey - otwiera klucz RegOpenKey - jak wyzej... CloseKey - zamyka klucz RegCloseKey - jak wyzej... RegQueryValueExA - pobranie wartosci RegSetValueExA - ustawienie wartosci 2.06 Dla innych rzeczy... CreateFileA - utworzenie pliku ReadFile - odczyt pliku GetDriveTypeA - pobranie typu dysku (stosowane przy CD-Chekach...) III Rozne dodatki i takie tam... 1. Tabela kodow ASCII (tylko normalne znaki... bo inaczej by krzaki bylo) wartosci hexowe... co by nie bylo za latwo... __________________ _________________ | wartosc | znak | | wartosc | znak | |_________|________| |_________|_______| | 20 | spacja | | 50 | P | | 21 | ! | | 51 | Q | | 22 | " | | 52 | R | | 23 | # | | 53 | S | | 24 | $ | | 54 | T | | 25 | % | | 55 | U | | 26 | & | | 56 | V | | 27 | ' | | 57 | W | | 28 | ( | | 58 | X | | 29 | ) | | 59 | Y | | 2A | * | | 5A | Z | | 2B | + | | 5B | [ | | 2C | , | | 5C | \ | | 2D | - | | 5D | ] | | 2E | . | | 5E | ^ | | 2F | / | | 5F | _ | | 30 | 0 | | 60 | ` | | 31 | 1 | | 61 | a | | 32 | 2 | | 62 | b | | 33 | 3 | | 63 | c | | 34 | 4 | | 64 | d | | 35 | 5 | | 65 | e | | 36 | 6 | | 66 | f | | 37 | 7 | | 67 | g | | 38 | 8 | | 68 | h | | 39 | 9 | | 69 | i | | 3A | : | | 6A | j | | 3B |; | | 6B | k | | 3C | < | | 6C | l | | 3D | = | | 6D | m | | 3E | > | | 6E | n | | 3F | ? | | 6F | o | | 40 | @ | | 70 | p | | 41 | A | | 70 | q | | 42 | B | | 70 | r | | 43 | C | | 70 | s | | 44 | D | | 70 | t | | 45 | E | | 70 | u | | 46 | F | | 70 | v | | 47 | G | | 70 | w | | 48 | H | | 70 | y | | 49 | J | | 70 | z | | 4A | K | | 70 | { | | 4B | L | | 70 | | | | 4C | M | | 70 | } | | 4D | N | | 70 | ~ | | 4E | O | |_________|_______| | 4F | P | |_________|________| 2. Zbior link'ow do wielu stron o crack'u, asemblerze itp. 2.03 Strony o kryptografii... Jako ze moglem wypisac tutaj setki linkow, a chcac oszczedzic cenne Kb (i niektorym tusz do drukarek :((( ) to podam jeden glowny : neworder.box.sk - jak tam wejdzesz wybierasz dzial Cryptografy i masz dostep do likuset linkow... a potem juz tylko po sznurkach... FF. Slowo koncowe i podziekowania Wypadaloby w tym miejscu podziekowac wszystkim tym, ktorzy przyczynili sie do powstania tego FAQ-u. Sa wsrod nich osoby, ktore zadawaly pytania oraz osoby ktore na nie odpowiadaly. Dziekuje przede wszystkim zalozycielom listy crackpl-forum, gdyz wiekszosc pytan pochodzi wlasnie z niej... tak samo jak niektore odpowiedzi. A oto lista specjalnie wyroznionych: Imaginative, mNICH,GustawKit, tato, Zomo... (lista jest ciagle otwarta... niestety wypadl z niej jeden gostek... jaki??? porownaj z poprzednia wersja :) )... Mam nadzieje, ze ten FAQ pomogl ci w jakiekolwiek sposob. Na pewno po jego lekturze masz pare uwag na jego temat, cos ci sie podoba (???), cos cie zdenerwowalo etc. wiec jesli chcesz podziel sie ze mna swoimi uwagami, pisz na adres: zhrbytom@friko.internet.pl... Download bez limitów



Wiekszosc takich rzeczy jest w sieci ale po angielsku, albo ciezko znalezc, dzieki!.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • limerykarnia.xlx.pl


  • © Citizen Journalism - t by Krzysztof Kozek! Design by Colombia Hosting