Чтение байтов с флешки

308
Eisen

Мне нужен шестнадцатеричный дамп флешки с первых нескольких килобайт. Флэш-накопитель только что отформатирован с помощью fat32. Я проверил, lsblkгде находится мое USB-устройство, и я получил:

sdb 8:16 0 186.3G 0 disk  └─sdb1 8:17 0 186.3G 0 part /media/me/E614-2E0B 

Затем я копирую данные с помощью: dd if=/dev/sdb1 of=usb.img bs=1024 count=5

И результат:

00000000: eb58 906d 6b66 732e 6661 7400 0240 4000 .X.mkfs.fat..@@. 00000010: 0200 0000 00f8 0000 3f00 ff00 3f00 0000 ........?...?... 00000020: 82dd 4917 80ba 0000 0000 0000 0200 0000 ..I............. 00000030: 0100 0600 0000 0000 0000 0000 0000 0000 ................ 00000040: 8001 290b 2e14 e64e 4f20 4e41 4d45 2020 ..)....NO NAME 00000050: 2020 4641 5433 3220 2020 0e1f be77 7cac FAT32 ...w|. 00000060: 22c0 740b 56b4 0ebb 0700 cd10 5eeb f032 ".t.V.......^..2 00000070: e4cd 16cd 19eb fe54 6869 7320 6973 206e .......This is n 00000080: 6f74 2061 2062 6f6f 7461 626c 6520 6469 ot a bootable di 00000090: 736b 2e20 2050 6c65 6173 6520 696e 7365 sk. Please inse 000000a0: 7274 2061 2062 6f6f 7461 626c 6520 666c rt a bootable fl 000000b0: 6f70 7079 2061 6e64 0d0a 7072 6573 7320 oppy and..press 000000c0: 616e 7920 6b65 7920 746f 2074 7279 2061 any key to try a 000000d0: 6761 696e 202e 2e2e 200d 0a00 0000 0000 gain ... ....... 000000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001f0: 0000 0000 0000 0000 0000 0000 0000 55aa ..............U. 00000200: 5252 6141 0000 0000 0000 0000 0000 0000 RRaA............ 00000210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 

В правом столбце я вижу текст «это не загрузочный диск. Пожалуйста, вставьте загрузочную дискету и ... нажмите любую клавишу, чтобы повторить попытку». Теперь я не уверен, действительно ли это содержимое моей флешки или произошла ошибка. Это правильный способ получить байтовые данные с моей флешки или есть другой способ получить шестнадцатеричный дамп с моего USB-устройства?

Редактировать: если я использую / dev / sdb, я получаю:

