begin process at 2012 05 28 05:18:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

System

 > 

addresse de l'addresse


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

addresse de l'addresse

mercredi 10 octobre 2007 à 09:35:01 | addresse de l'addresse

elpens

Bonjour à tous,

Tout d'abord je tiens à préciser que je ne travaille pas en .NET (même si cela n'a pas trop d'importance...)

Voici mon problème:

J'essaie de lister les instructions call présentent dans la mémoire lorsque j'execute un *.exe

Pour une grande majorité des calls (ex. call EAX, call ECX,...), ce n'est pas un problème. Cependant, lorsque les instructions sont du type :

   - call [EAX]
   - call [ECX]
   - ...

j'ai de la peine à me représenter à quelle address pointe ces calls.
Je connais déjà les pattern de ces calls (FF10, FF11, FF12,...).

Le problème vient des [ ], qui indiquent que l'address (à laquelle pointe le call) pointe sur EAX. J'ai beaucoup de difficulté à exprimer celà, car ce n'est pas très clair pour moi.

N'hésiter pas à me demander plus de précisions, car je suis preneur de toute idées...

Merci d'avance

 ElpenS
mercredi 10 octobre 2007 à 09:47:35 | Re : addresse de l'addresse

The_Guardian

Bonjour,

Ok supposons que EAX=0x1234 quand tu fais call 0x1234, ça exécute la procédure se trouvant en 0x1234 de la mémoire, ok, donc quand tu fais call EAX, ça prend la valeur de EAX, c'est-à-dire 0x1234 et ça exécute la procédure se trouvant en 0x1234 de la mémoire (c'est pareil sauf qu'il faut que ton programme sache que EAX=0x1234)
Et maintenant, le problème que tu as c'est que quand tu fais call [EAX] avec les crochets, ça prend la valeur de EAX, c'est-à-dire 0x1234 et  ça va voir ce qui se trouve en mémoire à 0x1234, disons que c'est 0x5678 et ça exécute la procédure se trouvant en 0x5678
Donc pour faire ça dans ton programme tu dois faire la chose suivante :

quand je lis call EAX
alors  je récupère la valeur de EAX,
je récupère la valeur de [EAX]
et  
je retourne cette valeur,
c'est l'adresse de la procédure qui va être exécutée
 fin
 tu vois mieux ?

===

Une autruche ne se cuit pas aux petits lardons
mercredi 10 octobre 2007 à 10:15:00 | Re : addresse de l'addresse

elpens

Merci déjà pour ta réponse!

Je comprends le principe en texte, mais pas celui du programme... car je recherche les call [EAX]

------------------------------------------------------------------
quand je lis call [EAX]                                                                              //c'est cette instruction que je recherche
je vais rechercher la valeur de EAX                                                          //recherche un mov EAX
je vais ensuite rechercher à l'emplacement EAX, l'addresse d'EAX           //encore un mov EAX?

Merci encore

 ElpenS
mercredi 10 octobre 2007 à 13:56:39 | Re : addresse de l'addresse

The_Guardian

Re,

Pour rechercher la valeur de EAX, effectivement, il faut chercher un MOV EAX, --- (tu es pas sûr de le trouver, la personne aurait pu faire INC EAX, etc) mais admettons !
Donc  pour rechercher la valeur de [EAX] il faut rechercher un MOV [0x1234], --- sachant que la personne a pu passer par un autre registre (par exemple EDI) dont la valeur aurait été 0x1234
En gros tu as beaucoup de chances que ta méthode ne marche pas en lisant le fichier, mais faut voir si tu es dans un cas simple ou pas, et  regarde dans ton fichier voir comment ça se trouve.

===

Une autruche ne se cuit pas aux petits lardons
mercredi 10 octobre 2007 à 15:05:24 | Re : addresse de l'addresse

elpens

Yes, merci,

Je vais tester ca un de ces jours!

Mais ce qui est un peu la merde, c'est que je travaille dans plusieurs exe, alors on verra si le resultat obtenu est satisfaisant ou pas...

Merci pour ton aide, je te tiens au courant dès que je m'attarde la-dessus!


 ElpenS


Cette discussion est classée dans : problème, addresse, call, eax, calls


Répondre à ce message

Sujets en rapport avec ce message

asm dans WinMain :) [ par Joky ] Salut les gens ;) Donc voilà je comprend à moitié ce code __asm{    push    0     call    dword ptr GetModuleHandle     push  &nb GetOpenFileName et Thread générés [WIN32] [ par Pistol_Pete ] SalutEst il normale qu'après avoir exécuté la fonction GetOpenFileName, le nombre de thread du programme passe de 1 à 3!Y a t'il un moyen de suprimer Problème avec gethostbyname [ par LuckyNut ] Bonjour à tous,Je cherche depuis plusieurs jours à résoudre ce problème.J'ai un programme qui doit résoudre un nom de domaine qui fonctionne bien chez Problème de warning LNK4248 [ par cadavor ] Bonjour,J'ai un problème avec un programme que je suis en train de faire.Je travaille avec Visual C++ 2005 Express.Mon but est de récupérer des trames Problème pour lancer un programme avec CMD [ par lefollcy ] Bonjour à tous,J'ai un problème à la fois simple, mais incompréhensible pour moi. Je veux lancer une appli win32 à partir de CMD. Rien de plus simple. Problème de socket [ par MattU ] J'ai un petit soucis avec les CSocket!! Pour info, je developpe sur Visual Studio 2008 et j'aimerai utiliser la méthode des CSocket plutot que leurs e prbl [ par nesrine07 ] Bonjour, j'ai écrit un code en C (graphique + normal ) et j'ai obtenu son .exe mais le problème dans le .exe c'est que a la fin de chaque page graphiq Acer Travelmate 230 [ par xcaliburt ] slt à tous un pote m'a filé son pc portable Acer Travelmate 230 totalement fichu (affichage 0, pas de son pas d'allumage) j'ai résolu presque tout le paradox -> pb table lecture seule [ par dragonfly95 ] bonjour, cela s'adresse surtout a ceux ayant déja utilisé paradox et le moteur ADO sous C++ builder 2007.depuis quelques temps, j'arrive a me connecté


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales