On 8 jan, 13:21, Bruno Desthuilliers <bruno. wrote:
Pretorien a écrit :
> Bonjour,
> Je souhaiterai lire le contenu d'une adresse voir une zone mémoire en > RAM.
> (os = linux et/ou windows)
> Est-ce possible ?
Probablement.
> si oui comment faire ?
En C ?-)
Plus sérieusement: pourquoi veut-tu faire ça ? En d'autres termes, qu el est ton problème _réel_ ?
je voudrais faire un dump memoire d'une zone, d'un processus ou simplement lire une adresse donné de la mémoire.
Bruno Desthuilliers
Pretorien a écrit :
On 8 jan, 13:21, Bruno Desthuilliers <bruno. wrote:
Pretorien a écrit :
Bonjour, Je souhaiterai lire le contenu d'une adresse voir une zone mémoire en RAM. (os = linux et/ou windows) Est-ce possible ?
Probablement.
si oui comment faire ?
En C ?-)
Plus sérieusement: pourquoi veut-tu faire ça ? En d'autres termes, quel est ton problème _réel_ ?
je voudrais faire un dump memoire d'une zone, d'un processus ou simplement lire une adresse donné de la mémoire.
C'est bien mais ça ne nous dit pas quel problème réel tu veux résoudre en effectuant une de ces opérations... Enfin bon, passons.
Honnêtement, je ne suis pas sûr que Python soit le langage le plus adapté pour ça. "Nativement" (ie : sans le support de bibliothèques spécifiques), c'est simplement impossible puisqu'il n'y a en Python aucune notion de pointeur ou d'accès direct à la mémoire. Il faut donc que tu passes par des appels systemes, donc par des bibliothèques spécifiques au système cible. A ce stade, je te laisse chercher ton bonheur dans la documentation:
En ce qui me concerne, j'aurais tendance, pour ce genre d'opérations, à sortir tout de suite mon GCC et ma bible système.
Pretorien a écrit :
On 8 jan, 13:21, Bruno Desthuilliers <bruno.
42.desthuilli...@websiteburo.invalid> wrote:
Pretorien a écrit :
Bonjour,
Je souhaiterai lire le contenu d'une adresse voir une zone mémoire en
RAM.
(os = linux et/ou windows)
Est-ce possible ?
Probablement.
si oui comment faire ?
En C ?-)
Plus sérieusement: pourquoi veut-tu faire ça ? En d'autres termes, quel
est ton problème _réel_ ?
je voudrais faire un dump memoire d'une zone, d'un processus ou
simplement lire une adresse donné de la mémoire.
C'est bien mais ça ne nous dit pas quel problème réel tu veux résoudre
en effectuant une de ces opérations... Enfin bon, passons.
Honnêtement, je ne suis pas sûr que Python soit le langage le plus
adapté pour ça. "Nativement" (ie : sans le support de bibliothèques
spécifiques), c'est simplement impossible puisqu'il n'y a en Python
aucune notion de pointeur ou d'accès direct à la mémoire. Il faut donc
que tu passes par des appels systemes, donc par des bibliothèques
spécifiques au système cible. A ce stade, je te laisse chercher ton
bonheur dans la documentation:
On 8 jan, 13:21, Bruno Desthuilliers <bruno. wrote:
Pretorien a écrit :
Bonjour, Je souhaiterai lire le contenu d'une adresse voir une zone mémoire en RAM. (os = linux et/ou windows) Est-ce possible ?
Probablement.
si oui comment faire ?
En C ?-)
Plus sérieusement: pourquoi veut-tu faire ça ? En d'autres termes, quel est ton problème _réel_ ?
je voudrais faire un dump memoire d'une zone, d'un processus ou simplement lire une adresse donné de la mémoire.
C'est bien mais ça ne nous dit pas quel problème réel tu veux résoudre en effectuant une de ces opérations... Enfin bon, passons.
Honnêtement, je ne suis pas sûr que Python soit le langage le plus adapté pour ça. "Nativement" (ie : sans le support de bibliothèques spécifiques), c'est simplement impossible puisqu'il n'y a en Python aucune notion de pointeur ou d'accès direct à la mémoire. Il faut donc que tu passes par des appels systemes, donc par des bibliothèques spécifiques au système cible. A ce stade, je te laisse chercher ton bonheur dans la documentation:
> Je souhaiterai lire le contenu d'une adresse voir une zone mémoire en RAM.
(os = linux et/ou windows)
Est-ce possible ? si oui comment faire ?
J'ai cherche un peu mais je ne vois vraiment pas comment faire
si quelqu'un a une idée ... elle serait la bienvenue
C'est la librairie CTypes qu'il te faut. Cette librairie fait partie de la distribution Python standard depuis la 2.5.
Nicolas
Michel Claveau - NoSpam SVP ; merci
Bonsoir !
Je ne sais pas pour linux, mais, pour Windows, tu n'es pas sortie de l'auberge ! Car, les objets en mémoire peuvent être déplacés sans prévenir, d'où risque de ne pas traiter les bons trucs. En plus, la mémoire n'est pas continue, mais par blocs ; avec des offsets ; galère à gérer. Autre problème, la mémoire virtuelle, dont certaines pages peuvent être swappée sur disque.
Bref, non seulement il te faudra travailler au niveau du C (Ctypes, que l'on t'a signalé, peut aider ; ainsi que struct, pour décoder du contenu), mais aussi utiliser abondamment les API de base du système.
Pour linux, ça devrait être du même genre, mais avec des API différentes, et une gestion mémoire différente.
AMHA, laisse tomber, ou mets-toi à l'assembleur...
@-salutations -- Michel Claveau
Bonsoir !
Je ne sais pas pour linux, mais, pour Windows, tu n'es pas sortie de
l'auberge !
Car, les objets en mémoire peuvent être déplacés sans prévenir, d'où
risque de ne pas traiter les bons trucs.
En plus, la mémoire n'est pas continue, mais par blocs ; avec des
offsets ; galère à gérer.
Autre problème, la mémoire virtuelle, dont certaines pages peuvent être
swappée sur disque.
Bref, non seulement il te faudra travailler au niveau du C (Ctypes, que
l'on t'a signalé, peut aider ; ainsi que struct, pour décoder du
contenu), mais aussi utiliser abondamment les API de base du système.
Pour linux, ça devrait être du même genre, mais avec des API
différentes, et une gestion mémoire différente.
AMHA, laisse tomber, ou mets-toi à l'assembleur...
Je ne sais pas pour linux, mais, pour Windows, tu n'es pas sortie de l'auberge ! Car, les objets en mémoire peuvent être déplacés sans prévenir, d'où risque de ne pas traiter les bons trucs. En plus, la mémoire n'est pas continue, mais par blocs ; avec des offsets ; galère à gérer. Autre problème, la mémoire virtuelle, dont certaines pages peuvent être swappée sur disque.
Bref, non seulement il te faudra travailler au niveau du C (Ctypes, que l'on t'a signalé, peut aider ; ainsi que struct, pour décoder du contenu), mais aussi utiliser abondamment les API de base du système.
Pour linux, ça devrait être du même genre, mais avec des API différentes, et une gestion mémoire différente.
AMHA, laisse tomber, ou mets-toi à l'assembleur...
@-salutations -- Michel Claveau
Pretorien
Merci je vais me tourner vers ctypes qui m'a l'air très sympathique ...
Je ne sais pas pour linux, mais, pour Windows, tu n'es pas sortie de l'auberge ! Car, les objets en mémoire peuvent être déplacés sans prévenir, d'où risque de ne pas traiter les bons trucs. En plus, la mémoire n'est pas continue, mais par blocs ; avec des offsets ; galère à gérer. Autre problème, la mémoire virtuelle, dont certaines pages peuvent être swappée sur disque.
Bref, non seulement il te faudra travailler au niveau du C (Ctypes, qu e l'on t'a signalé, peut aider ; ainsi que struct, pour décoder du contenu), mais aussi utiliser abondamment les API de base du système.
Pour linux, ça devrait être du même genre, mais avec des API différentes, et une gestion mémoire différente.
AMHA, laisse tomber, ou mets-toi à l'assembleur...
@-salutations -- Michel Claveau
Merci je vais me tourner vers ctypes qui m'a l'air très
sympathique ...
Je ne sais pas pour linux, mais, pour Windows, tu n'es pas sortie de
l'auberge !
Car, les objets en mémoire peuvent être déplacés sans prévenir, d'où
risque de ne pas traiter les bons trucs.
En plus, la mémoire n'est pas continue, mais par blocs ; avec des
offsets ; galère à gérer.
Autre problème, la mémoire virtuelle, dont certaines pages peuvent être
swappée sur disque.
Bref, non seulement il te faudra travailler au niveau du C (Ctypes, qu e
l'on t'a signalé, peut aider ; ainsi que struct, pour décoder du
contenu), mais aussi utiliser abondamment les API de base du système.
Pour linux, ça devrait être du même genre, mais avec des API
différentes, et une gestion mémoire différente.
AMHA, laisse tomber, ou mets-toi à l'assembleur...
Je ne sais pas pour linux, mais, pour Windows, tu n'es pas sortie de l'auberge ! Car, les objets en mémoire peuvent être déplacés sans prévenir, d'où risque de ne pas traiter les bons trucs. En plus, la mémoire n'est pas continue, mais par blocs ; avec des offsets ; galère à gérer. Autre problème, la mémoire virtuelle, dont certaines pages peuvent être swappée sur disque.
Bref, non seulement il te faudra travailler au niveau du C (Ctypes, qu e l'on t'a signalé, peut aider ; ainsi que struct, pour décoder du contenu), mais aussi utiliser abondamment les API de base du système.
Pour linux, ça devrait être du même genre, mais avec des API différentes, et une gestion mémoire différente.
AMHA, laisse tomber, ou mets-toi à l'assembleur...