Чтение файла с использованием адресации LBA

278
systolicDrake

Можно ли читать / выполнять файлы / программы, используя адресацию LBA, а не местоположение файловой системы?

Например, я могу выполнить, /bin/shиспользуя местоположения сектора LBA, полученные с использованием hdparm? Если да, то как?

Я пытаюсь сделать это на Linux Mint (версия 4.14.13+).

1
Конечно, но у вас есть веские основания для обхода VFS? Ignacio Vazquez-Abrams 5 лет назад 1
Да, это для проекта, на который я работаю systolicDrake 5 лет назад 0
Ваша самая большая проблема в том, что вы не можете гарантировать, что все сектора любого файла являются смежными. Файлы становятся фрагментированными, поэтому, если вы только начнете читать сектора последовательно, вам может повезти, или это могут быть другие данные. Заданные единицы хранения обычно составляют всего пару кбайт, даже около 250 единиц хранения. cybernard 5 лет назад 0

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

1
LawrenceC

Можно ли читать / выполнять файлы / программы, используя адресацию LBA, а не расположение файловой системы

Вы можете считывать и хранить данные во втором файле (на основе оперативной памяти, если вы используете tmpfs) по одному LBA за раз, включать биты выполнения и выполнять то, что вы сохранили.

ddне далеко от него, hdparmи с ним будет немного легче работать, и вы практически делаете то же самое, если используете его ddна необработанных блочных устройствах, таких как /dev/sdaи т. д.

Например, я могу выполнить / bin / sh, используя расположение сектора LBA, полученное с использованием hdparm?

  • Вы должны будете сделать то же самое, что и основная файловая система. Для ext2 / 3/4 это означает анализ таблиц разделов, поиск суперблока, поиск по таблицам inode и т. Д.

  • Это обычно не тривиально. Вы должны точно знать, что делает файловая система и как она работает. Есть исходный код для Ext2 / 3/4, который вы можете изучить, или любое количество текстов на эту тему. Для NTFS есть много подобной информации, предоставленной Microsoft и обнаруженной с помощью реверс-инжиниринга.

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

Похожие вопросы