2012-01-27 4 views
2

Это приложение является первой задачей приложения на сайте hackthissite.org.Обратный инженер Простое приложение с IDA Pro 5

Идея состоит в том, чтобы найти серийный номер. Когда вы вводите серийный номер и нажимаете «ОК», он выводит окно сообщения с паролем для вызова, если оно правильно, или сообщение о том, что серийный номер неверен. Чтобы решить проблему, вы должны найти пароль, который находится в открытом тексте в двоичном формате на 0x1670FE.

Я пытался найти IDA Pro, где строка, которую вы вводите, сравнивается с последовательностью в двоичном формате.

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

Я не могу это сделать. Я обнаружил, где отображается окно сообщения (путем поиска Messagebox и добавления точек останова), где он выталкивает адреса строк «Извините» или «Исправить» в стек.

Я попытался добавить точки останова по адресам этих строк и самому Serial, но он не работает. IDA, похоже, не распознает их как строки, они не отображаются в окне жала.

Я также попытался выполнить эту функцию, но я достиг точки, в которой я, похоже, не могу вернуться назад.

Любая помощь, информация или советы были бы весьма полезны. Я действительно хочу знать, как понять эту проблему.

Извините, если это очень простой вопрос.

Спасибо.

+1

Зачем вам размещать ссылку на двоичный файл, который предположительно доступен из более известного источника? – Steve

+0

@paxdiablo - если бы я мог «изменить», вы получили бы мой +1. – Steve

+0

Я предполагаю, что сайт требует регистрации. – iabdalkader

ответ

2

Я не смог решить эту проблему с помощью IDA Pro, поэтому я дал ему возможность использовать Ollydbg.

Установив сериал на что-то вроде «TEST», после нажатия «Аутентификация» я смог найти эту строку в памяти или сам сериал.

Установив точку останова на доступ к последовательной памяти, я смог работать назад и найти функцию сравнения, где она сравнивала две строки.

Через некоторое время он проверяет, превышает ли edx 2 и выполняет скачок. Я установил это безусловным прыжком и через некоторое время, похоже, снова проверит, если строки имеют одинаковую длину, и я тоже всегда задал true.

Теперь программа дает пароль независимо от того, что вы вводите.

Интересно, что существует 5/6 действительных серий, которые, возможно, генерируются из одного в памяти или откуда-то из другого. Когда вы вводите неверный серийный номер, он сравнивает его с каждым из сериальных файлов, пока не найдет совпадение, а затем отобразит окно сообщения для успеха или сбоя.

Жаль, что я не смог найти ответ на этот вопрос в IDA Pro, но я думаю, что ollydbg был лучшим инструментом для работы.

Если я вернусь в МАР и снова посмотрю, я, вероятно, теперь смогу найти чек.

1

Имеются данные, вероятно, вы, возможно, не заметили. Он говорит, что пароль находится в текстовом формате.
Можете ли вы попытаться найти больше о том, как знать строки внутри двоичного кода.
Reverse Engineering не всегда подразумевает открытие с помощью ассемблера или отладчика.
Есть команды, такие как строки, hexdump и т. Д., Знать больше об этом.
Надеюсь, это поможет. :)