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