Начинающий
-
Автор темы
- #1
Я уже задавал похожий вопрос, однако столкнулся с проблемой. Есть вот такая простая программа на которой я тестирую поиск оффсетов:
Загвоздка в том, что при перезапуске этой программы и адрес переменной "с", и оффсет меняются. При этом никаких указателей на эту переменную в регионах памяти с правами доступа на чтение/запись нет. Так как получают оффсеты от базового адреса процесса?
Возможно проблема в самом алгоритме вычисления оффсета. Я его вычислял как "базовый адрес процесса - адрес переменной".
Также столкнулся с тем, что базовый адрес процесса почему-то больше, чем адрес самой переменной. Как решать эту проблему?
Код:
#include <iostream>
int main() {
int c = 80;
int* ptr = &c;
bool keep_going = true;
while (keep_going) {
std::cout << "Var by " << ptr << " = " << c << " ptr: " << &ptr << std::endl;
std::cout << "Enter: ";
std::cin >> с;
}
return 0;
}
Возможно проблема в самом алгоритме вычисления оффсета. Я его вычислял как "базовый адрес процесса - адрес переменной".
Также столкнулся с тем, что базовый адрес процесса почему-то больше, чем адрес самой переменной. Как решать эту проблему?