|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|
Crackme: реверс-инжиниринг18.06.2026, 13:19. Показов 29810. Ответов 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
Ошибка приложения в простом коде, реверс строки Функция и реверс строки |
|
844 / 353 / 68
Регистрация: 20.11.2012
Сообщений: 852
|
||
| 27.06.2026, 10:46 | ||
|
Против аппаратных бряков сбрасывать отладочные регистры через чтение/запись контекста потока (в Windows). Против Memory Breakpoints - принудительно сбрасывать атрибуты страницы памяти с буфером до RW перед работой с ним. (Лучше дергать сброс прав и контекста через прямые сисколы, или хотя бы Nt* чтобы обойти API-хуки отладчика). p.s. Нужно понимать, что все эти ухищрения ("странная" работа с памятью) часто агрят эвристику антивируса.
0
|
||
|
216 / 64 / 7
Регистрация: 05.10.2023
Сообщений: 565
|
|
| 27.06.2026, 21:59 | |
|
Вот вот, я сидел пол ночи, это называется MurMurHash по определению ии . Ну и как это взломать за 15 минут.?, ну вот вы то подскажите как это все перебрать?
Добавлено через 48 минут Очень странные стадии с нулями, ау математики вы где? Добавлено через 15 минут Есть такая вещь angr, но что то с простыми crackme у меня не получилось, а вы все молчите....
0
|
|
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|||||||||
| 27.06.2026, 22:53 [ТС] | |||||||||
|
14220824094727305375 но у меня заняло не 15 мин, а больше. Решал систему из 6 уравнений (ранее я про эти 6 проверок уже писал). Человек не может вручную это сделать за 15 мин, так что люди, которые якобы решили за 15 мин просто лжецы. Наверное, они пользовались каким-то крутым ИИ. Никакие они не эксперты RE, а просто клоуны. За 15 мин не сможешь даже просто эти уравнения выписать из дизассемберного листинга. Вот сам код решения системы уравнения, пароль находится мгновенно:
1
|
|||||||||
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|
| 27.06.2026, 23:24 [ТС] | |
|
0
|
|
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
||
| 27.06.2026, 23:43 [ТС] | ||
|
Еще несколько дней назад, я уже писал все 6 проверок: Crackme: реверс-инжиниринг
Но статического анализа недостаточно. каждая проверка из кода выше заканчивается сравнением с числом. Это число можно брать только из отладчика. Например, для первой проверки мы используем сравнение с 0x3371a06200000000И вот для всех проверок нужно взять эти числа в отладчике.
0
|
||
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 27.06.2026, 23:45 | ||
|
Человек, решивший задачу, подал "признаки жизни" (он писал что-то о своих CrackMe, которые публиковал в этом же чате раньше) в чате за 16 минут до публикации своего ответа. То есть логично предположить, что он заглянул в чат, написал свое сообщение, затем увидел мой CrackMe и пошел его решать.
0
|
||
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 27.06.2026, 23:47 | ||
0
|
||
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
||
| 27.06.2026, 23:52 [ТС] | ||
|
Однако, все же пока я выписал все 6 проверок из диззасемблерного листинга и еще нашел значения для сравнения в отладчике, у меня уже глаза кровоточили. Код для Z3 для меня написала нейросеть, я лишь кинул просто все 6 проверок и 6 чисел, взятых во время отладки. Но все равно не верится, что всё это можно за 15 мин делать. Ну разве что, если этот чел уже сталкивался с очень похожим заданием.
0
|
||
|
Software Engineer
338 / 343 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 27.06.2026, 23:58 | ||
|
0
|
||
| 28.06.2026, 00:55 | |||
|
- "содержательные" ф-ции (OnPassChar и OnDoPassword) унести подальше, во всяком случае в др единицу трансляции (а не члены того же класса). Сидеть там тихо как мыша, никакого API не звать. Получил character (может лучше передать еще и индекс), сделал xor, записал в контейнер - и все. Нужно больше - передал опять post event/message. - поместить все вызовы в обработчик нажатия кнопки (там в первую очередь будут копать) - значит "нарываться". Лучше пристроить вызовы post в готовые сигналы/события, напр eventFilter, вызов валидатора и др. Можно и сам код (напр в пересчет layout'а) - зашланговаться - святое дело, по нажатию кнопки простецки проверять хеш (как делал товарищ выше), пусть думает что сломал Очевидный вариант - размножить в больших количествах и потом прочитать случайно выбранную. И какая-то совсем уж идиотская мысль: сделать каждую цифру/символ счетчиком контейнера, уповая на то что он вычисляется, а не хранится В любом случае идея такой защиты скрыть проверочный код используя обильную UI либу
0
|
|||
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|
| 28.06.2026, 01:33 [ТС] | |
|
Igor3D, чтобы запутать, можно создать фейковые строки "Password incorrect", "Password correct", пр., xref ↑ которых приведут к фейковым сравнениям с участием введенного пароля.
Ведь, очень часто анализ начинают с поиска string references.
0
|
|
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|
| 28.06.2026, 11:08 [ТС] | |
|
Igor3D, кстати, я создал файл сигнатур FLIRT из *.a-файлов wxWidgets для IDA Pro. Использовал pcf.exe и sigmake.exe.
Всё работает, но все равно, на мой взгляд, анализировать приложение на wxWidgets, собранное статически и без отладочной инфы, в разы сложнее, чем приложение на Qt или чистом WinAPI. wxWidgets сам по себе неплохо усложняет задачу по RE. wxWidgets-статик я сам собираю и если дефолтно даже в релизной версии есть минимальная отладочная инфа, то я и это удаляю, чтобы приложение меньше весило. А вот Qt-статик ни разу не собирал, поэтому ничего про него не скажу.
0
|
|
|
Заблокирован
|
|
| 28.06.2026, 12:47 | |
|
0
|
|
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|
| 28.06.2026, 14:17 [ТС] | |
|
0
|
|
|
Заблокирован
|
|
| 28.06.2026, 14:20 | |
|
Вот. MSVC x64 Release.
p.s. меня за название файла не забанят? Как-то не подумал...
1
|
|
| 28.06.2026, 14:35 [ТС] | |
|
0
|
|
| 28.06.2026, 14:51 | |
|
0
|
|
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
|
| 28.06.2026, 15:05 [ТС] | |
|
RabbitAttaks, у тебя случайно не остались lib / dll файлы от Qt 5.12.12 ?
Интересуют эти файлы: Qt5Core Qt5Gui Qt5Widgets Желательно *.lib файлы (которые ты использовал при сборке), а если их нет, то *.dll RabbitAttaks, если не остались, то ничего. Я скачаю из https://www.dllme.com/dll/files/qt5core/versions Там есть все версии.
0
|
|
|
Заблокирован
|
|
| 28.06.2026, 15:06 | |
|
0
|
|
|
6770 / 3135 / 1065
Регистрация: 01.06.2021
Сообщений: 12,172
|
||
| 28.06.2026, 15:30 [ТС] | ||
|
dll файлы не подходят, поскольку там только таблица импорта. А с помощью Qt maintenance tool можно ставить как раз только dll-файлы, причем лишь версии 5.15 и выше. Там есть и lib файлы, но это другие lib-файлы (импортные библиотеки - заглушки-ссылки на dll), не те, что мне нужно. Мне нужны статические библиотеки lib.
0
|
||
| 28.06.2026, 15:30 | |
|
Реверс слов в строке
Реверс элементов массива реверс строки Реверс масива по строках. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
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. А теперь человек произносит «мастдай» с усмешкой - и. . .
|