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
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 *