Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile.
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