#1 Le 17/11/2014, à 10:15
- obibann
[Résolu] Injecter du binaire à l'aide de dd
Bonjour,
Pour un petit projet perso, j'aurai besoin de pouvoir écrire du binaire dans la mbr d'un disque de test.
L'extraction / injection de la MBR est relativement simple avec dd. Cependant, je n'arrive pas à modifier le contenu du dump de manière automatisée (sans passer par un éditeur). Auriez vous une méthode qui permet d'écrire en binaire dans un fichier ?
Merci beaucoup.
Dernière modification par obibann (Le 17/11/2014, à 14:32)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#2 Le 17/11/2014, à 10:46
- Nasman
Re : [Résolu] Injecter du binaire à l'aide de dd
Un assembleur ? (gas, nasm...)
PC fixe sous Bionic 64 bits et portable avec Focal 64 bits
Hors ligne
#3 Le 17/11/2014, à 11:28
- obibann
Re : [Résolu] Injecter du binaire à l'aide de dd
Il n'existe pas un genre de "pack" en shell ?
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#4 Le 17/11/2014, à 11:41
- pingouinux
Re : [Résolu] Injecter du binaire à l'aide de dd
Auriez vous une méthode qui permet d'écrire en binaire dans un fichier ?
Bonjour,
Tu peux utiliser python, C ou même le bash. As-tu un exemple précis de ce que tu veux faire ?
Hors ligne
#5 Le 17/11/2014, à 12:04
- obibann
Re : [Résolu] Injecter du binaire à l'aide de dd
Un exemple : modifier les octet 511 et 512 (0xAA55) vers autre chose (0xAA44) par exemple.
Si ça peut être réaliser en bash, ça serait top !
Merci.
Dernière modification par obibann (Le 17/11/2014, à 12:04)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#6 Le 17/11/2014, à 12:48
- pingouinux
Re : [Résolu] Injecter du binaire à l'aide de dd
Tu peux essayer ceci (514 = 511 + 2 + 1 = adresse_du_1er_octet + nb_octets + 1) :
head -c 511 fic_1 >fic_2
printf "\xaa\x44" >>fic_2
tail -c +514 fic_1 >>fic_2
Ajouté : Un peu plus simple
deb=511; lon=2
(head -c $deb;printf "\xAA\x44";tail -c +$((lon+1)) ) <fic_1 >fic_2
Dernière modification par pingouinux (Le 17/11/2014, à 13:23)
Hors ligne
#7 Le 17/11/2014, à 13:12
- credenhill
Re : [Résolu] Injecter du binaire à l'aide de dd
essayer
(dd if=dump bs=1 count=510 ;echo -en $'\xAA\x44'; dd if=dump bs=1 skip=513)>newdump
Dernière modification par credenhill (Le 17/11/2014, à 13:15)
Hors ligne
#8 Le 17/11/2014, à 13:22
- obibann
Re : [Résolu] Injecter du binaire à l'aide de dd
Merci pingouinux et credenhill !
Vos 2 solutions sont parfaites !!
Merci !!
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#9 Le 17/11/2014, à 13:35
- pingouinux
Re : [Résolu] Injecter du binaire à l'aide de dd
Attention : La solution de credenhill et la mienne ne sont pas équivalentes.
En #6, on commence à écrire à l'octet d'adresse 511 (le 512ème du fichier), alors qu'en #7, on écrit à l'octet d'adresse 510 (le 511ème du fichier). C'est à toi de voir ce qui te convient.
Hors ligne
#10 Le 17/11/2014, à 14:30
- obibann
Re : [Résolu] Injecter du binaire à l'aide de dd
Les 2 me plaisent. Je vais me décider dans l'après midi.
2 solutions possibles, que demander de mieux ?
Merci beaucoup
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#11 Le 18/11/2014, à 13:40
- credenhill
Re : [Résolu] Injecter du binaire à l'aide de dd
autre méthode
hexdump -ve '1/1 "%.2X\n"' dump | sed '511s/.*/AA/;512s/.*/44/' | xxd -r -p >newdump
Hors ligne