我有0x6041f0
这样的地址。我知道有一个整数坐在那里。在C中,我只需要*(int *)0x6041f0
来获取该地址处的整数值。
如何在Python中实现相同的目标?
PS:我正在编写一个使用gdb
模块的Python脚本。正在调试的实际程序是用C ++编写的。因此需要进行大量的低级操作。
答案 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以供参考