Абсолютная адресация для замены кода времени выполнения в x86_64

В настоящее время я использую некоторую схему замены кода в 32-битном формате, где код, который перемещается в другую позицию, считывает переменные и указатель класса. Поскольку x86_64 не поддерживает абсолютную адресацию, у меня возникают проблемы с получением правильных адресов для переменных в новой позиции кода. Проблема в деталях заключается в том, что из-за копирования относительная адресация указателя инструкций отличается от адреса во время компиляции.

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

Что-то вроде: leaq variable (%% rax), %% rbx также может помочь. Я только хочу, чтобы он не зависел от указателя инструкции.

9
задан nux 7 May 2012 в 12:47
поделиться