Вопрос

Я пытаюсь исключить старый формат файла, который был сериализован в Delphi, он использует двоичную серизацию. Я ничего не знаю о структуре файла, кроме некоторых очень высоких записей, которые находятся в нем.

Какие шаги вы бы взяли, чтобы решить эту проблему? Любые инструменты и т. Д.?

Это было полезно?

Решение

Хороший гекседитор, и используйте серое вещество для выявления структур.

Если вы получите подсказку, какой это файл, вы можете искать более специализированные инструменты.

Запуск команды Unix / Linux "File" может быть хорошей тоже (*) см. Комментарий Барри ниже для того, как он работает. Это может быть быстрой проверкой для общих файлов, таких как DBF, Zip и т. Д. Скрыто с использованием другого расширения.

(*) Для Windows есть 3-я вечеринка, но они могут отставать в версиях. Если вы можете сделать это на недавнем * Nix Distro, рекомендуется сделать это.

Другие советы

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

Хороший шестнадцатеричный редактор сначала. Если файл прочитан без буферизации (например, чтение непосредственно из Tfilestream), вы можете получить некоторую информацию при использовании ProCMON из Sysinternals; Вы можете точно видеть, какие данные читаются в каких чанах и, таким образом, определяют быстрее, где границы между структурами, которые вы уже идентифицированы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top