Proste CrackMe

Nudzi Ci się? Złam CrackMe

Cześć, po przeczytaniu wywiadu z panem Dawidem Farbańcem odezwał się do mnie tajemniczy nieznajomy, który pragnął pozostać tajemniczym i prosił, żeby wręczyć mały challange dla pana Farbańca w postaci CrackMe.

Zadaniem jest napisanie keygena, no patch, wpisujcie się komentarze moje małe reverse engineerowe potworki jeśli coś ciekawego zwróci waszą uwagę lub uda wam się je rozwiązać.

Download – cm.zip

Komentarze (9)

Dawid

Póki co mam serialik, nad keygenem pomyślę, troszkę zagmatwane.

name: 0xDC
pass: 26242560

Dość niestandardowy jak dla mnie odczyt danych wejsciowych i zapis danych wyjsciowych, tworzenie nowego wątku dla zmyłki.

Odpowiedz
autor cm

@Dawid: za mało, przeoczyłeś coś ważnego 😛

C:\tmp>cm
name: Farbaniec lubi lody kakaowe
pass: 1126170624
shit.

Odpowiedz
Dawid

Niczego nie przoczyłem, po prostu nie ustawiłem tak dużego bufora, przez co tylko część Twojego “name” została uwzględniona. Ale proszę bardzo, zabezpieczyłem na taką ewentualność: http://www.mediafire.com/?ddkbskp6xbfpfyo.
W kwestii analizy, crackme nie było takie trudne na jakie wyglądało. Wszystko dlatego że algorytm generujący serial był banalny i jedynie trochę zaciemniony. Zaskoczyła mnie tylko, jak już wspomniałem metoda odczytu (funkcja _read), zapisu danych (funkcja _write), docelowo używana do zapisu i odczytu pliku a nie do konsoli oraz nieznana mi dotychczas funkcja tworzenia nowego wątku _beginthreadex. Muszę chyba przyjrzeć dllce msvcrt nieco bliżej.
Także jeżeli chodzi o sam algortym to nie postarałeś się “tajemniczy twórco” :), a oto mały przykładzik(losowy):

name: Farbaniec lubi lody kakaowessdasdsdsdddd
pass: 0
good.

Bart (kiedyś xt ;)) zrobiłby to 100x lepiej, tak że nie widziałbym o co chodzi ;).
Pozdrawiam wszystkich którzy odwiedzają tego bloga od czasu do czasu, pana Farbańca(nie przeglądałem jego książki), tajemniczego twórcę :), oraz ciebie Bartoszu(bart) 😉

Odpowiedz
autor cm

> zrobiłby to 100x lepiej, tak że nie widziałbym o co chodzi

Takie było zamierzenie, dać najbanalniejszy możliwy algorytm zaraz po sumie znaków i zobaczyć, czy ktoś to ogarnie ;]. Przy tym cm wystarczy nie spanikować i ew. zrozumieć layout kodu, żeby nie grzebać się po internalsach runtime’u GHC. Wierz mi, gdybym chciał napisać trudne crackme to bym to zrobił, to tylko taka mała prowokacja, w końcu nawet w tytule postu wisi “proste”, czyż nie? ;]

Odpowiedz
Dawid Ch.

Ciekaw jestem jeszcze czy pan Farbaniec który zna asemblera a nie ma żadnej nawet najmniejszej wiedzy(a może ma?) na temat crackingu wykonał zadanie. Udało się?

Odpowiedz
Dawid Farbaniec

Szanowny Panie Dawid Ch., moja wiedza na temat crackingu i RE jest naprawdę mała. Nie wykonałem tego zadania, nie potrafię odnaleźć algorytmu w tym crackme, jest tam za dużo kodu jak dla mnie i program jest napisany w nieznanym mi języku. Ja RE przeważnie używałem do wyciągania danych z serwerów trojanów lub keyloggerów. Wystarczy prosta obfuskacja lub packer i nie potrafię ruszyć z miejsca :/ Nie znam także za dobrze budowy PE, poległem przy pisaniu exe packera dla PE, zrobiłem za to packer w C# dla .NET. Jeżeli jednak chodzi o napisanie programu w Asm to nie ma żadnego problemu.

Odpowiedz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *