Как проанализировать вызов функции (sub_41A1b8) для решения crackme с IDA Pro?

Пожалуйста, подскажите, где идет проверка состояния в коде? Как определить, что пароль от взлома есть "Benadryl" в IDA Pro? Как я понял, происходит вызов функции "call sub_4038D0", если пароль верный, мы прыгаем на loc_42D555. Помогите понять как это работает? введите описание изображения здесь

введите описание изображения здесь

1 ответ

Решение

jz short loc_42D555 прыгает к loc_42D555 если установлен нулевой флаг. В противном случае он выполняет следующую инструкцию.

Обратите внимание, что следующая инструкция - это ссылка на строку ошибки ("Неверный код DUDE"). Также обратите внимание, что loc_42D555 это адрес, на который ссылается строка успеха ("Спасибо, вы сделали...").

Так что, если нулевой флаг установлен на jz short loc_42D555 инструкция, вы, вероятно, решили Crackme.

В предыдущей инструкции sub_41A1b8 функция называется. Скорее всего, эта функция устанавливает нулевой флаг, если строки указаны в eax а также edx (в этом случае ваша входная строка и "Benadryl") равны, но вам нужно будет проанализировать sub_41A1b8 Функция знать это наверняка.

Чтобы понять это, вам нужно изучить сборку x86. Существует множество учебных пособий, которые помогут вам начать работу.

Другие вопросы по тегам