Poka¿ wyniki od 1 do 3 z 3

Temat: Cracking - Jak zacz±æ? - Czê¶æ II

  1. #1

    Domy¶lnie Cracking - Jak zacz±æ? - Czê¶æ II

    W ostatnim artykule, przypomnieli¶my, albo inaczej, dowiedzieli¶my siê wiele ciekawych rzeczy. Nauczyli¶my siê równie¿ obs³ugiwaæ disassembler W32DASM. W tym artykule, zajmiemy siê crackowaniem jednego z moich CrackMe.

    Teraz, zajmiemy siê crackowaniem pierwszego CrackMe w naszym ¿yciu. ¦ci±gamy go st±d :

    http://www.ownersite.republika.pl/crackme.exe

    Okej, po ¶ci±gniêciu, zostawcie to w spokoju. Narzêdzia, które bêd± nam potrzebne:

    - W32DASM (zak³adam, ¿e jeszcze go macie z poprzedniej lekcji)
    - NASM (assembler)
    - XVI32 (hex edytor)

    Wszystkie te narzêdzia, mo¿na znale¼æ w temacie :

    http://www.haker.com.pl/viewtopic.php?t=16366

    Dobra, zaczniemy od teorii.
    Mam nadzieje, ¿e wiesz co to jest stos i rejestry procesora (to powiniene¶ wiedzieæ z poprzedniego artyku³u). Poniewa¿ nie omawia³em stosu w poprzednim artykule, omówiê go teraz. Za³ó¿my, ¿e mamy pieni±dze. Uk³adamy sobie stos 5 z³otówek i zauwa¿my, ¿e mamy tylko dostêp do monety na samej górze. Jak z do³u wyci±gniemy, to ca³y stos 5 z³otówek siê rozsypie. A za³ó¿my, ¿e chcemy wzi±¶æ ¶rodkow± monetê, to musimy usun±æ te monety, które by³y nad ¶rodkow±, itd. Tak mo¿emy upro¶ciæ sobie definicje stosu. A teraz stos o którym chcia³em wam powiedzieæ (nie z monet):

    - Stos - obszar pamiêci, ka¿de miejsce w stosie ma 4 bajty. Teraz niezale¿nie od tego, czy funkcja jako parametr przyjmuje znak, czy liczbê, po w³o¿eniu czego¶ do stosu, zajmuje to 4b.

    Odpowiedzialne rejestry za stos, to:

    - dno stosu (rejestr EBP)
    - góra stosu (rejestr ESP)

    ¯eby korzystaæ ze stosu, u¿ywamy funkcji push & pop.
    To jest tak jak z monetami, aby doj¶æ do ostatniej monety, musisz zdj±æ wszystkie z góry. Czyli masz dostêp tylko do tej pierwszej monety na górze. Tak dzia³a stos. Dobra, aby utrwaliæ Ci to w pamiêci podam to w ten sposób:

    - Zmienne lokalne, alokowane s± na stosie i assembler lub komputer, zajmuje siê nimi od dna stosu. Dno stosu mo¿e byæ przesuwane. Dobra, tyle teorii. Czas dzia³aæ!

    Zdisassemblujcie sobie nasz CrackMe.exe (wreszcie, co nie?).
    Zapiszcie listing do pliku i otwórzcie czym kolwiek (mo¿e byæ notatnik).
    Jak zauwa¿yli¶my, nasz crackme odlicza od 150 do 0, a potem od 199 do 0 i tak w kó³ko. Naszym zadaniem jest, aby program odliczy³ powy¿ej 200, czyli wy¶wietlenie tekstu:

    ROZWIAZALES CRACKME BY OWNER! GRATULACJE!

    Popatrzcie sobie na t± linijkê :

    :0040132D FF08 dec dword ptr [eax]

    Ona odpowiada, ¿e nasza liczba w programie, ci±gle maleje a¿ do 0 i od nowa wykonuje to samo. Skoro jest dec dword ptr [eax], to musi byæ jakie¶ przeciwieñstwo, aby siê zwiêkszy³a. Owszem, jest takie przeciwieñstwo i my je tutaj zastosujemy!

    To nasze przeciwieñstwo to magia taka, ¿e dec zamieniamy na inc i tyle! No dobra, no i co, ¿e zmodyfikujemy listing zdisassemblowanego kodu, skoro nasz program dalej liczy do zera? Wklejamy do notatnika:

    [BITS 32]
    inc dword [eax]

    Zapisujemy jako, np. bla.asm i wpisujemy tak± komendê do nasma (przez cmd, oczywi¶cie):

    nasm.exe bla.asm

    Powinien nam siê w folderze z nasmem, ukazaæ plik, bez rozszerzenia o rozmiarze 1kb.
    Otwieramy go hex edytorem XVI32 i widzimy :

    FF 00

    I gotowe! Teraz edytujemy naszego crackme szukaj±c FF 08, a dlatego FF 08, bo :

    004012BA FF08 dec dword ptr [eax]

    Gdy znale¼li¶my w naszym programie otwieraj±c go hex edytorem FF 08, zamieniamy FF 08 na FF 00. Zapiszcie teraz nasz zmodyfikowany program i go odpalcie. Efekt zobaczycie bardzo przyjemny. zamiast zmniejszaæ siê, liczba bêdzie lecia³a w górê, a¿ dojdzie do 200 i wtedy siê wy¶wietli nasza wiadomo¶æ.

    Zauwa¿cie, ¿e s± te¿ inne sposoby rozwi±zania tego crackme, np. edycja tekstu, z 150 na np. 200 lub 201, a program, te¿ wy¶wietli nam oczekiwan± wiadomo¶æ.

    Je¶li znasz chocia¿ podstawy jakiego¶ jêzyka programowania, mo¿esz sobie pisaæ w³asne CrackMe. Np. w C++ jaki¶ program na has³o, potem to zakodowaæ, itp.
    Trzecia czê¶æ artyku³u, powinna wyj¶æ za nied³ugo, jak tylko bêdê mia³ wiêcej czasu
    A teraz, zapraszam do nauki asma, bo co to za cracking/reverse engineering, skoro masz ma³e pojêcie o asmie. Zawsze mo¿esz mnie czego¶ spytaæ na PM, je¶li czego¶ nie wiesz. Linki, które mog± Ci siê przydaæ:

    http://www.haker.com.pl/viewtopic.php?t=36630
    http://www.haker.com.pl/viewtopic.php?t=35958
    http://www.haker.com.pl/viewtopic.php?t=34189
    http://www.haker.com.pl/viewtopic.php?t=14414

    Mam nadzieje, ¿e ta czê¶æ, czyli druga czê¶æ artyku³u o crackingu/reverse engineeringu, siê komu¶ przyda³a.

  2. #2
    U¿ytkownik
    Do³±czy³
    05-01-2008
    Posty
    107

    Domy¶lnie

    napewno sie przyda, aczkolwiek jest prostszy sposob ja twoje crackme ;]
    zmienic entry point

  3. #3

    Domy¶lnie

    Pewnie, ¿e jest Ale po to poda³em najd³u¿szy aby to nie by³o takie krótkie.

