LINUX.ORG.RU

Извлечь данные из образа DVD диска без ФС


0

1

Доброго времени суток.

Собственно...Пытаюсь придумать способ извлечения инфы с образа диска. Все было-бы намного проще, если-б не отсутствующие 2048к\баита информации в начале образа. (Прочитать их НЕЛЬЗЯ!!!!!!!!!!!!!!!!!!!) Там была ФС и начало данных.

Метод горячей замены воспроизводить не стоит.

foremost не помог, так-как ищутся .VOB файлы (а что такое HEX сигнатура я особо не понимаю)

Прикрутить к образу донорскую ФС можно, но бесполезно... так как там пара десятков фоток и пара маленьких MPEG файлов. Из файлов получаетя солянка..... При воспроизведении проигрыватели посылают в интернет за кодеками.

Поле для меня новое.... Сейчас курю Sleuth Kit. Не знаю как определить границы файлов....



Последнее исправление: sCat (всего исправлений: 1)

Не знаю как определить границы файлов....

Таки кури сигнатуры. Мэджики типа RIFF и JFIF решают.

Xenesz ★★★★
()
Ответ на: комментарий от ZenitharChampion

Можешь чуть подробнее про связь hex редактора hex сигнатур foremost-а

R-studio ..... Диск под виндами не виден вообще.

sCat
() автор топика

Теоретически может помочь скрипт вида:
for ((n=0; n<размер_файла_в_байтах; n++))
do
echo -n «$n »
tail -c +$n filename | file -
done | grep -v '/dev/stdin: data'

Он начинает считывать порции данных в pipe программе file (определителю типов файлов), каждый раз увеличивая смещение относительно начала образа на 1.
Вместо grep -v ... можно попробовать grep -i -e mpeg -e jpeg.

AITap ★★★★★
()
Ответ на: комментарий от sCat

Он выпущен для Linux. Подробнее про сигнатуры рассказать не могу: знаю ещё меньше, чем ты.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от AITap

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

Где начальный параметр смещения, так-как файл в образе не один.

Мож я че не понимаю, но почему tail.... а не head.

На диске солянка из vob mpeg jpg.... итд файлов.

sCat
() автор топика
Ответ на: комментарий от sCat

man file. Утиль такая. Опознаёт тип файла по сигнатуре, соответственно с ней идёт толстая база оных сигнатур. Просто повтыкай в начало шестнадцатеричных дампов файлов тех типов, что у тебя на покорёженном двд. Типа

od -t xa -N 64 картинко
Мэджик — последовательность определённых байтов в определённом месте в файле (обычно в начале), специфичная для данного типа файла.

Xenesz ★★★★
()
Ответ на: комментарий от sCat

> Если на то пошло, то такой скрипт по идее должен в одну строку писать номер блока и результат проверки...это минимум.
Так и есть.

Где начальный параметр смещения, так-как файл в образе не один.

Перебираются все смещения от 0 до размера файла (подставьте сами).

Мож я че не понимаю, но почему tail.... а не head.

man tail:
-c, --bytes=K
output the last K bytes; alternatively, use -c +K to output bytes starting with the Kth of each file

На диске солянка из vob mpeg jpg.... итд файлов.

Посмотрите, как на такие файлы реагирует утилита file, и скормите результат grep'у.

AITap ★★★★★
()
Ответ на: комментарий от Xenesz

Результаты

Было взято 4 .vob файла.

Вот дампы.:

od -t x1 -N 512 dvd/VTS_11_0.VOB 0000000 00 00 01 ba 44 00 04 00 04 01 01 89 c3 f8 00 00 0000020 01 bb 00 12 80 c4 e1 00 e1 7f b9 e0 e8 b8 c0 20 0000040 bd e0 3a bf e0 02 00 00 01 bf 03 d4 00 00 00 00 0000060 00 00 00 00 00 00 00 00 00 00 00 62 70 00 01 0b 0000100 30 00 00 70 80 00 00 00 40 00 00 00 00 00 00 00 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0001000

0000000 00 00 01 ba 44 00 04 00 04 01 01 89 c3 f8 00 00 0000020 01 bb 00 12 80 c4 e1 00 e1 7f b9 e0 e8 b8 c0 20 0000040 bd e0 3a bf e0 02 00 00 01 bf 03 d4 00 00 00 00 0000060 00 00 00 00 00 00 00 00 00 00 00 62 70 00 01 0b 0000100 30 00 00 70 80 00 00 00 40 00 00 00 00 00 00 00 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0001000

od -t x1 -N 512 dvd/VTS_11_0.VOB 0000000 00 00 01 ba 44 00 04 00 04 01 01 89 c3 f8 00 00 0000020 01 bb 00 12 80 c4 e1 00 e1 7f b9 e0 e8 b8 c0 20 0000040 bd e0 3a bf e0 02 00 00 01 bf 03 d4 00 00 00 00 0000060 00 00 00 00 00 00 00 00 00 00 00 62 70 00 01 0b 0000100 30 00 00 70 80 00 00 00 40 00 00 00 00 00 00 00 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0001000

