Чтение файлов из необработанного образа диска (2352 байта / сектор)
Я уже спрашивал нечто подобное здесь несколько месяцев назад, но, конечно, решение, использованное в моем обновлении, не очень хорошее, потому что я не знаю, с какого смещения начинается нужный файл, этот код читает весь файл, пока не найдет искомую строку. и это не удобно. Вот почему я искал устройство для чтения файлов ISO9660, написанное на Java, и наткнулся на этот проект, который прекрасно читает файлы ISO9660, но есть некоторые форматы файлов, такие как bin
а также img
что я хотел бы иметь возможность открыть.
К сожалению, код не работает, потому что он ожидает заголовок ISO9660 \x01CD001\x01
с префиксным смещением (32768, сразу после первых 16 секторов, зарезервированных для других целей), как определено стандартом здесь и здесь:
7. Первые шестнадцать секторов пусты
Первые шестнадцать секторов (номера секторов от 0 до 15 включительно) содержат только нули. ISO9660 не определяет содержимое этих секторов, но для DOS они, по-видимому, всегда пишутся в виде нулей. По-видимому, они зарезервированы для использования системами, которые могут быть загружены с компакт-диска.
В моем случае у меня есть img
а также bin
образы дисков, которые имеют \x01CD001\x01
заголовок со смещением 37656, 792 байта после окончания 18-го сектора. Это заставляет код выдавать ошибку.
Так как есть программное обеспечение, способное читать содержимое bin
а также img
файл без необходимости cue
или же ccd
файл, каково правило для создания заголовка в таких случаях? Это стандарт или они брутально ищут заголовок через байты? Если это стандарт, где я могу найти какую-либо документацию / реализацию?
ОБНОВЛЕНИЕ: Я обнаружил, что эти файлы имеют другой размер сектора: 2352 байта / сектор, потому что они являются необработанными копиями CD-R.
1 ответ
Поскольку я не нашел ничего подобного, и никто не дал ответа, я сам написал решение, вы можете найти его здесь.
Это библиотека, способная читать файлы с образов дисков, соответствующих формату ISO9660. Он поддерживает 2048 и 2352 байта на сектор изображения.