可以說內存地址0A7F03E4
存儲值124
。如何使用python將其更改爲300
?有沒有提供這種任務的模塊?如何更改存儲在內存地址中的值?
回答
>>> import ctypes
>>> memfield = (ctypes.c_char).from_address(0x0A7F03E4)
現在你可以閱讀memfield,分配給它,做任何你想要的。當然,只要您有權訪問該內存位置。
,你還可以得到一個memarray與
>>> memarray = (ctypes.c_char*memoryfieldlen).from_address(0x0A7F03E4)
,讓你memfields的列表。
更新:我剛纔讀到你想檢索一個整數。在這種情況下,當然使用ctypes.c_int。一般來說:使用適當的CTYPE;)
這不會給你的Python進程的虛擬內存地址,而不是物理地址?後者可能無法使用,具體取決於操作系統和進程權限。 – 2012-04-28 14:01:37
當你想要訪問非數據字段或可訪問內存外的字段時,當然會得到段錯誤。 – ch3ka 2012-04-28 14:06:02
你有沒有試過內置ctypes模塊?它提供了一個memset函數,它應該給你你需要的東西。
在UNIX上,你可以嘗試open()
的/dev/mem
設備訪問物理內存,然後使用file
對象的seek()
方法設置文件指針到正確的位置。然後使用write()
方法更改該值。不要忘記將數字編碼爲原始字符串!
但是,通常只有root
用戶才能訪問此設備。
- 1. 如何更改存儲在x86地址中的值?
- 2. 更改存儲在變量中的內存地址C
- 3. 如何更改char *的內存地址?
- 4. 更改內存地址*
- 5. 如何在地址行上存儲值?
- 6. 如何在Windows的內存地址中設置存儲陷阱?
- 7. 在C中,如何更改指針指向的內存地址?
- 8. 存儲指針地址在malloced內存
- 9. Java:如何在C++中存儲和檢索內存地址
- 10. 更改內存地址的速度
- 11. 選擇地址以更改內存中的值
- 12. 更改內存地址而不是結構中的值C
- 13. 將數據存儲在地址中並更改C中變量的地址?
- 14. 如何從內存地址獲取值?
- 15. 存儲在堆內存中的成員數據的地址
- 16. OpenCL如何更改cl_mem的內存地址?
- 17. CUDA:存儲在全局內存中的地址
- 18. 如何查看本地存儲更改
- 19. 本地存儲不會更改值
- 20. 如何修改存儲在獨立存儲器內的xml文件中的值?
- 21. 如何保存存儲在指針中的實際地址
- 22. 如何更新本地存儲值?
- 23. 內存地址
- 24. 如何保存對本地存儲所做的任何更改?
- 25. 如何更改逆序NSMutableArray存儲值?
- 26. 如何在內存存儲更改後刷新dojo gridx?
- 27. Mongoid:IPv6地址存儲
- 28. 如何在回購中存儲更改
- 29. 如何在DBML中存儲更改(存儲過程)
- 30. 如何在任意內存寫地址
您可能需要處理內存保護。如果這是代碼或只讀數據,那麼您將無法寫入該地址。 – 2012-04-28 13:54:05
你是說虛擬內存地址還是物理內存地址? – 2012-04-28 14:05:42