Podobne w±tki

  1. Artyku³ o pisaniu trojanów za natem czê¶æ I
    Przez DarkShadow
    w forum Delphi/Pascal
    Odpowiedzi: 82
    Ostatni post / autor: 24-09-2008, 19:11
  2. Czê¶æ forum tylko dla MOD I GU Mo¿na wej¶æ? phpbb
    Przez jacko394
    w forum HTML, PHP, JS
    Odpowiedzi: 2
    Ostatni post / autor: 26-01-2008, 19:45
  3. Cracking - Jak zacz±æ? - Czê¶æ I
    Przez 0wn3r
    w forum Tutoriale - czêste pytania i odpowiedzi.
    Odpowiedzi: 0
    Ostatni post / autor: 17-01-2008, 13:49
  4. Z³o¶liwe oprogramowanie & wirusy, czê¶æ 1, 2 i 3
    Przez 0wn3r
    w forum Tutoriale - czêste pytania i odpowiedzi.
    Odpowiedzi: 5
    Ostatni post / autor: 16-11-2007, 17:48
  5. Znam czê¶æ has³a...
    Przez proximo
    w forum Hasla - Skanery - IP ...
    Odpowiedzi: 8
    Ostatni post / autor: 16-07-2007, 19:13

Uprawnienia

  • Nie mo¿esz zak³adaæ nowych tematów
  • Nie mo¿esz pisaæ wiadomo¶ci
  • Nie mo¿esz dodawaæ za³±czników
  • Nie mo¿esz edytowaæ swoich postów
  •