Важная информация

User Tag List

Показано с 1 по 5 из 5

Тема: XTractor

  1. #1
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию XTractor

    В качестве побочного эффекта разработки ZXTune родилась данная утилита.

    Что она делает. Да просто анализирует файлы на входе и для каждого из них строит карту внутреннего содержимого.

    Например, простой запуск:
    Код:
    xtractor ../Bugs/v14/K/KRLOVE.TRD
    даст на выходе папку с дефолтным именем XTractor со следующим содержимым:
    Код:
    KRLOVE.TRD
    KRLOVE.TRD/+0
    KRLOVE.TRD/+0/TR-Dos disks image
    KRLOVE.TRD/+0/TR-Dos disks image/$Track0
    KRLOVE.TRD/+0/TR-Dos disks image/$Track0/+0
    KRLOVE.TRD/+0/TR-Dos disks image/SYSTEM.C.C
    KRLOVE.TRD/+0/TR-Dos disks image/SYSTEM.C.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/Cr_Love.B
    KRLOVE.TRD/+0/TR-Dos disks image/Cr_Love.B/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+499
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+499/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+499/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+4663
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+4663/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+4663/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+13478
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+13478/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+13478/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+0/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+0/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#10.C/+15865
    KRLOVE.TRD/+0/TR-Dos disks image/MAIN.C.C
    KRLOVE.TRD/+0/TR-Dos disks image/MAIN.C.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+11008
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+11008/Powerfull Code Decreaser v6.2
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+11008/Powerfull Code Decreaser v6.2/+0
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+0
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+6803
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+256
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+256/Powerfull Code Decreaser 6.2
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+256/Powerfull Code Decreaser v6.2/+0
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+10951
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+6912
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+6912/Hrum v3.x
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+6912/Hrum v3.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/boot.B/+14963
    KRLOVE.TRD/+0/TR-Dos disks image/DEHRUST.C
    KRLOVE.TRD/+0/TR-Dos disks image/DEHRUST.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/Cr_Love.W
    KRLOVE.TRD/+0/TR-Dos disks image/Cr_Love.W/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+13827
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+13827/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+13827/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+0/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+0/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+0/Hrust v1.x/+51
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+0/Hrust v1.x/+51/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+0/Hrust v1.x/+51/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#14.C/+14750
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+0/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+0/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+8915
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+8915/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+8915/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+10582
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+10582/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+10582/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+12076
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+12076/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+12076/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#13.C/+16255
    KRLOVE.TRD/+0/TR-Dos disks image/$Unallocated
    KRLOVE.TRD/+0/TR-Dos disks image/$Unallocated/+0
    KRLOVE.TRD/+0/TR-Dos disks image/!screen!
    KRLOVE.TRD/+0/TR-Dos disks image/!screen!/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+15636
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+4085
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+4085/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+4085/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+0/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+0/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+11865
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+11865/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+11865/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+15025
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+15025/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#11.C/+15025/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#16.C
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#16.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#16.C/+0/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#16.C/+0/Hrust v1.x/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#16.C/+4527
    KRLOVE.TRD/+0/TR-Dos disks image/!music!
    KRLOVE.TRD/+0/TR-Dos disks image/!music!/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#12.C
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#12.C/+10058
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#12.C/+0
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#12.C/+0/Hrust v1.x
    KRLOVE.TRD/+0/TR-Dos disks image/BANK#12.C/+0/Hrust v1.x/+0
    Как видно, для входного файла создалась одноименная папка, внутри которой по полочкам разложены все блоки данных обнаруженных форматов.

    Если на входе не исключены файлы с одинаковыми именами, то, с помощью специального ключа, имя папки может принимать значение полного пути к исходному файлу:
    Код:
    xtractor --target_dir FullPath --full_source_path ../Bugs/v14/K/KRLOVE.TRD
    что даст на выходе вновьсозданную папку FullPath с содержимым:
    Код:
    .._Bugs_v14_K_KRLOVE.TRD/
    ...
    дальнейшее содержимое аналогично папке KRLOVE.TRD из предыдущего примера
    Если же на выходе нужен просто список файлов, а не полная иерархия, надо запустить следующим образом:
    Код:
    xtractor --target_dir FlatSubpath --flat_subpath ../Bugs/v14/K/KRLOVE.TRD
    что даст на выходе новую папку FlatSubpath с содержимым:
    Код:
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#10.C_+0_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#10.C_+13478_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#10.C_+15865
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#10.C_+4663_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#10.C_+499_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#11.C_+0_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#11.C_+11865_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#11.C_+15025_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#11.C_+15636
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#11.C_+4085_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#12.C_+0_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#12.C_+10058
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#13.C_+0_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#13.C_+10582_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#13.C_+12076_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#13.C_+16255
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#13.C_+8915_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#14.C_+0_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#14.C_+0_Hrust v1.x_+51_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#14.C_+13827_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#14.C_+14750
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#16.C_+0_Hrust v1.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_BANK#16.C_+4527
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+0
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+10951
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+11008_Powerfull Code Decreaser v6.2_+0
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+14963
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+256_Powerfull Code Decreaser v6.2_+0
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+6803
    KRLOVE.TRD_+0_TR-Dos disks image_boot.B_+6912_Hrum v3.x_+0
    KRLOVE.TRD_+0_TR-Dos disks image_Cr_Love.B_+0
    KRLOVE.TRD_+0_TR-Dos disks image_Cr_Love.W_+0
    KRLOVE.TRD_+0_TR-Dos disks image_DEHRUST.C_+0
    KRLOVE.TRD_+0_TR-Dos disks image_MAIN.C.C_+0
    KRLOVE.TRD_+0_TR-Dos disks image_!music!_+0
    KRLOVE.TRD_+0_TR-Dos disks image_!screen!_+0
    KRLOVE.TRD_+0_TR-Dos disks image_SYSTEM.C.C_+0
    KRLOVE.TRD_+0_TR-Dos disks image_$Track0_+0
    KRLOVE.TRD_+0_TR-Dos disks image_$Unallocated_+0
    Поскольку результат может содержать в себе много мусора, предусмотрена пара опций для фильтровки:
    --ignore_empty - блоки данных, состоящие из одинаковых байт, сохраняться не будут
    --minimal_size N - не сохранять блоки данных с размером, меньшим N (в байтах)

    Немного общих слов о возможностях и ограничениях:
    - справку по опциям можно получить, запустив "xtractor --help"
    - возможен многопоточный анализ
    - возможен рекурсивный поиск файлов в папках
    - программа еще не до конца оттестирована, так что возможны разного рода глюки
    - прогресс не реализован
    - анализ терминальных типов блоков (например чиптюнов) пока вырезан

    Скачать версию для win64
    Скачать версию для win32

  2. Эти 4 пользователя(ей) поблагодарили Vitamin за это полезное сообщение:
    alone (02.03.2012), NEO SPECTRUMAN (22.02.2012), newart (22.02.2012), razer (16.01.2015)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,948
    Благодарностей: 1520
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    х64 традиционно не работает (проверил на двух компах).

  5. #3
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от newart Посмотреть сообщение
    х64 традиционно не работает (проверил на двух компах).
    Традиционный совет обновиться.

  6. #4
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновление xtractor до версии 1594.

    - убраны опции --target_dir,--full_source_path,--flat_subpath
    + вместо них введена одна опция --target-name-template, с помощью которой указывается шаблон результата.
    По умолчанию он равен "XTractor/[Filename]/[Subpath]", что полностью соответствует параметрам по умолчанию предыдущей версии.
    Допустимые поля в шаблоне можно узнать из встроенного хелпа (запуск с --help).
    * пофикшены падения при невозможности создания файлов с запрещенными именами
    * ускорено сканирование (раза так в 2- забыл убрать одну пессимизацию )
    + добавлен режим сбора статистики без сохранения результата
    * новый экспериментальный движок анализа

    Скачать версию для win32
    Скачать версию для win64

  7. #5
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,041
    Благодарностей: 1426
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Билд 1536:

    + поддержка фильтров. При наличии указанной последовательсности hex чисел в блоках данных они будут сохранены (на самом деле формат сложнее, но мне влом описывать )
    * пофикшены падения при невозможности открыть или создать файл. Теперь пишется сообщение
    * пофикшена неработоспособность 64-битной версии с русскими буквами в именах файлов

    Скачать версию для win32
    Скачать версию для win64

    В xtractor попадают все кумулятивные изменения из zxtune, связанные с поддержкой сжатых или архивных форматов.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •