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)

samedi 22 décembre 2007 à 17:54:23 | [Assemblage] - Calcul d'Offsets

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 !

dimanche 23 décembre 2007 à 08:06:58 | Re : [Assemblage] - Calcul d'Offsets

ToutEnMasm

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

L'adressage


dimanche 23 décembre 2007 à 09:46:02 | Re : [Assemblage] - Calcul d'Offsets

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

dimanche 23 décembre 2007 à 11:32:04 | Re : [Assemblage] - Calcul d'Offsets

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


dimanche 23 décembre 2007 à 11:36:12 | Re : [Assemblage] - Calcul d'Offsets

Nowid50

Merci beaucoup je file vérifier ca !

dimanche 23 décembre 2007 à 11:36:14 | Re : [Assemblage] - Calcul d'Offsets

Nowid50

Merci beaucoup je file vérifier ca !



Cette discussion est classé dans : code, xx, call, assemblage, offsets


Répondre à ce message

Sujets en rapport avec ce message

Mov mem immediat, immediat [ par Erkson ] Bonjour à tous.J'utilise un Pentium II PC, Windows ME, et un debuggeur qui a un assembleur intégré. Lorsque je veux modifier le programme que je debug Invoke et Call [ par Micro_and_Macro ] Bonjour Voilà je débute en asm(masm32) et j'expérimente, mais là je flanche :-)Pourquoi ces 2 codes ne donnent -il pas la mêm chose?1er code.code DLL et Code Segment [ par Taron31 ] Bonjour, j'ai une question peut-être un peu étrange : en effet, je voudrais savoir si tout le code d'une DLL (par exemple NtDll.dll) est situé dans un TSR & Détournement d'interrupt(ion) [ par ghuysmans99 ] bonjour à tous.j'ai fait un petit prog en asm 32bits pour dos mais il ne fonctionne pas ... reste à savoir pourquoi !!pourriez-vous m'aider ??;Change Boot et heure [ par henri12 ] je fais un essai de changement de l heure avec l interruption 21h sous le boot l heure n est pas changerpourquoi.286C   ;Code de bootsecteur permettan ebx et interface C/C++ [ par kaervas ] Bonjour, pourquoi ne pas modifier la valeur du registre %ebx dans une interface en C/C++? En effet, j'ai code plusieurs fonctions dans des .o, que j'u Peut-on générer du code pour 68hc16 avec Visual Studio... [ par search47 ] J'utilise Visual Studio .NET (C#)Est-il possible d'utiliser ce même éditeur pour compiler du C pour un 68hc16 (ou autre) et générer le fichier binaire [nasm] ligne de commande [ par Kevin68 ] Bonjour :),Je suis débutant en assembleur, j'utilise nasm sous linux.J'ai cherché partout un exemple de code source qui me permettrait de récupérer le Pour assembler un code [ par neo1012 ] Salut,Une fois que vous avez ecrit un source en ASM, avec quoi et comment vous l'assemblez ? Cherchez l'erreur [ par neo1012 ] Salut, J'ai commencé l'ASM il n'y a pas longtemps, et hier j'ai fait mom premier programme: jmp string code: pop ecx mov bl,1 mov dl,23 ;mov al,4 i


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 13,026 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.