Как я могу писать в любой блок на моем жестком диске, используя язык программирования C?
Был вопрос о написании MBR, но аспекты C.
Поскольку файловые дескрипторы - как говорится в слове - предназначены для файлов, я думаю, что в этом случае их нельзя использовать. Включены низкоуровневый ввод-вывод в стандартной библиотеке C также реализованы файловые дескрипторы.
Точнее:
Этот вопрос скорее касается записи блоков жесткого диска, чем файлов (независимо от ОС).
Ответы на упомянутый выше вопрос в основном предполагают использование dd (coreutils) в UNIX-системах. Вот почему я прошу способ в C. Может быть, загрузчики (GRUB) и загрузочные секторные вирусы используют разные техники?
Я предполагаю, что изменение фактического указателя внутри файлового дескриптора не является законным способом.
Проблемы и ограничения.
Я знаю, что нужно помнить об определенных аспектах, например
- Некоторые операционные системы ограничивают прямой доступ к томам (например, Windows)
- Ошибки записи, а также запись неправильных данных в определенные блоки могут привести к повреждению файловой системы (потере данных на жестком диске).
- Антивирусное программное обеспечение может пометить его как подозрительный код.
Этот вопрос более теоретический.