Вы больше запутываете такой постановкой вопроса, чем объясняете, что в свою очередь указывает на то, что Вы сами плохо понимаете как "оно" устроено.
Если к этому относиться серьёзно, то хорошо бы почитать полезной литературы, или на крайний случай, статьи на Хабре, спросив у Гугля что-то вроде - как устроено адресное пространство приложения, а ещё лучше, полистать форумы, которые целенаправленно освящают функционал программ, вроде "CheatEngine"("CE") и их сферу применения. В общих же чертах, картина рисуется так:
У каждого, загруженного в оперативную память процесса, адресное пространство локально изнутри и начинается с 0x00000000(x32), но глобально, оно подразумевается как базовый адрес приложения, являющийся смещением в адресном пространстве оперативной памяти операционной системы(среды). Поэтому, когда производятся манипуляции в том же "CE", все литеральные представления адресов начинаются с "TargetProgrammName.exe". Иными словами и очень грубо говоря, понимаемый под базовым адресом программы "TargetProgrammName.exe" - это указатель на всю структуру приложения в оперативной памяти среды. Его значение может меняться.
Указатели же, которые интересны в нашем случае - константны в локальном пространстве адресов процесса. Они не меняются при перезагрузке самой программы и среды. Эти указатели нужны самой программе, чтобы "знать", как она была распределена в памяти и содержат адреса, в которых начинаются её структуры(логика, данные, ... ). Меняются они только в случае изменения кода, происходящего, например, в результате апдейтов.
Такой указатель, "как бы" ссылается на начало структуры, от чего его можно было бы назвать и ссылкой и из-за характерного поведения, похожего на свойство объекта(когда манипуляции над ссылкой на объект, приводят к желаемым изменениям самого объекта), но это не так. Об этом тоже стоит почитать. Важной аналогией здесь является то, что смещения от указателя применяются к адресу содержащемуся в нём, который в свою очередь и меняется при перезагрузке.
Следуя по пути смещений от начала структуры получается доступ к её членам, расположенным хаотичным образом в адресном пространстве процесса.
Самые первые, поверхностные поиски для манипуляций над значениями в программах на подобие "CE", всегда начинаются с поисков этих адресов, от которых последовательно находятся смещения к началу своей структуры, адрес которой обязательно хранится в указателе, являющемся конечной точкой такого поиска.
Неправильно описал это в 36 посте.
Поправьте пожалуйста, если я где-то опять не корректен.