Как указать смещение MBR?

Я был в состоянии изменить так, что MBR перезаписывается с 0 значениями. Однако возможно ли сделать так, чтобы я перезаписывал только последние 2 байта (55h AAh) MBR (Boot Signature), чтобы они стали 00h 00h?
Мой код:

char dataWrite[3] = "\x00\x00";

// Create file of physical drive
HANDLE MasterBootRecord = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_ALL, FILE_SHARE_READ | FILE_SHARE_WRITE
, NULL, OPEN_EXISTING, NULL, NULL);// Set file pointer
DWORD dwPtr1 = SetFilePointer(MasterBootRecord, 510, NULL, NULL);

if (dwPtr1 == INVALID_SET_FILE_POINTER) // Test for failure
{
cout<< "\n\nSetFilePointer Failed to write,Err No: "<< GetLastError();
Sleep(5000);
ExitProcess(0);
}

// Write to file
if (WriteFile(MasterBootRecord, dataWrite, 512, &write, NULL)) {
cout << "Boot signature overwritten." << endl;
Sleep(5000);
ExitProcess(0);
} else...

Это оказывается успешным, но значения, записанные в MBR, неверны. Я довольно плохо знаком с C ++, поэтому немного запутался с этим. Любая помощь будет оценена. Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]