Deimos_
Messages postés15Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention29 juin 2005
-
29 juin 2005 à 14:27
Deimos_
Messages postés15Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention29 juin 2005
-
29 juin 2005 à 23:01
Salut à tous,
J'ai un petit problème avec les fonctions ReadProcessMemory() et WriteFile() !
En fait, je souhaiterais obtenir dans un fichier texte quelques opcodes
d'un exécutable, seulement j'obtiens des caractères ASCII, ce que je ne
veux pas !
Voilà un bout du code (le code en lui marche très bien, il faudrait
juste rajouter une fonction pour convertir l'ASCII en hexadécimal) :
BYTE buffer[1];
unsigned long *NbrBytesOut = (unsigned long *)malloc(sizeof(unsigned long *));
[...] // Récupère le handle du processusen l'ouvrant, création du fichier texte
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juin 2005 à 14:51
unsigned long *NbrBytesOut = (unsigned long *)malloc(sizeof(unsigned long *));
Un peu bête d'allouer 4octets, tu crois pas? Tu connais l'opérateur & ?
Je ne comprends pas bien ton problème, les caractères ASCII peuvent s'exprimer en hexa...
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juin 2005 à 19:35
Au fait, quand tu fais ca tu t'en sors bien:
unsigned long *NbrBytesOut = (unsigned long *)malloc(sizeof(unsigned long *));
car (sizeof unsigned long) est idem que (sizeof unsigned long*),mais logiquement, il faudrait écrire
unsigned long *NbrBytesOut = (unsigned long *)malloc(sizeof(unsigned long));
Vous n’avez pas trouvé la réponse que vous recherchez ?
Deimos_
Messages postés15Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention29 juin 2005 29 juin 2005 à 21:46
Ok, merci beaucoup, ça marche !
Maintenant je voudrais donc récupérer par exemple 10bytes d'opcodes
hexadécimaux dans mon fichier, j'ai fait ça, mais ça me retourne des
trucs assez bizarres :
BYTE buffer_ascii,buffer_hexa[2];
unsigned long *NbrBytesOut = (unsigned long *)malloc(sizeof(unsigned long *));