Привет всем!
Я пытаюсь понять структуру двоичного файла (данные русско-английского словаря). Программа позволяет добавлять и менять уже имеющиеся данные, поэтому можно отследить, как меняются двоичные данные. Двоичных файлов несколько, они имеют разную структуру и разное назначение. Разобрал большинство из них, но застопорился на одном. Разобрал его вплоть до сегментов вида
b'\xfcqo\x7fx\x87\x8e\x98\x94\x9f93(946KITsbYje}q\xa6\xd0\xda'
Кроме того, после байтов, кодирующих слово, идут 3 последних байта, назначение которых неясно (сегмент, в котором кодируется слово «палата», заканчивается на байты b'\xa6\xd0\xda'). Интересная особенность этих 3 последних байтов заключается в том, что они всегда будут одинаковы для слов одинаковой длины. Например, слово «макака» кодируется в сегменте
b'\xfcqo\x7fx\x87\x8e\x98\x94\x9f93(946KITs_Yieuq\xa6\xd0\xda'
b'\xfcqo\x7fx\x87\x8e\x98\x94\x9f93(946KITs\xa3\xa9\xaf\xb5\xbb\xc1\xc7\xcd\xb2\xdc\xe6'
TL/DR: байты кодируются в зависимости от своих позиций - но каким образом?
Я не хакер и не силен в разборе двоичных файлов, поэтому нужна помощь. Кто-нибудь может подсказать, по какому алгоритму кодируются символы?
Вот здесь есть все слова, которые я анализировал.