begin process at 2008 08 20 19:07:11
1 229 029 membres
388 nouveaux aujourd'hui
14 260 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : [Assemblage] - Calcul d'Offsets [ Divers / Aide et documentation ] (Nowid50)

[Assemblage] - Calcul d'Offsets le 22/12/2007 17:54:23

Nowid50
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 !

Re : [Assemblage] - Calcul d'Offsets le 23/12/2007 08:06:58

ToutEnMasm

Salut,
Rien de bizarre dans la manière de gérer les adresses par ollydbg

L'adressage


Re : [Assemblage] - Calcul d'Offsets le 23/12/2007 09:46:02

Nowid50
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

Re : [Assemblage] - Calcul d'Offsets le 23/12/2007 11:32:04

ToutEnMasm
Réponse acceptée !

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


Re : [Assemblage] - Calcul d'Offsets le 23/12/2007 11:36:12

Nowid50
Merci beaucoup je file vérifier ca !

Re : [Assemblage] - Calcul d'Offsets le 23/12/2007 11:36:14

Nowid50
Merci beaucoup je file vérifier ca !


Classé sous : code, xx, call, assemblage, offsets

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
extraction dinformatio...
Budget : 300€
campagne Adwords
Budget : 5 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS