Итак, у меня есть образец вредоносного ПО с именем data.tst
, и я хэширую его с помощью python, используя модуль hashlib
, например:
def get_hash(name, hash_type, chunk_size=65536):
if hash_type.lower() == "sha256":
h = hashlib.sha256()
elif hash_type.lower() == "md5":
h = hashlib.md5()
elif hash_type.lower() == "sha1":
h = hashlib.sha1()
elif hash_type.lower() == "imphash":
return pefile.PE(name).get_imphash()
else:
h = hashlib.sha256()
with open(name) as data:
block = data.read(chunk_size)
while len(block) > 0:
h.update(block)
block = data.read(chunk_size)
return h.hexdigest()
Когда создается ха sh, я получаю следующее значение с использованием SHA256: 1993322ebde08bdab69c0efbcc22ba4173e8ece04f35e1f70ca55ea7c90fbcd3
. Однако образец был представлен ранее и хэширован до следующего значения: aa5f607076433086f6259131c4ba155b6f2587569f7fb0f21a0a4cdda225bd98
есть ли причина, по которой мои значения ha sh так сильно отличаются, есть ли что-то в моем коде выше, что я могу сделать лучше, чтобы получить правильный ха sh?