• ⚡️ Последний шанс: Вебинар по пентесту стартует через 30 минут!

    Друзья, ровно через 30 минут (8 июля в 19:00) начинается наш практический вебинар по пентесту и поиску уязвимостей!

    Если вы хотите:
    🕵️‍♀️ Узнать, как находить и эксплуатировать уязвимости в веб-приложениях.
    💡 Получить ценные инсайты от настоящего эксперта.
    🚀 Сделать решительный шаг в мир кибербезопасности.
    То этот вебинар для вас!

    Ведущий вебинара – Александр Медведев – эксперт с более чем 10-летним опытом в сфере информационной безопасности, пятикратный победитель Standoff и обладатель престижных сертификаций: OSWE, OSCP, PNPT, CEH, CWAPT.

    Успейте присоединиться! Зарегистрироваться сейчас

    Возникли сложности с регистрацией? Пишите нам: @Codeby_Academy
    Будем вас ждать!

Fat, Секторы, Кластеры Чтение И Работа Со Всем Этим Через C++ Builder

  • Автор темы Автор темы Andersen1313
  • Дата начала Дата начала
A

Andersen1313

Стоит задача написать программу извлекающую секторы диска, информацию о FAT и саму FAT.
Создаю одну тему под таким обширным названием, чтобы писать все вопросы какие возникнут.

И так первая же проблема:

Как бы не писал в функции CreateFile первый параметр: "\\\\.\\PhysicalDrive1", "\\\\.\\C:", hFile выдает INVALID_HANDLE_VALUE. Подставлял разные буквы цифры, даже так писал "\\\\.\\PhysicalDriveC:".

Где я ошибся?!

C++:
HANDLE hFile=CreateFile("\\\\.\\PhysicalDrive1",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==INVALID_HANDLE_VALUE)
ShowMessage("Error");

P.S. Попутный вопрос нашел описание для этой функции в статье для Delphi и там было написано:
Проще всего это делать в Windows 2000/XP (с правами администратора, конечно). Работа с жестким диском в этих операционных системах производится путем открытия диска как файла с помощью функции CreateFile и указания диска или раздела по схеме Device Namespace (открывается физический диск - '\.PHYSICALDRIVE<n>'), полученный хэндл в дальнейшем используется для работы с диском с помощью функций ReadFile, WriteFile и DeviceIoControl.
Не значит ли это, что сколько я не бейся на Windows 7 я не получу нужного результата? (вышеприведенный код придется запускать на XP, так что исправления нужны под XP, программу так же проверял на XP там такая же ошибка)
 
Проблема решена, но вместо неё новая)))

Код:
hFile=CreateFile("\\\\.\\PhysicalDrive1",...

Номер диска в этом выражении как определить?

Мне нужно выбрать диска через компонент DriveComboBox и используя данные из него вызвать функцию.. Я нашел в этом компоненте, где буква диска отображается, но надо запускать по цифре.

Как мне получить необходимую мне цифру по известной букве цифра? или из DriveComboBox можно как то вытащить сразу цифру?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab