Решение c0nfig - BrainHack

Сложность: 2 - Needs a little brain (or luck)
Платформа: Windows
Язык: Borland Delphi
Дано: BrainHack


Our task:
Find secret password. (Gold Medal)

Rules:
Brtueforce allowed (Writing Bruteforcer = Silver Medal :P)
Allowed to patch only one line of code
but not allow to patch anything from 000C6191 to 000C61C3

Решение (автор Rain[Cls])
опубликовано 23.02.2012


Инструменты: Resource Hacker

Если запустить brainhack.exe, то приложение предупреждает, что задачку надо решить за 35 секунд.

image00.jpg

Второе, в самом приложении мы не обнаружим поля ввода (EditBox) или чего-то подобного для указания пароля.

image02.jpg

Открываем приложение в Resource Hacker…
И ищем тот самый EditBox, где вводить надо пароль.



Согласно постановки задачи, нам разрешено патчить программу, за исключением адресов. В Resoruce Hacker изменяем значение свойства с False на True и жмем кнопку “Compile Script”, далее сохраняем изменения в исполняемом файле (меню File -> Save).

И теперь мы видим окно поля ввода:

image03.jpg

Теперь нужно найти действие, по которому проверяется наш пароль. Если обратиться еще раз к Resoruce Hacker, то найдем вот что:



И снова запускаем программу, вводим пароль (любой) и двойной клик по надписи “:::: C0n[F1]G.inf BrainHack Crackme ::::”. Ничего НЕ ПРОИЗОШЛО. Теперь грузим OllyDbg, и повторяем действия.



Здесь два варианта: отредактировать текст надписи (“:::: C0n[F1]G.inf BrainHack Crackme ::::”, убрать начальные двоеточия), либо инструкцию “je short exit” пропатчить NOP.



Продолжаем анализ…



Предвычисленный хэш того пароля, который мы должны найти:
69760F818DDDE41CA42AE513DD7CD2F90FDCEB20772E0C9D240C75EB26B0E37ABEE =
69760F818DDDE41CA42AE513DD7CD2F90 + FD + CEB20772E0C9D240C75EB26B0E37ABEE
хэш(неизвестный пароль) + 0xFD + хэш(“salt”)


Псевдокод алгоритма защиты:



Данный код невозможно отреверсить в обратную сторону, чтобы найти пароль…… :(
Но, пароль есть. Его надо только найти. Хорошо, если снова открыть приложение в Resource Hacker мы увидим странную иконку .. (Icon NUmber 9). Сохраним эту иконку на диск (Menu / Action / Save [ Icon 9 : 1049 ]) и откроем в Hex редакторе… Поиск в "недрах" иконки дает результаты:

ZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Secret located in icon
!!!!!HERE!!!!!
Password: Bg**sIoZNc10
ZZZZZZZZZZZZZZZZZZZZZZZZZZZ

Решение:
1. Патчим ресурсы crackme, чтобы увидеть окно поля ввода:
object Edit1: TEdit
Visible = True
2. Патчим одну строку по адресу 000C62CE (смещение 00556СE от начала файла):
инструкцию “je short exit” пропатчить NOP (74 05 -> 90 90)
3. Запускаем программу, вводим пароль Bg**sIoZNc10 и двойной клик по надписи (конечно, успеть надо за 35 секунд)

image01.jpg

Пока не указано иное, содержимое этой страницы распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 License