Недавно я узнал, как найти базовые адреса процесса с помощью Cheat Engine. Я сделал это на Windows XP с Solitaire, и я нашел базовый адрес для оценки (что-то вроде 000AABBC
), и этот адрес так и не изменился.Использование Cheat Engine Base Address в программе на C++
Итак, я создал программу на C++, которая использовала WriteProcessMemory();
(я только что передал этот адрес), и она работала каждый раз. Теперь я делаю это в Windows 7, я нахожу базовый адрес, но это указатель и адрес, который он указывает на изменения каждый раз. Когда я проверяю адрес указателя, он говорит "solitaire.exe"+000BAFD8
. Итак, как я могу использовать его в коде, как раньше?
Так что нет никакого способа сделать это? :(Или это сложно? – user3478487
@ user3478487 Никакого оскорбления не было, но если вы не знали об ASLR заранее, вы, вероятно, не сможете его победить. Конечно, ничего невозможного - например, операционная система не применяется ASLR, когда процесс информирует ОС о том, что он не может справиться с этим (что происходит, когда базовые адреса жестко закодированы), который один * может * иметь возможность использовать с достаточными разрешениями. –
@ user3478487 Просто найдите идентификатор процесса, у которого есть это имя. Вы можете начать здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682629%28v=vs.85%29.aspx – reader