Consente di dire che l'indirizzo di memoria 0A7F03E4
memorizza un valore 124
. Come cambiarlo in 300
usando python? Esiste un modulo fornito per questo tipo di attività?Come modificare il valore memorizzato nell'indirizzo di memoria?
risposta
>>> import ctypes
>>> memfield = (ctypes.c_char).from_address(0x0A7F03E4)
Ora si può leggere memfield, assegnare ad esso, fare quello che vuoi. Finché hai accesso a quella posizione di memoria, ovviamente.
è anche possibile ottenere un memarray con
>>> memarray = (ctypes.c_char*memoryfieldlen).from_address(0x0A7F03E4)
che vi dà un elenco di memfields.
Aggiornamento: ho appena letto che si desidera recuperare un numero intero. in questo caso, usa ctypes.c_int, ovviamente. In generale: utilizzare il ctype appropriata;)
Questo non ti darebbe l'indirizzo di memoria virtuale del processo python piuttosto che l'indirizzo fisico? Quest'ultimo sarebbe probabilmente inaccessibile a seconda del sistema operativo e dei privilegi di processo. –
quando si desidera accedere a un campo non-dati oa un campo al di fuori della memoria raggiungibile, si otterrà ovviamente un segfault. – ch3ka
Hai provato il modulo incorporato in ctypes? Fornisce una funzione memset che dovrebbe darti quello che ti serve.
Su UNIX, si può provare a open()
il dispositivo /dev/mem
di accedere alla memoria fisica, e quindi utilizzare il metodo dell'oggetto file
seek()
impostare il puntatore del file al posto giusto. Quindi utilizzare il metodo write()
per modificare il valore. Non dimenticare di codificare il numero come una stringa grezza!
Generalmente, solo l'utente root
ha accesso a questo dispositivo, tuttavia.
- 1. Come rvalore in C++ memorizzato in memoria?
- 2. Come leggere il file immagine memorizzato nella memoria interna?
- 3. Leggi il valore GUID memorizzato nel registro
- 4. Come è memorizzato un valore simbolico in Matlab
- 5. Come modificare una colonna e modificare il valore predefinito?
- 6. Come modificare/impostare il valore DateTimePicker
- 7. Dove è memorizzato in memoria vtable?
- 8. Posso modificare il valore di Environment.NewLine?
- 9. Come posso modificare la memoria casuale?
- 10. Modificare il valore predefinito di booleano
- 11. Modificare il valore di un attributo specifico
- 12. Come modificare il valore di un articolo di una collezione
- 13. C# HttpRuntime.Cache.Insert() Non contiene il valore memorizzato nella cache
- 14. Come modificare un valore KeyValuePair?
- 15. Come modificare il valore di None in Python?
- 16. Come modificare il valore di ritorno a primavera
- 17. Come modificare il valore predefinito di $ {project.build.outputDirectory} in Maven?
- 18. Come modificare il valore di ritorno della spia jasmine?
- 19. Come modificare il valore di un attributo personalizzato
- 20. Come modificare il valore di zoom-data-immagine
- 21. Come modificare il valore di process.env.PORT in node.js?
- 22. Come modificare il valore dell'indice del dataframe di Pandas?
- 23. Come modificare il contenuto della memoria usando GDB?
- 24. Come modificare il valore dopo il ritardo usando angularjs?
- 25. come modificare il valore NSString durante il debug in XCode?
- 26. Come modificare il collegamento href con il valore dropdown
- 27. Come modificare il tipo e rimuovere il valore in postgresql
- 28. Java (HBase) API: Come conoscere il tipo di dati di un valore memorizzato in byte
- 29. Come deve essere memorizzato il token di accesso all'API Web?
- 30. Valore di risultato del codice elisp memorizzato in un file?
Potrebbe essere necessario occuparsi della protezione della memoria. Se questo è codice o leggi solo dati, non sarai in grado di scrivere su quell'indirizzo. –
Stai parlando di un indirizzo di memoria virtuale o di una memoria fisica? –