Page 1 of 1

ReadProcessMemory et UTF-8

PostPosted: Sun Jan 09, 2011 12:11 am
by JREM
Salut,

je suis actuellement sur un petit projet en ce moment je souhaiterais afficher des informations d'un jeu vidéo dans une fenêtre, donc pour le moment je voudrais afficher le nom du joueur sa vie (ect..) dans la console.

Donc dans un premier temps vu que je n'injecte pas de DLL je récupère la base adresse du processus et j'attribue les droits de débug afin de pouvoir lire la mémoire.

Donc voila comment je procède:

[code:1:39bf5a11a7] int playername = (base + 0x8B3FB0); // adresse base + offset ou est stocké le pseudo du joueur
ReadProcessMemory(handle, (LPVOID)playername, &value, 12, &stBytes);
cout << "Player name: " << (char*)value << endl << endl;[/code:1:39bf5a11a7]

Voila le résultat:

[URL=http://img692.imageshack.us/img692/6596/utf8name747a21c59.jpg][img:39bf5a11a7]http://img692.imageshack.us/img692/6596/utf8name747a21c59.th.jpg[/img:39bf5a11a7][/URL]

Donc apparemment le jeu gère tout en UTF-8, par ailleur je suis sous visual studio 2010 mon projet est en unicode. Donc j'ai fait des recherches pour récupérer des données directement en UTF-8 avec la fonction ReadProcessMemory mais en vain, je pense que je m'y prends mal.

PostPosted: Sun Jan 09, 2011 7:04 am
by TorTukiTu
Bonjour, deux petites questions bêtes:

1 - Est-ce que tu es sûr de ton offset ?
2 - As-tu vérifié que c'était bien en utf-8

J'ai jamais été confronté à un problème du genrs, peut-être que ce lien pourra t'inspirer:

hxxp://utfcpp.sourceforge.net/

La tortue du 974.

PostPosted: Sun Jan 09, 2011 11:37 am
by JREM
Merci d'avoir pris le temps de me répondre,

Donc pour l'offset:

base adresse = 0x400000
ofsset = 0x8B3FB0

Donc 0x400000 + 0x8B3FB0 = 0xCB3FB0

Quand je vérifie avec "cheat engine" par exemple, je vois bien le pseudo à l'adresse de l'offset.



Et par ailleurs cela fonctionne bien avec les personnages qui n'ont pas de caractères spéciaux dans leur pseudo.

J'ai vérifier c'est bien de l'UTF-8, je vais allez jeter un coup d'œil sur ton lien.