#1 Le 03/08/2013, à 14:49
- king-zero
Recherche chaine hex dans disque.
Bonjour,
Alors le titre n'est pas très explicite, voila ce que je veux faire :
Je veux rechercher dans tout mon disque, une chaine hexadecimal et une fois trouvé selectionner les 32octets suivants.
J'ai vu dans la doc de la commande dd qu'il est possible de le faire en la combinant avec grep. Mais comment selectionner les 32 octets suivants ?
Voila la commande dd que j'ai pu trouver :
dd if=/dev/hdd | hexdump -C | grep 'chaine_de_caracteres'
Merci d'avance.
Dernière modification par king-zero (Le 03/08/2013, à 14:49)
Hors ligne
#2 Le 03/08/2013, à 18:03
- pingouinux
Re : Recherche chaine hex dans disque.
Bonjour,
J'ai un script en python3 à te proposer :
$ cat cherche_bin.py
#! /usr/bin/python3
# -*- coding: utf-8 -*-
import sys, re
fic=sys.argv[1]
txt=bytes(sys.argv[2],'utf-8')
n=int(sys.argv[3])
nmax=int(sys.argv[4])
lon=len(txt)
txt+=bytes('.{%s}'%n,'utf-8')
lon+=n
lbuf=100000; pos=0
with open(fic,'rb') as f :
while True :
chaine=f.read(lbuf)
print("Texte cherché=%s"%txt)
k=re.search(txt,chaine,re.S)
if k :
print("Début (inclus)=%s Fin (exclue)=%s"%(k.start(0),k.end(0)));
print(k.group(0))
break
f.seek(-lon+1,1)
pos+=lbuf-lon+1
if len(chaine)<lbuf or pos>nmax :
print("Chaîne donnée suivie de %d caractères non trouvée"%n);
break
Utilisation :
/chemin_vers_le_script/cherche_bin.py /dev/hdd '\xc0\x8e\xd0\xbc' 32 200000
arg1 : fichier à lire, ou disque
arg2 : Chaîne en hexa à rechercher
arg3 : Nombre d'octets supplémentaires à lire
arg4 : Nombre max d'octets lus dans le fichier ou sur le disque
Cette commande peut éventuellement être précédée de sudo
Hors ligne
#3 Le 03/08/2013, à 18:44
- king-zero
Re : Recherche chaine hex dans disque.
Salut pingouinux,
Je te remercie tout d'abord pour le script .
Donc si je veux lire le disque tout entier, je dois donner en arg4 la taille du disque en octets c'est bien ça ?
Merci encore.
Hors ligne
#4 Le 03/08/2013, à 18:46
- pingouinux
Re : Recherche chaine hex dans disque.
Donc si je veux lire le disque tout entier, je dois donner en arg4 la taille du disque en octets c'est bien ça ?
Oui, ou un nombre plus grand.
Hors ligne
#5 Le 03/08/2013, à 18:50
- king-zero
Re : Recherche chaine hex dans disque.
ok, Merci.
Je teste et je te tient au courant.
Hors ligne