Сейчас на форуме: tyns777, cppasm, dutyfree, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› исследование простого крэкми
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 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, то остановки начинают происходить ,вообще, до ввода неверного ключа.

Пока это все.



Ранг: 10.2 (новичок), 7thx
Активность: 0.020
Статус: Участник

Создано: 03 сентября 2016 15:28 · Поправил: gajemuxi
· Личное сообщение · #2

Ты сам на большинство своих вопросов ответил.
Если ставлю брейкпоинт на 0043D924 или на 0043D93E или на 0043D948, то остановки начинают происходит вообще до ввода неверного ключа.
Не возникает мысли, что этот код реально ДО вызывается?



Ранг: 0.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 сентября 2016 22:14
· Личное сообщение · #3

Ну да, это понятно, что код вызывается еще до появления окна...
Ребзи, помогите, пожалуйста? Куда дальше смотреть?

\
Я думал, что для большинства здесь, такой крэкми на раз-два. Как два пальца об асфальт
Или все-таки этот крэкми не такой простой? и стоит начать с крэкми попроще?

Спасибо.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 13 сентября 2016 23:48 · Поправил: dosprog
· Личное сообщение · #4

Смотри процедуру .45С588.

Делать ото ещё нечего, битоверчение это паскалевское разбирать.
Пускай нормальные, полезные программы составляют, а не заморочки на пол-мегабайта.





Ранг: 222.2 (наставник), 115thx
Активность: 0.140.01
Статус: Участник

Создано: 13 сентября 2016 23:48
· Личное сообщение · #5

Крэкми врядли для совсем уж новичков, проверка начинается здесь:
0045C588
Смотря какие Вы ранее крэкми решили, рекомендую взять что-то попроще.

-----
все багрепорты - в личные сообщения


| Сообщение посчитали полезным: kolbaska

Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 14 сентября 2016 02:40 · Поправил: dosprog
· Личное сообщение · #6

HandMill пишет:
рекомендую взять что-то попроще.


Да не надо вообще этим онанизмом заниматься.

Вкратце, примочка напоминает процедуру расшифровки функционала в ..одной популярной программе,
только тут код расшифровывается не "на месте", как у той, а в другое место, где и выполняется.
Ту ..популярную программу нормально удалось побороть, имея утёкшие валидные ключи к поза-прошлой её версии, и, соответственно, рашифрованную в памяти оригинальную процедуру функционала. (Хотя кейгенили её, вполне круто, - но так и не закейгенили до конца верно).
Так и здесь.
Только тут имеется подсказка по трём символам ключа из пятнадцати (для предварительного контроля правильности расшифровки кода)
- ключ должен выглядеть как-то так:
/***F****A*****
(вместо '*' - символы ключа).
По этой строчке и ксорится тупо исполняемый код.
Если код расксорен неверно, то исключение при попытке его выполнения обрабатывается прыжком:
0045C699 E9 6678FAFF JMP 00403F04
c показом бокса "Invalid key".

В общем, фигня это всё. Задача считай что нерешаемая. Тем более, для фуфловой заморочки.
Говорю, пускай софт нормальный составляют, а не веселят публику.



--Добавлено--
Была уже эта тема с десяток лет назад.



| Сообщение посчитали полезным: kolbaska

Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 14 сентября 2016 08:12
· Личное сообщение · #7

Ключ /!FOFF-TEAM#1!\
kolbaska, для первых опытов лучше взять что-нибудь попроще. Если сами не смогли выйти на процедуру 45C588, то вряд ли у вас получится угадать/предположить, хотя бы приблизительно, что должно быть после ксора.

| Сообщение посчитали полезным: kolbaska

Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 14 сентября 2016 09:35 · Поправил: dosprog
· Личное сообщение · #8

А вот уже вполне решаемая задача, тоже из некротемы: --> Тут <--

Поборовший получает в качестве приза крутой олдскульный редактор текстов (WIN32 GUI & CMD версию).
Только не надо уподобляться китайцам и вываливать решение.



| Сообщение посчитали полезным: script_kidis


Ранг: 56.2 (постоянный), 14thx
Активность: 0.120
Статус: Участник

Создано: 14 сентября 2016 12:16
· Личное сообщение · #9

dosprog такого установщика мои глаза еще не видели))) порадовал и поднял настроение на весь день только этим



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 14 сентября 2016 12:16 · Поправил: dosprog
· Личное сообщение · #10

Прога реально крутая. Культовая, можно сказать.






Ранг: 56.2 (постоянный), 14thx
Активность: 0.120
Статус: Участник

Создано: 20 сентября 2016 20:49
· Личное сообщение · #11

dosprog а как выйти на текст наг скрина я так понял он расшифровывается при запуске хотел его затереть.+ от вечного триала она не защищена,можно сколько угодно переустанавливать.



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 21 сентября 2016 01:09 · Поправил: dosprog
· Личное сообщение · #12

script_kidis пишет:
можно сколько угодно переустанавливать.


Да. Но тогда теряются настройки.
Единственный напряг с нерегистрированной версией это именно необходимость её переустанавливать раз в два месяца.

И, кроме того, раз в пол-часа при работе вылазит наг с предложением зарегистрироваться. Но он, в принципе, не мешает, убирается по <ESC>.

Я вот в паре мест себе этот редактор установил, в оригинальном виде, на чужих машинах.

Это тот случай, когда у крутой софтины и защита выбрана оптимально.

script_kidis пишет:
как выйти на текст наг скрина я так понял он расшифровывается


В этом редакторе даже стартовый наг-скрин не мешает.
Стартовое окно по-любому у него выводится, если не заданы аргументы.
Всё сделано очень со вкусом, да.



Концепция редактора такова, что сам EXE файл представляет из себя движок для откомпилированных макросов.
Абсолютно всё в интерфейсе реализовано в нём с помощью этого самого макро-языка.
Этим он похож на Multi-Edit, концепция та же. Виртуальная машина..

Только в ME разработчики поспокойней относятся к сорсам стандартных макросов, распространяют в дистрибутиве.
С TSE стандартные макросы в виде сорсов не поставляются. Это недостаток.
В макросы они засунули и защиту.

Добавлю, что как-то так получилось, что макро-декомпиляторов не было на паблике ни для ME, ни для TSE.
Хотя, у кого-то они были и есть сейчас.




 eXeL@B —› Вопросы новичков —› исследование простого крэкми
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати