[Assemblage] - Calcul d'Offsets [Résolu]

Nowid50 45 Messages postés dimanche 25 septembre 2005Date d'inscription 29 octobre 2009 Dernière intervention - 22 déc. 2007 à 17:54 - Dernière réponse : Nowid50 45 Messages postés dimanche 25 septembre 2005Date d'inscription 29 octobre 2009 Dernière intervention
- 23 déc. 2007 à 11:36
Bonjour à tous !
J'aimerais une "petite" information... (pas moyen de trouver sur Google...)

Voila la situation :
Je suis actuellement en train de programmer un mini assembleur qui a partir de ressources dans un fichier (Code Hexadécimal + nom à écrire), écrive du code assembleur. J'ai cependant une contraite de taille...

J'aimerais avoir le support de "ELSE_IF" (C'est à dire d'utiliser un JMP/CALL quand ma condition n'est pas vrai)

Voila le topo :
   J'ai mon code : JMP/CALL [Machin]...
on ca donne
    E9/E8 XX XX XX XX

Le problème c'est : Comment calculer ces X ?

J'ai regardé à l'aide de OllyDGB dans un programme existant :
E8 90F9FFFF       CALL -----.0047AF60

(Attention sous OllyDGB, les offsets sont bizaremment géré, ainsi pour obtenir le vrai offset de mon code, vous devez retirer 400'000 en Héxadécimal à l'adresse plus haut)

Voila je n'arrive pas à comprendre la logique... J'ai bien essayé de modifier les valeurs binaires ou du CALL mais rien a faire, je n'arrive pas à trouver la formule...

Un peu d'aide serait super !

Merci d'avance !
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
ToutEnMasm 552 Messages postés jeudi 28 novembre 2002Date d'inscription 26 mars 2016 Dernière intervention - 23 déc. 2007 à 11:32
3
Merci
Salut,
La formule peut s'écrire ainsi:
Adresse saut = adresse de l'instruction+ saut algébrique (négatif ou positif)


adresse de l'instruction = 400 000 + relative position dans le code

Merci ToutEnMasm 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de ToutEnMasm
ToutEnMasm 552 Messages postés jeudi 28 novembre 2002Date d'inscription 26 mars 2016 Dernière intervention - 23 déc. 2007 à 08:06
0
Merci
Salut,
Rien de bizarre dans la manière de gérer les adresses par ollydbg



L'adressage
Commenter la réponse de ToutEnMasm
Nowid50 45 Messages postés dimanche 25 septembre 2005Date d'inscription 29 octobre 2009 Dernière intervention - 23 déc. 2007 à 09:46
0
Merci
Merci bien pour ton aide. J'ai compris maintenant (mais avouer que cela semble bizarre de comncer par 400'000 ;))

Sinon j'ai essayé de modifier le code binaire. Apparemet c'est relatif à la position du CALL/JMP... J'essaye d'autre et je vous tient au courant
Commenter la réponse de Nowid50
Nowid50 45 Messages postés dimanche 25 septembre 2005Date d'inscription 29 octobre 2009 Dernière intervention - 23 déc. 2007 à 11:36
0
Merci
Merci beaucoup je file vérifier ca !
Commenter la réponse de Nowid50
Nowid50 45 Messages postés dimanche 25 septembre 2005Date d'inscription 29 octobre 2009 Dernière intervention - 23 déc. 2007 à 11:36
0
Merci
Merci beaucoup je file vérifier ca !
Commenter la réponse de Nowid50

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.