DLL-файлы по сравнению с GZIP-файлами - PullRequest
0 голосов
/ 24 марта 2011

Хорошо, заголовок не очень понятен.

С учетом байтового массива (считанного из BLOB-объекта базы данных), представляющего ЛЮБУЮ последовательность байтов, содержащихся в .dll, или последовательность байтов, представляющих gzipВерсия этой dll, есть ли (относительно) простая подпись, которую я могу искать, чтобы различать две?

Я пытаюсь разгадать это самостоятельно, но обнаружил, чтоможет сэкономить много времени, обратившись за помощью.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 24 марта 2011

Файл gzip должен быть достаточно простым, чтобы определить, поскольку он должен состоять из верхнего, нижнего колонтитула и некоторых других различимых элементов между ними.

Из Википедия :

«gzip» также часто используется для обозначения формата файла gzip:

  • 10-байтовый заголовок, содержащий магическое число, версиюномер и отметка времени

  • необязательные дополнительные заголовки, такие как исходное имя файла

  • тело, содержащее полезную нагрузку со сжатием в DEFLATE

  • 8-байтовый нижний колонтитул, содержащий контрольную сумму CRC-32 и длину исходных несжатых данных

Вы также можете попробовать определитьесли gzip содержит какие-либо записи / записи, так как каждая из них также имеет свой собственный заголовок.

Вы можете найти конкретную информацию об этом формате файла (в частности, заголовок члена, который связан) здесь .

0 голосов
/ 24 марта 2011

Проверьте, являются ли первые два байта gzip магическим числом 0x1f8b (см. RFC 1952 ). Или просто попробуйте gunzip, операция завершится ошибкой, если DLL не gzip 'd.

...