cs_izissise
Messages postés5Date d'inscriptionmercredi 16 juin 2010StatutMembreDernière intervention26 juillet 2011
-
24 juil. 2011 à 17:21
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 2013
-
24 juin 2012 à 15:21
Bonjour,
J'aimerais "calculer" l'opcode d'une instruction jmp avec une adresse ou sauté aléatoire bref mes recherche google n'ayant rien donner je me tourne vers vous !
007C7D30 - E9 CB821603 jmp 03930000
En fait je vois pas le lien entre 007C7D30, CB821603 et 03930000.
Merci a vous et très bonne journée !
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 24 juil. 2011 à 23:49
Regarde du côté du Intel® 64 and IA-32 Architectures Software Developer’s Manual, LA référence pour ce qui est du langage machine x86. Partie utile : Vol 2A. Le seul problème c'est qu'il faut comprendre ce qui y est dit
VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 20142 25 juil. 2011 à 12:48
salut,
Il y a 2 types d'instructions de saut. L'une est relative à l'adresse suivant l'instruction de saut (+ ou - valeur donne l'adresse pointée comme pour le call). L'autre est absolue, la valeur indique l'adresse pointée.
cs_izissise
Messages postés5Date d'inscriptionmercredi 16 juin 2010StatutMembreDernière intervention26 juillet 2011 25 juil. 2011 à 23:03
Dsl mais j'arrive toujours pas a comprendre quelle pourrait me montrer le calcule entre l'adresse source et celle de destination ?
ps: je ne vous mais pas dit que j'utilisais cheat engine enfin bref quand je copie la ligne avec ce jmp jai : 007C7D30 - E9 CB822D03 - jmp 03AA0000 : [MD2_Final+251A67]
pour info l'adresse de MD2_Final est C36C60.
pss: Les adresse sont différente car l'allocation est dynamique (c'est pour ça qu'il faudrait que je calcule l'opcode dynamiquement aussi.)
cs_tboss
Messages postés2Date d'inscriptionsamedi 23 juin 2012StatutMembreDernière intervention23 juin 2012 23 juin 2012 à 20:20
On peut pas éditer ?
A l'aide de la fonction ci dessus je trouve que dst = opcode - adresse actuelle si dest < adresse actuelle, ce qui est le cas.
Après calcul je trouve malheureusement 484E985E et non pas 124A0000.
Il y'a une histoire d'endian ? Comment je convertis ?
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 24 juin 2012 à 15:21
Pour le faire "à la main", tu convertis l'opérande : A5|F8 9F|B4 -> B4|9F F8|A5. On travaille en arithmétique signée (déplacement relatif, c'est un jmp near), le bit de poids signe est à 1, donc on prend le complément à deux (=1+not x) du déplacement et on le soustrait à l'adresse de la prochaine instruction (5DAA0756+5).
VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question