Bonjour,
Je cherche désespéremment comment lire une section de ma mémoire en C++.
En fait là je chercherai à regarder ce qui se trouve à l'adresse 0x859e1820.
Je vois ma valeur avec LiveKD, mais j'aimerais construire un outils l'automatisant.
Merci
Bonjour,
Je cherche désespéremment comment lire une section de ma mémoire en C++.
En fait là je chercherai à regarder ce qui se trouve à l'adresse 0x859e1820.
Je vois ma valeur avec LiveKD, mais j'aimerais construire un outils l'automatisant.
Merci
Que veux-tu faire exactement ? Pourquoi cette adresse en particulier ? Quel outil veux-tu faire ? Je te demande cela car ton problème est peut-être avant et que cette adresse peut très bien changer demain.
Oui ma valeur change.
En fait, quand je demarre un Windows au chargement celui ci place en mémoire des informations que j'aimerais recuperer.
Ces informations sont précédé d'une suite d'octets:
2C00 0500 0100 0000 ....
je veux recuperer les 128 bits qui suivent cet entete.
Mais dans un premier temps, je voulais pouvoir me placer à un endroit particuilier, et commencer ma recherche.
Mais je suis d'accord que l'adresse de l'information change à chaque fois que je redemarre mon Windows.
Voilà
Est-ce que memcpy pourrait suffir à ton bonheur ? Mais je ne suis pas très convaincu. Auras-tu le droit d'aller y lire ?









est ce qui a le plus de chance de marcher. Evidemment non portable. Ne pas oublier non plus que la memoire est normalement pas partagee entre process et que certaines zones peuvent ne pas etre lisible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 unsigned char const* ptr = (unsigned char const*)0x859e1820;
ok, ca semble passer, mais je n'arrive pas à accéder au contenu pointé.
Lorsque j'execute ca, j'ai une sorte de segfault.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 unsigned char const* ptr = (unsigned char const*)0x859e1820; PCHAR pAdresse = (PCHAR)*ptr; if (*(PUSHORT)(pAdresse)==0x2c00) { ....
Relis le message de Jean-Marc.Bourguet.
Tu ne peux pas lire n'importe quelle adresse de ta mémoire. Il va falloir que tu débrouilles autrement mais ce n'est plus vraiment une question de C++. Windows doit bien te fournir un moyen de lire ce fameux entête.Ne pas oublier non plus que la memoire est normalement pas partagee entre process et que certaines zones peuvent ne pas etre lisible.
Partager