[Projekt] crackme II

0

Witam.

Chcialbym zaprosic Was do udzialu w projekcie crackme II. Na razie dostepne sa 2 proste crackme do rozwiazania. Z kazdym kolejnym zadaniem poziom bedzie wzrastal, wiec mysle ze predzej czy pozniej kazdy znajdzie cos dla siebie. Nowe zadania oraz najlepsze odpowiedzi pojawiaja sie mniej wiecej co 3 tygodnie. Wasze rozwiazania bedzie ocenialo kilka osob, ale glownym czynnikiem decydujacym o wyborze rozwiazania poza poprawnoscia bedzie jego wartosc merytoryczna. Oprocz rozwiazywania zadan mozecie przysylac wlasne propozycje crackme.

0

Ekhm...Nie za bardzo rozumiem zadanie. Można jaśniej ? :)

0

Nie rozumiem czego nie rozumiesz, mozna jasniej ? To jest tylko informacja o projekcie, opisy crackme masz po nacisnieciu w podany link...

0

O drugim crackme:

http://img151.imageshack.us/img151/2855/idam.png

Takie pytanko mam do bardziej co zaawansowanych - co właściwie robi ten program oprócz wypisania prompta, sprawdzeniu czy podany znak to znak nowej linii i w przypadku, gdy faktycznie to jest znak nowej linii, wypisanie komunikatu 'fail' :D?

0

Robi jedna rzecz, ktora doprowadzi Cie do rozwiazania - nie jest to typowe crackme akurat.

Wolalbym zeby nie byly publikowane podpowiedzi do tak prostych crackme jak to.

0

Zerknalem na szybko(BARDZO szybko - minuta?), a poza tym nie moge tego odpalic, wiec moge sie mylic :P
Ale z tego co mi sie wydaje to tutaj:

**.text:08048468                 mov     byte ptr [ebp+ebx+var_24], al
**.text:0804846C                 mov     eax, [ebp+var_10]
**.text:0804846F                 mov     al, byte ptr [ebp+eax+var_24] 

przy jakims tam znaku w tym miejscu poleci wyjatek i wtedy... stanie sie magia ;) Wypusc wersje na win to pogadamy ;)

0

na samym poczatku wypelniamy sobie bufor zerami przy pomocy rep stosd
var_10 to indeks kolejnego znaku.
mov [ebp+indeks], 0 ; zaczynamy od 0
cmp [ebp+indeks], 13h ; sprawdzamy czy jest równy albo mniejszy od 19 (rozmiar naszego bufora)
jeżeli jest większy to wypisujemy 'fail' i wracamy do prompta

do ebx wrzucamy indeks
mov byte ptr [ebp+ebx+bufor], al
znak wrzucamy pod bufor[indeks]
do eax wrzucamy indeks, do al wrzucamy znak, który przed chwilą wrzuciliśmy:
mov eax, [ebp+indeks]
mov al, byte ptr [ebp+eax+bufor]

no i sprawdzamy czy znak to 0A (nowa linia). jak tak, to wypisujemy fail i wracamy do prompta, jak nie, to zwiększamy indeks o 1 i wracamy do sprawdzania na początku

To pierwszy raz, gdy analizuję czyjś program, wybaczcie :P. Ale ja nic specjalnego nie widzę w tym kodzie, robi to co pokazane na obrazku i tyle :P. Niech ktoś mądry mi to wyjaśni.

0

Jest szansa na wersje na win x86? Chetnie bym zobaczyl jak to wyglada "w akcji", a troche mi sie nie chce tylko po to meczyc z linuxem.

0

Lepiej niech ktoś mi wyjaśni dlaczego jest to crackme tylko linuxa :( ? Plik wykonywalny formatu ELF, nie uruchomię tego nie bawiąc się w VM.

0

Wiec tak... Do rozwiazania zadania nie jest potrzebny debugger. Wystarczy disassembler, zeby to rozwiazac, z tym ze disassembler Wam nie powie kiedy to cos sie dzieje, wiec minimalna wiedza na temat tego czegos w czym to jest i macie pelna odpowiedz, a dobry wzrok i rozwiazecie, ale nie bedziecie znali zwiazku miedzy tym czego nie macie, a reszta kodu. Chodzi o nauke, wiec ten zwiazek jest najwazniejszy w tym wszystkim. Natomiast samo crackme odpalicie na Windowsie, ale najpierw...

Teraz wszystko jasne ?

@cyriel: na Win tego czegos nie ma w takiej formie jak pod Linuksem, ale tak jak mowie nie jest potrzebny Linux, ani debugger

edit:
libc-2.9.so tylko tego moze Wam brakowac do zrozumienia o co chodzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1