发布网友
共5个回答
热心网友
使用ctypes模块调用WriteProcessMemory函数,在创建程序进程后,就可以修改该程序指定内存地址。WriteProcessMemory的函数原型如下所示。
BOOL WriteProcessMemory(
HANDLE hProcess,
LPVOID lpBaseAddress,
LPCVOID lpBuffer,
SIZE_T nSize,
SIZE_T* lpNumberOfBytesWritten
);
其参数含义如下。
· hProcess:要写内存的进程句柄。
· lpBaseAddress:要写的内存起始地址。
· lpBuffer:写入值的地址。
· nSize:写入值的大小。
· lpNumberOfBytesWritten :实际写入的大小。
python代码示例如下:
from ctypes import *
热心网友
必须借助外部的C扩展,否则PYTHON无法完成
热心网友
强烈同意j88r,对
python怎么修改某个内存地址的数据
问题的答案
热心网友
把变量的内存地址赋值给另一个变量,这一点可以使用python的内建方法id()来进行测试,对于你给的例子:
我们假设'QH'这个字符串在内存中的地址是a,'LJQ'在内存中的地址是b
you='QH' #让you变量指向a地址
me=you #让me变量和you变量一样指向a地址
you='LJQ' #修改you变量,让它指向到b地址
print you #可想而知you指向的是b地址,所以它的值为'LJQ'
print me #me指向的是a地址,所以它的值为'QH'
输出:
LJQ
QH
可以使用ID来加强对python的赋值机制的理解
>>> a = 'asdf'
>>> id(a)
872552384
>>> b = a
>>> id(b)
872552384
>>> a = 'haha'
>>> id(a)
872552672
>>> id(b)
872552384
>>> a
'haha'
>>> b
'asdf'
热心网友
可以ctypes模块来改。