Цитата:
с помощью каких принципов, методов, extracter определяет, что вот эта цепочка байтов - звук, вот эта - картинка, вот это - видео?
|
обычно прямо перед данными или в индекс-таблице есть идентификаторы, которые и показывают, что это за данные
например, запись о данных может быть такой:
Код:
| длина имени | имя | тип данных | размер данных | данные |
| 7 | 001.png | 3 {3=Image} | 102400 | ..... |
| 8 | kill.wav | 2 {2=Sound} | 204800 | ..... |
из 3 поля видно, что это за тип ресурса. Иногда тип не указывается, например, в файлах-архивах, где имитируется кусок ФС (.cgf, .mpq и подобные). в этом случае прога и так знает, что доставать из файла
Цитата:
Как написать программу, которая извлекает?
|
поискать спецификации того или иного формата. если они есть - то просто читать файл в соответствии с ней. если нет - то тут встает довольно трудная задача "раскодирования" файла ресурсов - узнать, что означает то или иное поле в файле, какого оно типа, как располагаются сами ресурсы - один за другим, разделенные заголовками или же заголовки в начале файла, а данные спошняком в конце и т.д. файл может быть еще и зашифрован, такие файлы можно открыть только зная их спецификацию.
универсальный же экстрактор написать в принципе нельзя