2015-03-16 6 views
1

У меня есть двоичный файл, и я должен отслеживать «динамический массив байтов» в этом файле, этот массив что-то вроде:расширенный массив байтов в поисках

d0 30 60 XX 5d 48

Где XX может быть любым значением HEX

Мне нужно найти все вхождения этого массива в двоичном файле, я имею в виду весь массив байтов, который начинается с D0 30 60 (hex), а затем «XX» (случайный шестнадцатеричный байт), а затем 5D 48 (шестнадцатеричный).

есть ли какой-нибудь инструмент или скрипт python, который может это сделать?

+0

Вы можете взять ввод из файла с помощью '' open' затем explode' с пространством – frunkad

+0

вы можете объяснить, что вы имеете в виду «взрываются»? – user987530

+0

Извините, моя ошибка. В разрыве я имею в виду 'split' – frunkad

ответ

1

Вы можете использовать это:

import re 
fil = open("myfile.txt") 
txt = fil.read() 
mo = re.match(r'd0 3d0 30 60 ([0-9a-f][0-9a-f]) 5d 48',txt,re.M) 

Я не так много использовали regex in python ранее. Я использовал регулярное выражение в Php и т. Д., Так что прихватите эту ссылку.

Edit: Может быть лучше,

f = open('test.txt', 'r') 
s = re.findall(r'd0 3d0 30 60 ([0-9a-f][0-9a-f]) 5d 48',f.read()) 
+0

Я сказал, что хочу найти все массивы байтов, которые начинаются с шестнадцатеричных значений D0 30 60 с последующим случайным значением HEX« XX », после чего следуют значения HEX D5 48 – user987530

+0

Я сказал, что хочу чтобы найти все массивы байтов, начинающиеся с шестнадцатеричных значений D0 30 60 с последующим случайным значением HEX «XX», а затем с значениями HEX. D5 48 – user987530

+1

Вы можете использовать регулярное выражение для него. – frunkad

Смежные вопросы