отслеживать поток данных при запуске исполняемого файла

Я практикую реверсивное умение, используя OLLdbg под окнами.

есть интерактивное окно с просьбой ввести, скажем, «серийный номер». Мой вопрос: когда пользователь работает с окном, трудно найти связанный поток данных в окне отладчика. Например, если я нажму «F9», мы сможем просмотреть поток инструкций; но при вводе в окно я не могу знать, какие инструкции были выполнены.

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

Ищу подсказку или подсказку. Спасибо.


person SecureFish    schedule 19.04.2011    source источник


Ответы (1)


Одна вещь, которую вы можете сделать, это ввести что-то в текстовое поле, а затем использовать приложение, такое как Cheat Engine, чтобы узнать, где в памяти хранятся эти символы. Затем вы можете поставить точку останова памяти (при доступе) на адрес первого символа в ollydbg. Затем нажмите кнопку, подтверждающую серийный номер. Когда инструкция обращается к этой части памяти, она сломается. Вы находитесь внутри части кода, которая проверяет вашу строку. Теперь вы должны попытаться понять, что делает код, чтобы найти инструкцию, которую вы хотите изменить.

В зависимости от того, насколько безопасно приложение, это будет работать. С более безопасным приложением это, скорее всего, не сработает. Когда вы только начинаете обратный инжиниринг, я предлагаю вам найти несколько простых приложений, предназначенных для взлома, и перейти к более безопасным приложениям. Сайт, на котором вы можете найти многие из этих «crackmes», называется crackmes.de. Также я могу предложить уроки lene151 здесь. Одни из лучших руководств по реверс-инжинирингу, которые я видел.

person Maarten van Beek    schedule 20.04.2011
comment
Ссылка очень полезна. Установив BP на GetWindowTextA, я могу попасть в код схемы регистрации. Но, похоже, схема немного сложная, в ней задействовано около трехсот инструкций. Я могу прочитать некоторую ценную информацию, такую ​​как мой входной серийный номер Arg2 и предполагаемый Arg1. Также чувствую инструкции: CMP DWORD PTR SS:[], DCBAABCD; JNE 7707003B0 (прыжок не выполнен) — это точки, над которыми я мог бы поработать. Нужно больше времени, чтобы прояснить всю схему и найти одно решение. - person SecureFish; 26.04.2011