eXeL@B —› Вопросы новичков —› исследование простого крэкми |
Посл.ответ | Сообщение |
|
Создано: 03 сентября 2016 14:45 · Поправил: kolbaska · Личное сообщение · #1 Привет, помогите, пожалуйста, в исследовании crackme: https://tuts4you.com/download.php?view.2151 ? Продвинулся я не далеко: Проверил, какая ошибка выдается при указании неверного кода - "Invalid key" Через IDA поискал совпадения ASCII текста - нашлось 4 места. Открыл этот крэкми через OllyDbg, наставил брейкпоинты на 3 места, которые явно указывают на показ MessageBoxA_0. Остановка произошла на точке 0045C6B8 Через Олли посмотрел откуда происходит переход: 0045C5B2 0F85 00010000 JNZ Crackme_.0045C6B8 Если поставить брейкопоинт на строку выше, то тоже останавливается, когда вводишь произвольный ключ: 0045C5AF 83F8 0F CMP EAX,0F Так понял, что тут это сравнение нужно, чтобы в ZF получить 1 и не переходить по JNZ. В противном случае нас переносит в 0045C6B8 на сообщение "Invalid key". Чтобы миновать это JNZ меняю либо EAX на 0F, тогда сравнение проходит и ZF становится равен 1, либо уже на следующей строке, просто меняю сам флаг ZF на 1. Сорри за подробности, я еще просто супернуб. Дальше видим: 0045C5B8 . 8B86 68030000 MOV EAX,DWORD PTR DS:[ESI+368] <--можете, пожалуйста, пояснить эту строчку? 0045C5BE . E8 EDFFFDFF CALL Crackme_.0043C5B0 Следующий переход (что тут происходит уже не понятно. Зачем помещать в стек 0? зачем делать XOR(в этот момент значение ECX=73ADBEE0)чтобы обнулить ECX? Для чего тут делать MOV EDX,0E ? ): 0043C5B0 /$ 6A 00 PUSH 0 ; /Arg1 = 00000000 0043C5B2 |. 33C9 XOR ECX,ECX ; | 0043C5B4 |. BA 0E000000 MOV EDX,0E ; | 0043C5B9 |. E8 66130000 CALL Crackme_.0043D924 ; \Crackme_.0043D924 Следующий переход это уже совсем темный лес(на 0043D924): 0043D924 /$ 55 PUSH EBP 0043D925 |. 8BEC MOV EBP,ESP 0043D927 |. 83C4 F0 ADD ESP,-10 0043D92A |. 53 PUSH EBX 0043D92B |. 8955 F0 MOV DWORD PTR SS:[EBP-10],EDX 0043D92E |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX 0043D931 |. 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] 0043D934 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX 0043D937 |. 33D2 XOR EDX,EDX 0043D939 |. 8955 FC MOV DWORD PTR SS:[EBP-4],EDX 0043D93C |. 85C0 TEST EAX,EAX 0043D93E |. 74 0B JE SHORT Crackme_.0043D94B 0043D940 |. 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10] 0043D943 |. 8BD8 MOV EBX,EAX 0043D945 |. 8B43 3C MOV EAX,DWORD PTR DS:[EBX+3C] 0043D948 |. FF53 38 CALL DWORD PTR DS:[EBX+38] 0043D94B |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0043D94E |. 5B POP EBX 0043D94F |. 8BE5 MOV ESP,EBP 0043D951 |. 5D POP EBP 0043D952 \. C2 0400 RETN 4 Если ставлю брейкпоинт на 0043D924 или на 0043D93E или на 0043D948, то остановки начинают происходить ,вообще, до ввода неверного ключа. Пока это все. |
|
Создано: 03 сентября 2016 15:28 · Поправил: gajemuxi · Личное сообщение · #2 |
|
Создано: 13 сентября 2016 22:14 · Личное сообщение · #3 |
|
Создано: 13 сентября 2016 23:48 · Поправил: dosprog · Личное сообщение · #4 |
|
Создано: 13 сентября 2016 23:48 · Личное сообщение · #5 Крэкми врядли для совсем уж новичков, проверка начинается здесь: 0045C588 Смотря какие Вы ранее крэкми решили, рекомендую взять что-то попроще. ----- все багрепорты - в личные сообщения | Сообщение посчитали полезным: kolbaska |
|
Создано: 14 сентября 2016 02:40 · Поправил: dosprog · Личное сообщение · #6 HandMill пишет: рекомендую взять что-то попроще. Да не надо вообще этим онанизмом заниматься. Вкратце, примочка напоминает процедуру расшифровки функционала в ..одной популярной программе, только тут код расшифровывается не "на месте", как у той, а в другое место, где и выполняется. Ту ..популярную программу нормально удалось побороть, имея утёкшие валидные ключи к поза-прошлой её версии, и, соответственно, рашифрованную в памяти оригинальную процедуру функционала. (Хотя кейгенили её, вполне круто, - но так и не закейгенили до конца верно). Так и здесь. Только тут имеется подсказка по трём символам ключа из пятнадцати (для предварительного контроля правильности расшифровки кода) - ключ должен выглядеть как-то так: /***F****A***** (вместо '*' - символы ключа). По этой строчке и ксорится тупо исполняемый код. Если код расксорен неверно, то исключение при попытке его выполнения обрабатывается прыжком: 0045C699 E9 6678FAFF JMP 00403F04 c показом бокса "Invalid key". В общем, фигня это всё. Задача считай что нерешаемая. Тем более, для фуфловой заморочки. Говорю, пускай софт нормальный составляют, а не веселят публику. --Добавлено-- | Сообщение посчитали полезным: kolbaska |
|
Создано: 14 сентября 2016 08:12 · Личное сообщение · #7 Ключ /!FOFF-TEAM#1!\ kolbaska, для первых опытов лучше взять что-нибудь попроще. Если сами не смогли выйти на процедуру 45C588, то вряд ли у вас получится угадать/предположить, хотя бы приблизительно, что должно быть после ксора. | Сообщение посчитали полезным: kolbaska |
|
Создано: 14 сентября 2016 09:35 · Поправил: dosprog · Личное сообщение · #8 А вот уже вполне решаемая задача, тоже из некротемы: Поборовший получает в качестве приза крутой олдскульный редактор текстов (WIN32 GUI & CMD версию). Только не надо уподобляться китайцам и вываливать решение. | Сообщение посчитали полезным: script_kidis |
|
Создано: 14 сентября 2016 12:16 · Личное сообщение · #9 |
|
Создано: 14 сентября 2016 12:16 · Поправил: dosprog · Личное сообщение · #10 |
|
Создано: 20 сентября 2016 20:49 · Личное сообщение · #11 |
|
Создано: 21 сентября 2016 01:09 · Поправил: dosprog · Личное сообщение · #12 script_kidis пишет: можно сколько угодно переустанавливать. Да. Но тогда теряются настройки. Единственный напряг с нерегистрированной версией это именно необходимость её переустанавливать раз в два месяца. И, кроме того, раз в пол-часа при работе вылазит наг с предложением зарегистрироваться. Но он, в принципе, не мешает, убирается по <ESC>. Я вот в паре мест себе этот редактор установил, в оригинальном виде, на чужих машинах. Это тот случай, когда у крутой софтины и защита выбрана оптимально. script_kidis пишет: как выйти на текст наг скрина я так понял он расшифровывается В этом редакторе даже стартовый наг-скрин не мешает. Стартовое окно по-любому у него выводится, если не заданы аргументы. Всё сделано очень со вкусом, да. Концепция редактора такова, что сам EXE файл представляет из себя движок для откомпилированных макросов. Абсолютно всё в интерфейсе реализовано в нём с помощью этого самого макро-языка. Этим он похож на Multi-Edit, концепция та же. Виртуальная машина.. Только в ME разработчики поспокойней относятся к сорсам стандартных макросов, распространяют в дистрибутиве. С TSE стандартные макросы в виде сорсов не поставляются. Это недостаток. В макросы они засунули и защиту. Добавлю, что как-то так получилось, что макро-декомпиляторов не было на паблике ни для ME, ни для TSE. Хотя, у кого-то они были и есть сейчас. |
eXeL@B —› Вопросы новичков —› исследование простого крэкми |