5Fermer7
GoldenCrystalLe 21/09/2012 à 22:30
Mais, tu peux aussi simplement injecter la DLL, et la décharger volontairement si le numéro de build ne correspond pas à ce que tu veux… non ? tongue

Et c'est simple, une fois à l'intérieur, l'adresse de base du module principal (wow.exe ici), c'est la valeur qui est utilisée comme HINSTANCE… Que tu récupères d'ailleurs déjà avec GetModuleHandle(NULL).
Une fois que tu connais cette valeur, tu adresses les données à l'intérieur de l'exécutable comme il te chante.
Par exemple en déclarant BYTE *wowBinary = (BYTE*)GetModuleHandle(NULL);
Si par la suite tu veux lire des données à une adresse spécifique, c'est plutôt simple:

#define READ_DWORD(ptr) (*(DWORD*)(void*)(ptr))
#define READ_WORD(ptr) (*(WORD*)(void*)(ptr))
#define READ_BYTE(ptr) (*(BYTE*)(void*)(ptr))

WORD build = READ_WORD(0x00BB8638);

Quand au code qui tente d'écrire sur la console, regarde si le handle retourné pour stdout n'est pas nul, ça pourrait bien être ça ton problème…