Как работает DLL-инъекция с играми, если адреса памяти меняются каждый раз, когда вы запускаете игру?

Хорошо, я в значительной степени любитель, когда дело доходит до взлома памяти/управления памятью (как бы вы это ни называли), но я следовал простому руководству по написанию DLL. Я использовал Cheat Engine, чтобы найти определенный адрес определенного значения, затем закрыл игру и перезапустил ее. Я попытался найти то же значение, но у него был другой адрес (я предполагаю, что это динамическая память).

Итак, хорошо, я должен был скопировать этот адрес и поместить его в часть кода DLL перед его внедрением (предположительно, это был цикл while (true), чтобы постоянно сбрасывать значение в этом адресе на 0), но я бы не будет ли бесполезно использовать DLL-инъекцию, если адрес будет меняться каждый раз, когда я запускаю игру, или я что-то здесь упускаю? Как мне продолжать находить значение с динамическим адресом?


person ZimZim    schedule 15.07.2012    source источник
comment
возможный дубликат сохранения адреса в коде взлома C++ игры?   -  person John Carter    schedule 15.07.2012
comment
В случае Cheat Engine, просто взгляните на учебник. Если бы вы не пропустили это, этот вопрос не возник бы. ;)   -  person William Mariager    schedule 15.07.2012


Ответы (1)


Я тоже любитель, И в чем-то, возможно, знаю даже меньше, чем ты.

Однако, исходя из своего опыта, я считаю, что есть способы найти «указатели» в редакторах памяти. Указатель — это (я считаю) фрагмент кода, который случайным образом генерирует адрес, который вам действительно нужен. Найдите адрес статического указателя, и вы должны быть в состоянии чтобы направить вашу .dll на адрес динамического значения.

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

person Tinytox    schedule 19.11.2012
comment
Указатель не является мерой «кода»; morsel или иначе. - person Andrew Barber; 19.11.2012