00000000 33 c0 fa 8e d8 8e d0 bc 00 7c 89 e6 06 57 8e c0 |3........|...W..| 00000010 fb fc bf 00 06 b9 00 01 f3 a5 ea 1f 06 00 00 52 |...............R| 00000020 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 72 13 81 |R.A..U1.0....r..| 00000030 fb 55 aa 75 0d d1 e9 73 09 66 c7 06 8d 06 b4 42 |.U.u...s.f.....B| 00000040 eb 15 5a b4 08 cd 13 83 e1 3f 51 0f b6 c6 40 f7 |..Z......?Q...@.| 00000050 e1 52 50 66 31 c0 66 99 e8 66 00 e8 21 01 4d 69 |.RPf1.f..f..!.Mi| 00000060 73 73 69 6e 67 20 6f 70 65 72 61 74 69 6e 67 20 |ssing operating | 00000070 73 79 73 74 65 6d 2e 0d 0a 66 60 66 31 d2 bb 00 |system...f`f1...| 00000080 7c 66 52 66 50 06 53 6a 01 6a 10 89 e6 66 f7 36 ||fRfP.Sj.j...f.6| 00000090 f4 7b c0 e4 06 88 e1 88 c5 92 f6 36 f8 7b 88 c6 |.{.........6.{..| 000000a0 08 e1 41 b8 01 02 8a 16 fa 7b cd 13 8d 64 10 66 |..A......{...d.f| 000000b0 61 c3 e8 c4 ff be be 7d bf be 07 b9 20 00 f3 a5 |a......}.... ...| 000000c0 c3 66 60 89 e5 bb be 07 b9 04 00 31 c0 53 51 f6 |.f`........1.SQ.| 000000d0 07 80 74 03 40 89 de 83 c3 10 e2 f3 48 74 5b 79 |..t.@.......Ht[y| 000000e0 39 59 5b 8a 47 04 3c 0f 74 06 24 7f 3c 05 75 22 |9Y[.G.<.t.$.<.u"| 000000f0 66 8b 47 08 66 8b 56 14 66 01 d0 66 21 d2 75 03 |f.G.f.V.f..f!.u.| 00000100 66 89 c2 e8 ac ff 72 03 e8 b6 ff 66 8b 46 1c e8 |f.....r....f.F..| 00000110 a0 ff 83 c3 10 e2 cc 66 61 c3 e8 62 00 4d 75 6c |.......fa..b.Mul| 00000120 74 69 70 6c 65 20 61 63 74 69 76 65 20 70 61 72 |tiple active par| 00000130 74 69 74 69 6f 6e 73 2e 0d 0a 66 8b 44 08 66 03 |titions...f.D.f.| 00000140 46 1c 66 89 44 08 e8 30 ff 72 13 81 3e fe 7d 55 |F.f.D..0.r..>.}U| 00000150 aa 0f 85 06 ff bc fa 7b 5a 5f 07 fa ff e4 e8 1e |.......G|.CNW).*$ 
  • UNcheck Match case
  • проверить обернуть
  • проверьте регулярное выражение
  • НЕ ПРОВЕРИТЬ . matches newline
  • Search in document
  • Объяснение:

    ^ : beginning of line (?: : start non capture group .G : 24 any character but newline then the letter G | : OR .CNW : 14 any character but newline then the letters CNW ) : end group .* : 0 or more any character but newline $ : end of line 
    0
    «Теперь я не уверен, действительно ли это содержимое моего флэш-накопителя USB» - это ... что вы ожидали увидеть? Attie 6 лет назад 1
    Текст «это не загрузочный диск. Пожалуйста, вставьте загрузочную дискету и ... нажмите любую клавишу, чтобы повторить попытку», мне интересно, почему это так? Eisen 6 лет назад 0

    2 ответа на вопрос

    1
    grawity

    Да, но поскольку вы указали в качестве имени устройства «sdb 1 », чтение начинается с начала 1- го раздела, а не с начала всего диска (то есть «sdb»).

    Итак, вы видите первые несколько секторов файловой системы FAT32. FAT резервирует это пространство для VBR («загрузочная запись тома»), а различные инструменты форматирования FAT добавляют сюда базовый VBR «заполнитель», отсюда и сообщение об ошибке загрузки.

    (Кроме того, на дискетах и ​​других устройствах с форматированием «суперфлоппи» нет разделов - файловая система начинается с сектора 0, поэтому FAT VBR - это MBR дискеты.)

    Для чтения данных со всего диска (без учета границ раздела) используйте /dev/sdbв качестве входного файла. (Вы можете использовать любой инструмент, например, head -c 5k /dev/sdb | hexdump -Cесли хотите.)

    Здравствуйте, спасибо за ваш ответ. Я хочу увидеть таблицу размещения файлов и первые несколько данных. Если я использую / dev / sdb, я получаю результат, где появляется строка «Ошибка загрузки операционной системы». Eisen 6 лет назад 0
    Таблица размещения файлов не является «мелкой вещью, которую вы можете видеть», а распределена по всему диску. Если это то, что вы хотите увидеть, то использование раздела (`/ dev / sdb1`) является правильным. Вы должны быть очень удобны в работе с необработанными данными и выполнять математику с базовыми 16 в своей голове, чтобы понимать FAT без инструмента. Attie 6 лет назад 1
    Это не очень распространено в случае FAT (кажется, что это всего лишь одна таблица, содержащая все), но оно расположено немного глубже в разделе. (Например, `fsck -v / dev / sdb1` для меня показывает" Первая FAT начинается с байта 16384 "и" Область данных начинается с байта 4146176 ".) grawity 6 лет назад 1
    @ Grawity Ох - спасибо, что сообщили мне знать! Attie 6 лет назад 0
    Однако, в зависимости от файловой системы, макет может варьироваться от «очень простого» до «безумно сложного», поэтому, если вы когда-нибудь захотите изучить, например, ext4 или NTFS, тогда предпочтите выделенные инструменты (debugfs и т. Д.) Вместо необработанных hexdumps. grawity 6 лет назад 0
    1
    Attie

    Это правильно, если вы пытаетесь получить дамп раздела ( /dev/sdb1), который звучит так, как вы.

    Этот текст присутствует, потому что он используется (и хранится в конце) очень элементарным блоком «boot_code», который mkfs.fatразмещается в разделе. Это обеспечивает совместимость со старой технологией, такой как дискеты, «на всякий случай ». Причина, по которой этот текст существует в значительной степени " из-за истории " в современном мире.

    Вы можете увидеть этот текст в mkfs.fatисходном коде здесь: src / mkfs.fat.c: 209

    Таблица размещения файлов не является «маленькой вещью, которую вы можете видеть», но (в случае FAT - спасибо @grawity) хранится как большой кусок чуть дальше в раздел. Вам нужно будет очень удобно работать с необработанными данными и выполнять математические расчеты по основам 16 в своей голове, чтобы понять таблицу файлов без инструмента.

    Возможно, вы захотите изучить FAT: