Что значит адрес вида 0x7fff и как его можно получить с помощью кода

Вот пример кода где такой адрес используется:

import ctypes
a = 0x7fff 
print ctypes.cast(id(a), ctypes.py_object).value

Этот адрес может быть длинные либо короче. Мне нужно получить такой же адрес(или адреса) из процесса example.exe, также у меня есть PID этого процесса. Нигде просто не могу найти, что этот адрес значит и как его получить, особенно с помощью кода на Python.


Ответы (1 шт):

Автор решения: CrazyElf

Если вы напечатаете 16-ричное представление того, что тут получается, то получите обратно это число.

print(hex(ctypes.cast(id(a), ctypes.py_object).value))
# 0x7fff

Адрес тут id(a), а что в самой переменной a тут не важно, там может быть абсолютно любой объект питона. Например:

import ctypes
a = sum
print(ctypes.cast(id(a), ctypes.py_object).value)
# <built-in function sum>

В данном случае это ссылка на функцию. В общем, ваш код эквивалентен коду:

print(a)

Просто в нём показано, как получить что-то в питоне по адресу с помощью библиотеки ctypes.

Примечание: ваш код для питона 2.х, мой код для питона 3.х, но по сути разницы никакой нет кроме обращения с print.

→ Ссылка