Обратный Инженер Простое Приложение с IDA Pro 5 - PullRequest
2 голосов
/ 28 января 2012

Это приложение является первым испытанием приложения на сайте hackthissite.org.

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

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

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

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

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

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

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

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 января 2012

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

Установив для серийного номера что-то вроде "TEST", после нажатия кнопки Authenticate я смог найтиэта строка в памяти или в самом последовательном.

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

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

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

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

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

Если бы я вернулся в IDA и посмотрел снова, я, вероятно, теперь смог бы найти чек.

1 голос
/ 07 февраля 2012

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

...