od -t x1 -N 512 dvd/VTS_11_1.VOB 0000000 00 00 01 ba 44 00 04 00 04 01 01 89 c3 f8 00 00 0000020 01 bb 00 12 80 c4 e1 00 e1 7f b9 e0 e8 b8 c0 20 0000040 bd e0 3a bf e0 02 00 00 01 bf 03 d4 00 00 00 00 0000060 00 00 00 00 00 00 00 00 00 00 00 62 70 00 01 35 0000100 60 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 0000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0001000

Повторения есть. Теперь осталось воткнуть их в /etc/foremost.conf

sCat
() автор топика
Ответ на: комментарий от Xenesz

>Мэджик — последовательность определённых байтов в определённом месте в файле (обычно в начале), специфичная для данного типа файла.

Foremost ищет файлы по типам. Его параметры: Расширение, размер, заголовок, колонтитул.

Заголовок и колонтитул (Headers and footers) - это hex-последовательности. Я выложил дампы аналогичных файлов.

Где заголовок, а где колонтитул ...как их найти.?

Можно-ли считать заголовком повторяющиеся последовательности в дампах?

sCat
() автор топика

А принудительно монтироваться как -t iso9660 отказывается?

anonymous
()
Ответ на: комментарий от AITap

Ни с какими. Скрипт не работает по причине того, что
начало первого файла не в начале образа, а неизвесно где.
фильтровать грипу было нечего.......

blkcat -h -f raw -i split /home/scat/isofs/sol.img 1 9180415 |grep ffd8ffe1

ffd8ffe1 - hex сигнатура jpg файла.
Эта команда дала:
1223642624 ffd8ffe1 0d1a4578 69660000 4d4d002a .... ..Ex if.. MM.*
1223804416 ffd8ffe1 0d094578 69660000 4d4d002a .... ..Ex if.. MM.*
1223970304 ffd8ffe1 0bd94578 69660000 4d4d002a .... ..Ex if.. MM.*
1224111616 ffd8ffe1 0d034578 69660000 4d4d002a .... ..Ex if.. MM.*
1224338944 ffd8ffe1 0d554578 69660000 4d4d002a .... .UEx if.. MM.*
1224574464 ffd8ffe1 0d494578 69660000 4d4d002a .... .IEx if.. MM.*
1232332288 ffd8ffe1 10784578 69660000 4d4d002a .... .xEx if.. MM.*
1232623104 ffd8ffe1 112f4578 69660000 4d4d002a .... ./Ex if.. MM.*
....................

Вроде как номера блоков относящихся к jpg файлам, либо начальные блоки jpg файлов.

sCat
() автор топика
Ответ на: комментарий от sCat

> Ни с какими. Скрипт не работает по причине того, что
начало первого файла не в начале образа, а неизвесно где.
фильтровать грипу было нечего.......
Да не в файле дело. Смотреть нужно с самого начала диска и увеличивать смещение на 1, так что начало каждого файла будет гарантированно найдено.

AITap ★★★★★
()

>Прикрутить к образу донорскую ФС можно, но бесполезно... так как там пара десятков фоток и пара маленьких MPEG файлов.

фотки вытащит photorec без особых проблем.

А вот с VOB будут траблы. Хотя обычные avi и mpeg файлы он тоже вытащит.

dikiy ★★☆☆☆
()
Ответ на: комментарий от AITap

В оригинале выхлоп:

grep: /dev/stdin: data: Нет такого файла или каталога

С grep -i -e dvd Нет выхлопа вообще.

sCat
() автор топика
Ответ на: комментарий от sCat

> grep: /dev/stdin: data: Нет такого файла или каталога
Ваш шелл? Версия grep'а? Вы точно ввели текст правильно?
У меня такая конструкция прекрасно отрабатывает.

С grep -i -e dvd Нет выхлопа вообще.

Почему Вы уверены в том, что будучи натравленным на один из лежащих в образе файлов, file выдаст строку, содержащую «dvd»?

AITap ★★★★★
()
Ответ на: комментарий от AITap

На счет шелла - это резонно. Такой конструкции цикла в bash я не видел.......

GNU grep 2.5.4

Copyright (C) 2009 Free Software Foundation, Inc. Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html> Это свободное ПО: вы можете продавать и распространять его. Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.

sCat
() автор топика
Ответ на: комментарий от sCat

Тем не менее, это bash.

Попробуйте так:

1) Запишите этот текст в файл script.sh

#!/bin/bash

[ $# -eq 1 ] || exit 1

max=$(wc -c "$1" | cut -d' ' -f 1)

for ((n=0; n<$max; n++))
do
echo -en "\r\e[2K$n "
tail -c +$n /media/disk/bootcd-ng/image.iso | file -b - | grep -v '^data$'
done
2) Запустите
/путь/к/script.sh filename.iso

AITap ★★★★★
()
Ответ на: комментарий от AITap

Обратите внимание: file найдёт кучу ложных совпадений, так что вместо grep -v data должно стоять что-то вроде grep -i -e jpeg -e mpeg
-e vob

AITap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.