Python - 在两个偏移之间提取十六进制值

时间:2018-02-15 17:04:53

标签: python

我有一个文件,我试图从中读取十六进制并提取两个偏移之间的十六进制值。这是我到目前为止所做的:

import re

path = input("Enter path to file you wish to decode (include file in path):  ")
count = 0

f = open(path, 'rb')
data = f.read()
f.close()

addedon = b'\x61\x64\x64\x65\x64\x5F\x6F\x6E\x69'



regex = re.compile(addedon)

for match_obj in regex.finditer(data):
    offset = match_obj.start()
    start = offset + 9
    end = start + 9
    value = data[start] + data[end]
    print("The offset is:  " + str(start) + ":" + str(end) + " containing: " + str(type(value)))
    count += 1

print("Number found:  " + str(count))

这会产生出现次数,并且可以找到我想要的值。举个例子:

偏移量为:117:126,包含:

如何获得这两个数字之间的十六进制值?

1 个答案:

答案 0 :(得分:0)

如果你只想使用hexa值你可以使用hex(n),函数返回hexa表示,如hex(126) - > 0x7e格式。 你可以制作一个简单的.split(' x')并只选择十六进制的值。