|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|
Crackme: реверс-инжиниринг18.06.2026, 13:19. Показов 23491. Ответов 278
Метки нет (Все метки)
В архиве 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 | |
|
Ответы с готовыми решениями:
278
Ошибка приложения в простом коде, реверс строки Функция и реверс строки |
|
844 / 353 / 68
Регистрация: 20.11.2012
Сообщений: 852
|
||
| 27.06.2026, 10:46 | ||
|
Против аппаратных бряков сбрасывать отладочные регистры через чтение/запись контекста потока (в Windows). Против Memory Breakpoints - принудительно сбрасывать атрибуты страницы памяти с буфером до RW перед работой с ним. (Лучше дергать сброс прав и контекста через прямые сисколы, или хотя бы Nt* чтобы обойти API-хуки отладчика). p.s. Нужно понимать, что все эти ухищрения ("странная" работа с памятью) часто агрят эвристику антивируса.
0
|
||
|
215 / 61 / 7
Регистрация: 05.10.2023
Сообщений: 542
|
|
| 27.06.2026, 21:59 | |
|
Вот вот, я сидел пол ночи, это называется MurMurHash по определению ии . Ну и как это взломать за 15 минут.?, ну вот вы то подскажите как это все перебрать?
Добавлено через 48 минут Очень странные стадии с нулями, ау математики вы где? Добавлено через 15 минут Есть такая вещь angr, но что то с простыми crackme у меня не получилось, а вы все молчите....
0
|
|
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|||||||||
| 27.06.2026, 22:53 [ТС] | |||||||||
|
14220824094727305375 но у меня заняло не 15 мин, а больше. Решал систему из 6 уравнений (ранее я про эти 6 проверок уже писал). Человек не может вручную это сделать за 15 мин, так что люди, которые якобы решили за 15 мин просто лжецы. Наверное, они пользовались каким-то крутым ИИ. Никакие они не эксперты RE, а просто клоуны. За 15 мин не сможешь даже просто эти уравнения выписать из дизассемберного листинга. Вот сам код решения системы уравнения, пароль находится мгновенно:
1
|
|||||||||
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|
| 27.06.2026, 23:24 [ТС] | |
|
0
|
|
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
||
| 27.06.2026, 23:43 [ТС] | ||
|
Еще несколько дней назад, я уже писал все 6 проверок: Crackme: реверс-инжиниринг
Но статического анализа недостаточно. каждая проверка из кода выше заканчивается сравнением с числом. Это число можно брать только из отладчика. Например, для первой проверки мы используем сравнение с 0x3371a06200000000И вот для всех проверок нужно взять эти числа в отладчике.
0
|
||
|
Software Engineer
338 / 342 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 27.06.2026, 23:45 | ||
|
Человек, решивший задачу, подал "признаки жизни" (он писал что-то о своих CrackMe, которые публиковал в этом же чате раньше) в чате за 16 минут до публикации своего ответа. То есть логично предположить, что он заглянул в чат, написал свое сообщение, затем увидел мой CrackMe и пошел его решать.
0
|
||
|
Software Engineer
338 / 342 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
|
||
| 27.06.2026, 23:47 | ||
0
|
||
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
||
| 27.06.2026, 23:52 [ТС] | ||
|
Однако, все же пока я выписал все 6 проверок из диззасемблерного листинга и еще нашел значения для сравнения в отладчике, у меня уже глаза кровоточили. Код для Z3 для меня написала нейросеть, я лишь кинул просто все 6 проверок и 6 чисел, взятых во время отладки. Но все равно не верится, что всё это можно за 15 мин делать. Ну разве что, если этот чел уже сталкивался с очень похожим заданием.
0
|
||
|
Software Engineer
338 / 342 / 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
|
|||
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|
| 28.06.2026, 01:33 [ТС] | |
|
Igor3D, чтобы запутать, можно создать фейковые строки "Password incorrect", "Password correct", пр., xref ↑ которых приведут к фейковым сравнениям с участием введенного пароля.
Ведь, очень часто анализ начинают с поиска string references.
0
|
|
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|
| 28.06.2026, 11:08 [ТС] | |
|
Igor3D, кстати, я создал файл сигнатур FLIRT из *.a-файлов wxWidgets для IDA Pro. Использовал pcf.exe и sigmake.exe.
Всё работает, но все равно, на мой взгляд, анализировать приложение на wxWidgets, собранное статически и без отладочной инфы, в разы сложнее, чем приложение на Qt или чистом WinAPI. wxWidgets сам по себе неплохо усложняет задачу по RE. wxWidgets-статик я сам собираю и если дефолтно даже в релизной версии есть минимальная отладочная инфа, то я и это удаляю, чтобы приложение меньше весило. А вот Qt-статик ни разу не собирал, поэтому ничего про него не скажу.
0
|
|
|
24 / 21 / 3
Регистрация: 07.06.2026
Сообщений: 120
|
|
| 28.06.2026, 12:47 | |
|
0
|
|
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|
| 28.06.2026, 14:17 [ТС] | |
|
0
|
|
|
24 / 21 / 3
Регистрация: 07.06.2026
Сообщений: 120
|
|
| 28.06.2026, 14:20 | |
|
Вот. MSVC x64 Release.
p.s. меня за название файла не забанят? Как-то не подумал...
1
|
|
| 28.06.2026, 14:35 [ТС] | |
|
0
|
|
| 28.06.2026, 14:51 | |
|
0
|
|
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
|
| 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
|
|
|
24 / 21 / 3
Регистрация: 07.06.2026
Сообщений: 120
|
|
| 28.06.2026, 15:06 | |
|
0
|
|
|
6315 / 3039 / 1055
Регистрация: 01.06.2021
Сообщений: 11,587
|
||
| 28.06.2026, 15:30 [ТС] | ||
|
dll файлы не подходят, поскольку там только таблица импорта. А с помощью Qt maintenance tool можно ставить как раз только dll-файлы, причем лишь версии 5.15 и выше. Там есть и lib файлы, но это другие lib-файлы (импортные библиотеки - заглушки-ссылки на dll), не те, что мне нужно. Мне нужны статические библиотеки lib.
0
|
||
| 28.06.2026, 15:30 | |
|
Реверс слов в строке
Реверс элементов массива реверс строки Реверс масива по строках. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|