Извлечение JPEG из дампа диска - PullRequest
5 голосов
/ 25 февраля 2012

У меня есть карта памяти на 16 ГБ от того, кто не загружается должным образом (просит переформатировать).Я пытаюсь получить jpegs от него.

Я запустил dd, чтобы вывести содержимое в файл, который работал великолепно.Файл не будет подключен и не будет прочитан, поэтому содержимое каким-то образом повреждено.

Открытие дампа в шестнадцатеричном редакторе показывает, что там есть данные, и ищет маркеры для начала и конца.JPEG (FFD8 и FFD9), я был в состоянии вручную извлечь первые 3 JPEG.

Прежде чем я пойду и напишу код для потоковой передачи файла, найти смещения и дамп файлов, естьЕсть ли способ сделать это?Я ничего не могу найти с помощью простого поиска в Google, но не хочу решать проблему, которая должна была решаться много раз раньше.

Кто-нибудь знает о каком-либо программном обеспечении или приличной библиотеке (Pythonбудьте хороши, поскольку я знаком с языком, хотя что-нибудь подойдет), который легко позволит мне извлечь jpegs, или мне лучше просто написать код самому?

Ответы [ 5 ]

6 голосов
/ 26 февраля 2012

Вам нужен инструмент для компьютерной криминалистической резьбы.

Есть два очевидных варианта решения этой проблемы. Первый - это открытый источник photorec . Вторым является коммерческий инструмент Adroit Photo Forensics . Я использовал оба инструмента во многих случаях. Adroit восстановит фрагментированные файлы и сделает лучшую работу по устранению ложных срабатываний, но это дорого. По всей вероятности, с фоторекцией у вас все будет в порядке.

2 голосов
/ 21 октября 2013

Вот программа, которую я написал, чтобы сделать это, используя python, она читает файл, содержащий данные изображения, и разделяет его на отдельные файлы.

import hashlib

inputfile = 'data.txt'
marker = chr(0xFF)+chr(0xD8)

# Input data
imagedump = file(inputfile, "rb").read()

imagedump = imagedump.split(marker)

count=0
for photo in imagedump:
    name = hashlib.sha256(photo).hexdigest()[0:16]+".jpg"
    file(name, "wb").write(marker+photo)
    count=count+1
    print count

Сценарий присваивает имена найденным изображениям их дайджест sha256, и все найденные фотографии будут выгружаться в текущий каталог.

Вот способ, которым вы можете протестировать скрипт, чтобы убедиться, что он работает правильно: введите cd ~/images/, затем создайте папку mkdir test, затем выведите несколько jpegs в отдельный файл в каталоге cat *.jpg > ./test/data.txt затем cd test и поместите скрипт в текущий каталог, затем запустите скрипт python extract.py, и jpegs перейдут в текущую папку.

0 голосов
/ 03 мая 2013

Вы можете легко восстановить все ваши доступные JPEG-изображения с помощью эффективного программного обеспечения Photo Recovery.Поскольку это программное обеспечение хорошо оснащено передовыми и изощренными методами, с помощью которых оно восстанавливает все данные в своем оригинальном формате файлов.-pct-образа-после-сра-показ-память карта параметры ошибки-сообщения

0 голосов
/ 02 марта 2012

в Windows есть программа FTK

http://accessdata.com/products/computer-forensics/ftk

, также ее интересный криминалистический редактор вроде winhex http://www.x -ways.net / winhex / index-e.html

На платформе linux есть несколько судебных дистрибутивов с полным набором инструментов криминалистики helix (нужно искать в старой бесплатной версии) caine sleuth kit

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

привет alvaro

0 голосов
/ 25 февраля 2012

Что ж, после долгих поисков я обнаружил следующее:

http://www.digiater.nl/openvms/decus/vmslt02a/net/jpeg-extractor.html

На карте емкостью 16 ГБ обнаружен большой мусор, я полагаю, что вероятность появления FFD8 и FFD9 равнавысокий, когда у вас так много байтов.До сих пор было найдено 50 000 изображений, но многие из них просто являются jpegs по совпадению и не являются изображениями.

Надеюсь, это поможет всем, кто имеет склонность к программированию и пытается кодировать все, даже когда это не нужно!

...