![]() |
не совсем мой crackme
Недавно сидел над парой crackme. Почерпнул для себя кое-что новое.
Решил их объединить.И получилось вот что http://slil.ru/23040639/1212340730/CrackMeT.rar. Писал на MASM, поэтому там всё будет ясно. Мусорить я почти не стал (лень ;) ), антиотладки нет (лень ;) ). CrackMe достаточно простой, зачем было упираться всё равно крякнете. Хотя если вам понравится можно всё это добавить. Просто пара интересных (на мой взгляд) приёмов. CrackMeT.exe - 3,55 Kb. CrackMeT.rar - 1,00 Kb Нужно подобрать два пароля и вылетит MessageBox. |
Нда, ну и крякми. Ща чуток осталось. Придумать :) Первый пасс 131313, так как после вычитания константы получим WM_GETTEXT
Теперь осталось придумать 0xC байт, чтобы они образовали вызов MessageBox с кэпшэном Сообщение, и текстом Молодец |
Да первый пасс 131313. Со вторым пришлось повозиться. На практике с переполнением ещё не связывался (все примеры на сях :( ). В crackme это редкость. Ещё лёгкий для превращения в ASC|| адрес трудно было подобрать.
Спасибо на добром слове ;) . Кстати завтра вечером уезжаю в Питер. Я поступил в институт. Комп и инет не знаю когда будут. Ищу друзей. Извините что здесь пишу. Просто здесь самая подходящая для меня компания. На все вопросы по crackme я отвечу завтра (скорее всего). Будет очередной запой с друзьями. :( :( |
Первый пароль: 131313
Второй пароль: 132132652 @ |
Вписывать с пробелом и собакой если кто не понял)
PS Из всех выложенных здесь крякмисов этот пожалуй самый оригинальный, так, что молодец ТАНА. |
Нда, я и не заметил этот адрес :( Хотя по импорту смотрю и думаю, что раз есть импорт MessageBoxA, значит и вызываться откуда-то должно.
|
Юзай Alt-M в ольке, в секции кода небыло MessageBox(и зашифрованных участков кода тоже, где бы он мог быть), значит он был вынесен в другую секцию, вообще лучше было бы если бы TANA вынес его в секцию .data например или хотя бы назвал ту секцию в которой он был не так навязчиво - TEXT2, а то сразу в глаза бросается.
|
второй пасс - переполнение
формат: AAAABBBBCCCC A- нормальные байты B- перезатрка ebp С - перезатирка eip (+перезапись адреса нулем, но в нашем случае неопасно, а скорее преднамеренно) CCCC меняем на 00402034 - адрес начала ф-ии с месагбоксом. получаем строку "AAAABBBB4 @A" вводим и получаем "Молодец - Да Нет Справка" :D |
Смотрим, что в конце функции такой код:
00401122 |> 83C4 04 ADD ESP,4 00401125 |. 5D POP EBP 00401126 |. 90 NOP 00401127 \. C2 0400 RETN 4 Это говорит о том, что при выходе из функции адрес возврата будет находится по адресу esp+8, поидее, если бы там дальше юзался ebp то прога бы упала, т.к. он затирается и мы не в силах это изменить, ну а т.к. там дальше никаких локальных переменных нет, то можно спокойно первые 8 байт вставлять какими угодно, а вот остальные 4 должны формировать адресс возврата, после символ должен быть нулём, т.е. нам надо вписать только 3 символа, что и было сделано. sn0w это называется не затирка eip, а адресс возврата при retn он берётся с верхушки стека, т.е. из [esp]. |
Начало функции 403032
|
| Время: 13:07 |