Executer binaire dans registre
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
je bloque totalement sur un principe assez tordue ...
je reçoit un fichier qui comporte des instruction en assembleur .
je le traduit en base binaire dans un fichier au format .cor
ce fichier doit par la suite être interprété et exécuter dans des registres .
et c'est justement la ou je bloque !
comment, a partir d'un binaire je peut interpréter des instruction d'assembleur en binaire ?
puis comment les intégrer dans un registre ?
besoin de votre aide de toute urgence je n'est plus beaucoup de temps devant moi ....
je bloque totalement sur un principe assez tordue ...
je reçoit un fichier qui comporte des instruction en assembleur .
je le traduit en base binaire dans un fichier au format .cor
ce fichier doit par la suite être interprété et exécuter dans des registres .
et c'est justement la ou je bloque !
comment, a partir d'un binaire je peut interpréter des instruction d'assembleur en binaire ?
puis comment les intégrer dans un registre ?
besoin de votre aide de toute urgence je n'est plus beaucoup de temps devant moi ....
A voir également:
- Executer binaire dans registre
- Registre windows - Guide
- Binaire - Guide
- Editeur binaire - Télécharger - Édition & Programmation
- Alphabet binaire ✓ - Forum Programmation
- Ensemble des nombre binaire ✓ - Forum Programmation
2 réponses
Salut, qu'ententu par register ? Je connait pas de register sous Linux
Quel est ton but ? executer un programme binaire venant d'un programme asm ?
Je crois que tu doit passer par le shell: ./programme.cor (ton programme)
(\___/)
(='.'=)
(")_(")
This is Bunny. Copy and paste bunny into...
...your signature to help him gain world domination
Quel est ton but ? executer un programme binaire venant d'un programme asm ?
Je crois que tu doit passer par le shell: ./programme.cor (ton programme)
(\___/)
(='.'=)
(")_(")
This is Bunny. Copy and paste bunny into...
...your signature to help him gain world domination
'lut, la seule chose qu'on intègre dans un registre, c'est un entier, de 32 ou 64 bits généralement.
L'exécution du code dépend de 2 facteurs: l'architecture CPU hôte et du jeu d'instruction du fichier reçu. Si les deux sont égaux, on peut, avec la nécessité de connaître parfaitement l'assembleur pour cette architecture faire tourner le code: il faut prendre un nombre énorme de précautions (register clobbering et autres inconvénients d'une machine à état) et pouvoir s'assurer que le code n'est pas malveillant.
Sinon, il faut l'interpréter (Virtual Machine) ou le convertir (AOT/JIT), sachant que ce dernier est dur a faire.
L'exécution du code dépend de 2 facteurs: l'architecture CPU hôte et du jeu d'instruction du fichier reçu. Si les deux sont égaux, on peut, avec la nécessité de connaître parfaitement l'assembleur pour cette architecture faire tourner le code: il faut prendre un nombre énorme de précautions (register clobbering et autres inconvénients d'une machine à état) et pouvoir s'assurer que le code n'est pas malveillant.
Sinon, il faut l'interpréter (Virtual Machine) ou le convertir (AOT/JIT), sachant que ce dernier est dur a faire.
pour ce faire je doit parvenir a découper mon binaire de sorte que mes instruction soit gérer l'une après l'autre dans des registres ( mémoire rapide )
ps : désoler des fautes je suis dyslexique !
La plus simple méthode pour transformer des instructions asm en binaire c'est de passer par un assembleur comme le fameux https://nasm.us/ :p
Ensuite seulement tu pourras l'éxécuter son ton Linux via ./ Tu travaille bien sous Linux ?
Et pour le faite que les instruction transformée en binaire soit reconnue par le CPU, ne t'en fait pas pour ça, d'ailleurs c'est quoi ton cpu, intel amd ?
IL ne faut pas s'en faire, car une instruction asm reconnue par le cpu, serat forcément éxecutée par le CPU, comme un simple: mov rax, 2
Instruction assembleur = mnemonic (keyword) d'opcode (ecriteur binaire plus souvent représentée par une ecriture hexadecimal 0xDEADBEEF ^^)
comment faire pour l'exécuter sous Linux ? ( je suis sous Blinux )
a partir d'un autre programme en c bien entendue !
merci de ton aide ;-)
No problem ^^
merci quand même de ta rapidité de réponses