Ajout d'une variable dans un exe

Signaler
Messages postés
25
Date d'inscription
lundi 6 mars 2006
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Sans avoir lu encore toutes mes docs (vos bouts de codes et les liens de vos sites), je me pose une question.
Est il possible d'integerer une variable dans un exe.
Par là j'entends un buffer.
Il y a quelque chose que je n'ai pas encore du saisir.
L'exe crée/initialise ses data dans la memoire et non pas dans l'exe --_--
Je vais essayer d'etre plus clair:

main:
l'exe tourne et d'un coup jump vers ma routine ajoutée à la main dans l'exe.

routine ajoutée a la main :
ouvre un fichier txt
lit ce qu'il y a dedans et l'enregistre dans un, buffer
exploiter ce qu'il y a dans ce buffer

Ma piste selon moi:
Ce buffer n'est qu'un pointeur a qui on allouera de la memoire avec Globalloc/globallock(supposition) mais ou creer ce pointeur?
Dans les .data?
je ne vois pas les .data avec ollydbg ni avec w32dasm mais je les vois avec IDA

C'est un point vraiment capital je trouve, tu peux rajouter tes propres variables dans un exe et hop t le roi du pétrole.(peux etre que vous pratiquer deja cela mais j'imagine les possibilités extraordinaires de manipulation et d'audit de ce genre de pratique) 

merci par avance je reste dans coin >.>

2 réponses

Messages postés
573
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
20 avril 2021
2
L'executable possede ses propres data quelque part dans l'espace mémoire occupé par lui même.La quantité de mémoire du programme est déterminé a la compilation et ne peut plus évoluer.
Cette espace peut etre augmenté de manière dynamique,c'est a dire que l'on demande au systeme d'allouer une certaine quantité de mémoire au programmme (globalalloc).
        ToutEnMasm

                                  
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
A mettre en asm, pas le temps:

pmem = VirtualAlloc(0, TailleBlocVoulue, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);

utilisation du bloc pointé par pmem.
puis libération du bloc:
VirtualFree(pmem, 0, MEM_RELEASE);

ciao...
BruNews, MVP VC++