gpt4 book ai didi

python - 使用 mmap 对象写入物理地址

转载 作者:行者123 更新时间:2023-12-01 07:41:24 25 4
gpt4 key购买 nike

我想直接写入主机的物理内存地址。据我所知,我需要在我的进程上分配一个虚拟地址,然后我就可以使用它。在我的 Python 代码中,我看到内存值已更改,但在物理内存地址中并未发生此更改。

mem_file = os.open("/dev/mem", os.O_SYNC)
bar0 = 0x92000000
mapped_memory = mmap.mmap(mem_file, rounded_to_pagesize ,
mmap.MAP_PRIVATE, mmap.PROT_READ | mmap.PROT_WRITE, 0, bar0)
mapped_memory.read(4)
output: '\x00\x1a\x00\x10'
mapped_memory.seek(0)
mapped_memory.write('0x1')
mapped_memory.seek(0)
mapped_memory.read(4)
output: '0x1\x10\x00\x05\

但是当我检查物理地址的值时,我发现没有进行任何更改,甚至重新启动此部分代码也会给我旧的值地址。

最佳答案

使用map.MAP_SHARED而不是map.MAP_PRIVATE。来自 documentation :

MAP_PRIVATE creates a private copy-on-write mapping, so changes to the contents of the mmap object will be private to this process, and MAP_SHARED creates a mapping that’s shared with all other processes mapping the same areas of the file.

关于python - 使用 mmap 对象写入物理地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com