Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   не совсем мой crackme (https://forum.antichat.xyz/showthread.php?t=22925)

taha 21.08.2006 13:49

не совсем мой crackme
 
Недавно сидел над парой crackme. Почерпнул для себя кое-что новое.
Решил их объединить.И получилось вот что http://slil.ru/23040639/1212340730/CrackMeT.rar.
Писал на MASM, поэтому там всё будет ясно. Мусорить я почти не стал (лень ;) ), антиотладки нет (лень ;) ). CrackMe достаточно простой, зачем было упираться всё равно крякнете.
Хотя если вам понравится можно всё это добавить.
Просто пара интересных (на мой взгляд) приёмов.
CrackMeT.exe - 3,55 Kb.
CrackMeT.rar - 1,00 Kb
Нужно подобрать два пароля и вылетит MessageBox.

Ra$cal 21.08.2006 14:25

Нда, ну и крякми. Ща чуток осталось. Придумать :) Первый пасс 131313, так как после вычитания константы получим WM_GETTEXT
Теперь осталось придумать 0xC байт, чтобы они образовали вызов MessageBox с кэпшэном Сообщение, и текстом Молодец

taha 21.08.2006 14:36

Да первый пасс 131313. Со вторым пришлось повозиться. На практике с переполнением ещё не связывался (все примеры на сях :( ). В crackme это редкость. Ещё лёгкий для превращения в ASC|| адрес трудно было подобрать.
Спасибо на добром слове ;) .
Кстати завтра вечером уезжаю в Питер. Я поступил в институт. Комп и инет не знаю когда будут. Ищу друзей. Извините что здесь пишу. Просто здесь самая подходящая для меня компания.
На все вопросы по crackme я отвечу завтра (скорее всего).
Будет очередной запой с друзьями. :( :(

BUG(O)R 21.08.2006 14:56

Первый пароль: 131313
Второй пароль: 132132652 @

BUG(O)R 21.08.2006 14:56

Вписывать с пробелом и собакой если кто не понял)

PS Из всех выложенных здесь крякмисов этот пожалуй самый оригинальный, так, что молодец ТАНА.

Ra$cal 21.08.2006 15:29

Нда, я и не заметил этот адрес :( Хотя по импорту смотрю и думаю, что раз есть импорт MessageBoxA, значит и вызываться откуда-то должно.

BUG(O)R 21.08.2006 16:51

Юзай Alt-M в ольке, в секции кода небыло MessageBox(и зашифрованных участков кода тоже, где бы он мог быть), значит он был вынесен в другую секцию, вообще лучше было бы если бы TANA вынес его в секцию .data например или хотя бы назвал ту секцию в которой он был не так навязчиво - TEXT2, а то сразу в глаза бросается.

sn0w 21.08.2006 18:50

второй пасс - переполнение
формат: AAAABBBBCCCC
A- нормальные байты
B- перезатрка ebp
С - перезатирка eip (+перезапись адреса нулем, но в нашем случае неопасно, а скорее преднамеренно)

CCCC меняем на 00402034 - адрес начала ф-ии с месагбоксом.

получаем строку "AAAABBBB4 @A"
вводим и получаем "Молодец - Да Нет Справка" :D

BUG(O)R 21.08.2006 19:12

Смотрим, что в конце функции такой код:

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].

BUG(O)R 21.08.2006 19:13

Начало функции 403032


Время: 13:07