如何在python中将地址取消引用为整数?

时间:2015-06-12 23:58:44

标签: python typecast-operator

我有0x6041f0这样的地址。我知道有一个整数坐在那里。在C中,我只需要*(int *)0x6041f0来获取该地址处的整数值。

如何在Python中实现相同的目标?

PS:我正在编写一个使用gdb模块的Python脚本。正在调试的实际程序是用C ++编写的。因此需要进行大量的低级操作。

1 个答案:

答案 0 :(得分:1)

这样的事情:

$ python
Python 2.7.9 (default, Mar 19 2015, 22:32:11) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ctypes import *
>>> c_int_p = POINTER(c_int)
>>> x = c_int(4)
>>> cast(addressof(x), c_int_p).contents
c_int(4)

用这个文艺地址:)

>>> cast(0x6041f0, c_int_p)
<__main__.LP_c_int object at 0x7f44d06ce050>
>>> cast(0x6041f0, c_int_p).contents
Segmentation fault

请参阅:ctypes以供参考