Executer binaire dans registre
Résolu/Fermé
astrocurieux
Messages postés
334
Date d'inscription
mardi 24 février 2015
Statut
Membre
Dernière intervention
29 novembre 2019
-
Modifié par astrocurieux le 11/04/2015 à 10:48
astrocurieux - 13 avril 2015 à 12:37
astrocurieux - 13 avril 2015 à 12:37
A voir également:
- Executer binaire dans registre
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Codage binaire - Guide
- Impossible d'exécuter le fichier binaire : erreur de format pour exec() - Forum Ubuntu
- Clé de registre - Guide
- Alphabet 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
ElementW
Messages postés
4764
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 295
11 avril 2015 à 20:54
11 avril 2015 à 20:54
'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.
11 avril 2015 à 12:39
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 !
Modifié par shaynox le 11/04/2015 à 12:52
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 ^^)
11 avril 2015 à 12:50
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 ;-)
Modifié par shaynox le 11/04/2015 à 13:00
No problem ^^
11 avril 2015 à 13:32
merci quand même de ta rapidité de réponses