указатели — Использование базового адреса Cheat Engine в программе C ++

Недавно я узнал, как найти базовые адреса процесса с Cheat Engine. Я сделал это на Windows XP с пасьянсом, и я нашел базовый адрес для оценки (что-то вроде 000AABBC) и этот адрес никогда не менялся.

Итак, я сделал программу на C ++, которая использовала WriteProcessMemory(); (Я только что прошел этот адрес), и он работал каждый раз. Сейчас я делаю это в Windows 7, я нахожу базовый адрес, но это указатель, и адрес, на который он указывает, меняется каждый раз. Когда я проверяю адрес указателя, он говорит "solitaire.exe"+000BAFD8, Так как мне использовать его в коде, как я делал раньше?

4

Решение

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

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

4

Другие решения

Вы можете перечислить модули процесса и получить их базовый адрес, в данном случае адрес модуля solitaire.exe, Это должно дать вам последовательный адрес независимо от ASLR.

Увидеть: Получение списка библиотек DLL, загруженных в данный момент в процессе C #

2

По вопросам рекламы [email protected]