|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|
Crackme: реверс-инжиниринг18.06.2026, 13:19. Показов 29842. Ответов 279
Метки нет (Все метки)
В архиве 10 exe-файлов - консольных приложений, каждое из которых запрашивает пароль. Цель в том, чтобы найти и ввести правильный пароль, после чего получить сообщение Password OK!
Приложения созданы не мной, а неким IOLI. Приложения 32-битные, что тоже упрощают работу. Приложения закрываются после выполнения, поэтому запускайте из cmd. Собственно, вы можете использовать любой удобный вам инструмент: IDA Pro, Ghidra, Cutter, x32dbg и т.д. Т.е. можно как статически анализировать, а можно запустить отладчик и анализировать динамически. Поскольку не будет вывода секретного сообщения при правильном вводе пароля и заранее известно, что выведется лишь Password OK!, то не вижу смысла в использовании всяких трюков, чтобы обойти проверку пароля всякими jmp и прочими инструкциями. Лучше тренироваться именно в поиске пароля, а не в его обходе. Топовые декомпиляторы в простых случаях сразу отображают пароль, поэтому в таких случаях, чтобы было интересно, предлагаю все равно попробовать самостоятельно найти пароль, анализировав дизассемблерный код. Что я имею в виду? Например, если открыть crackme0x03.exe в IDA Pro, то после декомпиляции мы сразу увидим пароль: Декомпилятор Ghidra тоже сразу показывает пароль (в hex): Чтобы было интересно, в таких простых случаях можно перейти в дизассемблерный вид и попытаться найти пароль самостоятельно: Например, вот как выглядит это окно в IDA Pro. Я там специально добавил комментарии к некоторым строкам и разъяснил, как вычисляется этот пароль (но есть одна опечатка в одном комменте 528 вместо 582). Для новичков в IDA Pro есть фича Auto Comments, которая включается в настройках. Но честно говоря, она мне не очень нравится. В Cutter автокомментирование инструкций работает, имхо, лучше. Поэтому новичкам будет проще в Cutter самостоятельно разбирать логику вычисления пароля. Как видно на скриншоте, Cutter может автоматически комментировать каждую строчку, что довольно удобно: Еще Cutter хорош тем, что на выбор там два декомпилятора, один из которых это декомпилятор от Ghidra (вполне неплохая альтернатива платного от Hex-Rays в IDA Pro). Собственно, этот же декомпилятор можно использовать и в самой Ghidra, но там нет автокомментирования. *** В crackme0x04.exe пароль сразу не виден после декомпиляции. Но и там нет ничего сложного, просто переходим в функцию check и сразу становится ясно, что на самом деле данное приложение принимает не один правильный пароль, а их может быть несколько. Т.е. любое число, где сумма цифр введенного числа равна 15. crackme0x05.exe очень похож на предыдущее задание, только нужно еще вспомнить, как определяют четность чисел с помощью побитового AND. *** Короче, если вам скучно и не знаете, чем заняться, то можете поиграться с этими файлами и ознакомиться с основами реверс-инжиниринга.
0
|
|
| 18.06.2026, 13:19 | |
|
Ответы с готовыми решениями:
279
Ошибка приложения в простом коде, реверс строки Функция и реверс строки |
|
640 / 404 / 68
Регистрация: 09.03.2016
Сообщений: 4,425
|
||
| 23.06.2026, 13:22 | ||
|
Что ты такого собрался сделать в этой сфере что бы принести пользу миру. Хоть самому себе. Люди написавшие приложение герои, а ты, и ещё толпа тебе подобных, как бы уровнем пониже. Добавлено через 5 минут Если я обучившись по книжкам этой всей грамоте, и следуя вашим советам, напишу себе защиту, ни кому не составит труда её легко убрать. Зачем работать?.
0
|
||
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|||
| 23.06.2026, 13:24 [ТС] | |||
|
Так что, это просто альтернативный способ изучить ассемблер в более интересной манере. Сейчас же в эпоху ИИ ни эти задроты, ни их книги не нужны. Если что-то не понимаешь, то ИИ так чётко распишет с примерами, что даже умственно отсталый чел всё сразу поймет.
0
|
|||
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
||
| 23.06.2026, 13:28 | ||
|
Я думаю многим будет интересно...
0
|
||
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|||||||||||||||||||||||||||
| 23.06.2026, 13:38 [ТС] | |||||||||||||||||||||||||||
|
короче, я сам ничего не подозревал вчера. Открываю IDA Pro, а там какой-то красный JUMPOUT. Уже подозревал что-то неладное, но пока еще не знал, что такое. Автор крякми объяснил, что просто IDA типа не смогла правильно декомпилировать. Когда там в коде в регистре AL оказалось магическое число 0x33, то решил дальше поисследовать, что там оно делает. Я еще до того, как нашел пароль, начал подозревать в анти-отладочном механизме https://www.cyberforum.ru/cpp-... st17747837 Оказалось, что 0x33 с формированием пароля не имеет никакого отношения. Манипулируя регистром CS через дальний прыжок можно прыгать между режимами. сегментный регистр CS =0x23 процессор в 32-битном режиме сегментный регистр CS = 0x33 процессор в 64-битном режиме И это магическое число 0x33 как раз было для перехода в 64-битный режим. А прикол был в том, что приложение было 32-битным и оно запускалось только в x32dbg, но с 32-битного отладчика толку не было. Естественно, нужно было запускать 64-битный отладчик. Но x64dbg, очевидно, не работает с 32-битными приложениями. Хз, возможно, есть плагины, с помощью которых он будет работать. Но чистый x64dbg отказывался запускать этот крякми. Наверное, трюк Heaven's Gate был использован, чтобы не использовать x64dbg. *** Я не стал тратить время на анти-анти-отладочные методы, просто взял другой отладчик. Пароль я потом вытащил из регистра R8, который есть только в 64-битном режиме. См. https://learn.microsoft.com/ru... #registers Если кто-то хочет повторить мое решение, то подсказываю, что я ставил брекпойнт на 0x401445- запускаешь приложение - вводишь любой мусорный пароль - тормозишь на 0x401445- смотришь в регистр R8 Т.е. крякми взламывается одним брекпойнтом. С этой задачей справляются многие отладчики, но лично я предпочитаю WinDbg. В IDA Pro можно его тоже выбрать, он есть там в списке. И, кстати, если выбрать этот отладчик, то пароль можно найти и в IDA. Однако, я предпочитаю саму программу WinDbg из Microsoft Store. На первый взгляд, покажется, что фич/кнопочек у него мало, но там его мощь проявляется, когда работаешь с консолью. Это очень крутой отладчик, который в отличие от остальных поддерживает даже режим ядра. Например, в WinDbg, hardware-брекпойнт типа execute с размером 1 ставится командой:
r r8 пишем:
0
|
|||||||||||||||||||||||||||
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 23.06.2026, 14:13 | |
|
сейчас бы сейчас специалиста по расширенному режиму процессору x86 он бы вы дюлей вставил, но я так мимо проходил...
какой еще CS...
0
|
|
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
||
| 23.06.2026, 14:14 [ТС] | ||
|
0
|
||
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 23.06.2026, 14:31 | |
|
это user mode)) какой нахер cs
0
|
|
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|
| 23.06.2026, 14:36 [ТС] | |
|
sporta1982, хочешь сказать, что в user mode (ring 3) нет cs?
0
|
|
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 23.06.2026, 14:39 | |
|
либо я чего то не знаю , как так то
Добавлено через 2 минуты ну я не знаю может за 20 лет чего то изменилось...
0
|
|
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||||
| 23.06.2026, 14:42 | ||||
|
Здесь нюанс немного в другом - каким путем вы к этому syscall придете: ntdll manual mapping, direct syscall по зашитым SSN таблицам под каждую версию винды, direct syscall с парсингом SSN из текущей системной ntdll, и так далее. Все ограничивается лишь больной фантазией того, кто это будет реализовывать. Фактически этот CrackMe был рассчитан на то, чтобы подловить тех, кто привык использовать популярные инструменты типа x64dbg/etc , для которых полно разных anti-anti-debug плагинов для обмана anti-debug детектов, и т.д. Добавив anti-debug трюки можно сломать WinDbg, но так как это базовый CrackMe, то я не стал это делать
0
|
||||
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|
| 23.06.2026, 14:43 [ТС] | |
|
sporta1982, я ж это всё узнал вчера. Как я понял, cs используется и в 64-битном режиме user mode. Но, возможно, я не так понял.
Я читал в инете статьи про Heaven's Gate, там было про cs и селекторы режимов. Но я не утверждаю, что прав.
0
|
|
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 23.06.2026, 14:44 | |
|
каждое приложение в windows работает в своем пространстве, мультизадачность и так далее ... у вас есть 64 бит процессор ... так и рассчитывайте 2^64 бит.
0
|
|
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 23.06.2026, 14:53 | ||
|
1
|
||
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|
| 23.06.2026, 14:56 [ТС] | |
|
0
|
|
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 23.06.2026, 14:57 | |
|
0
|
|
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|||||
| 23.06.2026, 15:02 [ТС] | |||||
|
Добавлено через 3 минуты Мне как начинающему нужна только истина, поэтому если не уверен, то лучше промолчи. из статьи по ссылке Custos
0
|
|||||
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 23.06.2026, 15:06 | ||
|
- В каком privilege level выполняется код (user mode / ring 3 или kernel mode / ring 0) - Какой тип кода сейчас исполняется (32-bit compatibility code или 64-bit long-mode code) - Какие проверки защиты применяются при control transfer (jmp far, call far, iret, exception return, syscall/sysret-переходы и т.д)
0
|
||
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 23.06.2026, 15:06 | |
|
господе вы идею windows знаете? каждый процесс работает в своем адресном пространстве. ну что ерундой то заниматься.
Почитайте про защищённый режим , который появился в процессоре x386. Я здесь неуверенно себя чувствую потому что я в математике ни хрена не понимаю, да и глядя на ваш статус. Да и самооценка у меня так себе....
0
|
|
|
6771 / 3136 / 1065
Регистрация: 01.06.2021
Сообщений: 12,173
|
|||
| 23.06.2026, 15:07 [ТС] | |||
|
Но если и вы подтверждаете мои слова, то не понимаю выпадов эксперта sporta1982
0
|
|||
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||||
| 23.06.2026, 15:11 | ||||
0
|
||||
| 23.06.2026, 15:11 | |
|
Реверс слов в строке
Реверс элементов массива реверс строки Реверс масива по строках. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|