- Статус
- Оффлайн
- Регистрация
- 20 Дек 2024
- Сообщения
- 17
- Реакции
- 3
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Моя задача – найти абсолютный адрес локальной переменной «х» функции main() без использования утилит на подобии CheatEngine и отладки.
Метод поиска: статический анализ через IDA
Псевдокод программы:
На текущий момент моих знаний хватает только на то, чтобы сказать следующее:
Объясните как выйти на переменную, используя только статический анализ. В случае, если это сделать нельзя, расскажите другой способ. Спасибо
Метод поиска: статический анализ через IDA
Псевдокод программы:
C++:
int main() {
int x = 0;
while(true) {
++x;
}
}
На текущий момент моих знаний хватает только на то, чтобы сказать следующее:
- Локальная переменная Х хранится на стеке в сегменте .text
- Я вижу, что программа выделяет (условно) 0х30 байт для хранения данных на стеке, условный asm:
sub rsp, 0x30
- Вижу инструкцию инкрементирования (допустим переменная в rax регистре):
inc rax
- Нахожу смещение переменной относительно стека с помощью этой инструкции:
mov [rsp-0x8], rax
Смещением является -0х8 от указателя на стек
Объясните как выйти на переменную, используя только статический анализ. В случае, если это сделать нельзя, расскажите другой способ. Спасибо