Указатель от чит-движка для переполнения стека

Я ищу способ передать адрес указателя из чит-движка в строку кода.

Адрес Cheat Engine: P-> 0C86D240.

Строка кода выглядит следующим образом:

WriteProcessMemory(handle,(LPVOID)P->0C86D240,).

В конце я хотел бы изменить значение адреса указателя.

Обновление: я изменил P-> на 0x0C86D240 и смог записать память для ЭТОГО сеанса игры. Когда закрыли, а затем снова открыли, шестнадцатеричный номер был другим

-1

Решение

P->0C86D240 в Cheat Engine означает, что запись представляет собой цепочку указателей, которая в конечном итоге разрешается по адресу 0x0C86D240, Если дважды щелкнуть эту часть в Cheat Engine, вы увидите всплывающее диалоговое окно, показывающее, из чего состоит эта цепочка указателей. Например, давайте назовем начальный указатель P0 и ряд смещений называется offset0, offset1, offset2, ..., Цепочка указателей должна принимать значение по адресу P0 + offset0, используйте это как следующий указатель P1, затем возьмите значение по адресу P1 + offset1, используйте это как следующий указатель P2 … эта цепочка, наконец, даст вам адрес 0C86D240, Если вы перезагрузите игру, вы надеетесь, что P0 не изменится, но все впоследствии изменится динамически (т.е. P1, P2, P3,…) и проследите до нужного значения.

Если вы знаете, как работает цепочка указателей, тогда просто преобразовать ее в C ++. Вам просто нужно принять к сведению базовый указатель и все смещения (как показано во всплывающем диалоговом окне, дважды щелкнув P->0C86D240 part.) Затем проследите, пока вы не используете все значения смещения.

3

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

Шаг 1: Поиск значения, которое вы хотите изменить с помощью чит-движка.

Шаг 2: Если вы нашли правильный адрес, щелкните по нему правой кнопкой мыши и просканируйте указатель этого адреса. Теперь вы должны получить много базовых адресов с некоторыми смещениями.

Шаг 3: Закройте игру и повторите шаг 1. Теперь скопируйте новый адрес и нажмите повторно сканировать указатель (в окне, которое открывается с шага 2). Вставьте новый адрес в поле адреса повторного сканирования и выполните повторное сканирование. Тогда вы должны только получить правильные базовые адреса + смещения.

Шаг 4: Чтобы всегда найти правильный адрес, выполните: readprocessmemory (baseaddress + offset)

1

Прежде всего, я не могу понять, что означает P->, возможно, удалите это и сделайте значение 0x для hex

Когда закрыли, а затем снова открыли, шестнадцатеричный номер был другим

Я думаю, что вы говорите об игре, если я не прав, тогда не продолжайте читать

таким образом, адрес, который вы получаете от чит-движка, вероятно, является динамическим, что означает, что каждый раз, когда вы закрываете или открываете его, это значение будет меняться в том смысле, что программе будет выделено другое место в памяти.

Итак, что нужно делать…..

вы можете найти статический адрес, этот процесс немного сложнее, я советую вам посмотреть учебник https://www.youtube.com/watch?v=hfWOAFsYnFA

0