я тут ковыряю хекс циферки бинарников, которые генерирует допотопная программа, редактор, (2006 год и ранее, вроде с++) в своем кастомном допотопном формате . Большинство данных лежат в бинарнике "как есть", но есть несколько строчек, которые рандомно меняются при каждом сохранении файла, даже если в программе данные никак не менялись. Думала что это какой нибудь timestamp, но не похоже.
Но некоторые закономерности есть (проверяла на самых маленьких, почти пустых входящих данных): сперва всегда идут 16 байт билиберды, потом число N, три нулевых байта, и снова билиберда в количестве N * 4 байт (вроде бы).
Думала что это какое то шифрование с 16байтным ключем, но вроде как раньше такие большие ключи не юзали, хотя кто их знает...
Еще заметила, что когда ввожу повторяющиеся данные подряд, то вышеупомянутое число N не меняется, что значит что хранение бОльшего объема данных занимает столько же места в памяти. Похоже на работу какого то алгоритма сжатия данных?
Если да, в этом чате могут помочь разобраться, что за алгоритм используется?
Примеры hex дампа:
минимум входящих данных
3A 28 57 26 9E 66 7D 22 8D 7B 70 29 5B 7B EC 1C 02 00 00 00 61 58 28 5C 19 17 3D 2B
набор дублирующихся 5 раз входящих данных
24 20 B0 2D 12 65 E0 24 B1 7E 3B 51 FD 40 F0 77 04 00 00 00 D9 1B D0 49 E4 3A C3 14 06 F3 2D C8 A4 D2 63 01
абсолютно идентичные данные повторно сохраненные
63 0C 9D 7B B2 7A 9F 5E 5A 07 D2 4C 9B 62 3B 19 04 00 00 00 F8 DE E2 58 CE 13 EA C1 6A 36 7E 51 4E CA 52 35