Executer binaire dans registre
Résolu/Fermé
Utilisateur anonyme
-
Modifié par astrocurieux le 11/04/2015 à 10:48
Utilisateur anonyme - 13 avril 2015 à 12:37
Utilisateur anonyme - 13 avril 2015 à 12:37
A voir également:
- Executer binaire dans registre
- Registre windows - Guide
- Codage binaire - Guide
- Alphabet binaire ✓ - Forum Programmation
- Comment écrire en binaire ? ✓ - Forum Programmation
2 réponses
Utilisateur anonyme
Modifié par shaynox le 11/04/2015 à 12:13
Modifié par shaynox le 11/04/2015 à 12:13
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
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
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