![]() |
eXeL@B —› Вопросы новичков —› Исследование формата сжатия |
Посл.ответ | Сообщение |
|
Создано: 10 мая 2017 12:15 · Личное сообщение · #1 Добрый день, уважаемые. Вопрос мой таков, а точнее предыстория к нему: столкнулся с Backup Log'ами MSSQL Server'а, архивированными стандартными средствами этого самого сервера. Сторонние утилиты не применялись. Глянул заголовки файлов, не нашел стандартных для формата MTF сигнатур TAPE, MSTL, MQTL и прочих... понятно почему, потому что все сжато. несжатыми остались лишь служебные маркеры SFMB, где хранятся обычно контрольные суммы и адреса точек ленты для позиционирования (понятно, что лента никакая не используется, все на харде, но формат есть формат). Еще немного предыстории: нашел в этом сжатом файле маркеры сжатых стримов. Вот фрагмент моих записей об этом: список найденных хедеров обозначения: : - конец хедера, знак отделяющий хедер от того, что там дальше ++ - байты, в которых так или иначе записана длина блока следующего после знака ":" -- - какой то непонятный кусок, часть хедера, какие то флаги итд ** - флаги блока данных, предположительно в них закодирован используемый алгоритм сжатия 1 блок. возможный блок данных: 81 ** ++ ++ -- -- -- --: ** может быть таким: 02, 04, 06, 0E, 20, 80 если ** = 0E, то после "-- -- -- --" мы имеем Deflate block 2 блок. служебка какая то: 8C 00 00 00 01 00 01 00 -- -- -- -- ++ ++: 3 блок. еще какая то служебка. обычно как заполнитель используется: 84 00 ++ ++: А теперь сам вопрос. Кто-нибудь видел что-то подобное? интересует в первую очередь корреляция ** = {02, 04, 06, 0E, 20, 80} - то есть как определить формат сжатого стрима по этим меджик намберам... ![]() |
|
Создано: 10 мая 2017 15:22 · Личное сообщение · #2 |
|
Создано: 10 мая 2017 15:41 · Личное сообщение · #3 |
|
Создано: 10 мая 2017 17:37 · Личное сообщение · #4 |
|
Создано: 11 мая 2017 10:38 · Личное сообщение · #5 |
|
Создано: 12 мая 2017 17:22 · Личное сообщение · #6 |
|
Создано: 12 мая 2017 18:41 · Личное сообщение · #7 |
|
Создано: 12 мая 2017 20:42 · Личное сообщение · #8 |
|
Создано: 12 мая 2017 21:06 · Поправил: VT-x · Личное сообщение · #9 |
|
Создано: 12 мая 2017 21:08 · Личное сообщение · #10 |
|
Создано: 15 мая 2017 11:00 · Личное сообщение · #11 |
|
Создано: 27 ноября 2017 15:23 · Личное сообщение · #12 время некропостинга: в версии сервера 2014+ изменился формат маркеров 81->21 84->24 8C->2C Также, заголовок каждого из маркеров стал жирнее на 20 байт для 21 (данные) лишние 20 байт идут после контрольной суммы для 24 - просто 20 нулевых байт в конце блока для 2C - 20 нулевых байт после первых 4 байт заголовка, перед 01 00 01 00 возможно, кому то это поможет. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Исследование формата сжатия |