#c #pointers #kernel #emulation #base
#c #указатели #ядро #эмуляция #основание
Вопрос:
Допустим, есть эмулятор (LDPlayer), в настоящее время выполняющий процесс, и я написал программу на c , которая изменяет память этого процесса с помощью драйвера ядра, на другом эмуляторе мне удалось получить PID активного процесса на эмуляторе, отслеживая самые высокие активные потоки процесса в текущем процессе,
но этот эмулятор отличается, и вы не можете найти другие потоки, выполняющие тот же .exe,
с помощью сканирования шаблонов этого процесса я обычно могу найти адрес, который я хочу изменить его значение
но всякий раз, когда я снова запускаю процесс, адрес меняется и базовый адрес значения, мы говорим только об эмуляторе .exe, поэтому мой главный вопрос, как я могу найти статический базовый адрес моего основного значения адреса? в реальном процессе есть только 1 адрес с этим значением, но этот адрес всегда меняется при запуске процесса виртуальной машины с нуля (эмулятор) из-за разных адресов в памяти, и поиск от 0x00000 до 0x7fffff найдет этот адрес, но его слишком много для поиска во всей памяти процесса, я хочу простосделайте его диапазоном текущего адреса возможно ли найти статические диапазоны для адреса, который всегда меняется?
надеюсь, полезные ответы.
Комментарии:
1. Если вас не устраивает сканирование шаблонов, одним из вариантов может быть перепроектирование эмулятора и выяснение, какая функция LDPlayer запускает приложение для Android. И получите базовый адрес модуля в этот момент. Это может быть много работы. Я бы просто внедрил dll, которая будет сканировать шаблон и получать мне адрес.
2. @user Я хочу отсканировать значение aob по шаблону, но мне нужно найти фактический статический диапазон, в котором находится значение aob, потому что у него всегда есть новый адрес при запуске ldplayer