void BackMbr(const char* szFileName)
{
ofstream fout(szFileName,ios_base::binary);
char szMbr[512] = {0};
memset(szMbr,0,512);
HANDLE hMbr = CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
if (hMbr != INVALID_HANDLE_VALUE)
{
DWORD dwRead = 0;
ReadFile(hMbr,szMbr,512,&dwRead,NULL);
CloseHandle(hMbr);
if (fout.is_open())
{
fout.write(szMbr,512);
fout.close();
}
}
}
{
ofstream fout(szFileName,ios_base::binary);
char szMbr[512] = {0};
memset(szMbr,0,512);
HANDLE hMbr = CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0);
if (hMbr != INVALID_HANDLE_VALUE)
{
DWORD dwRead = 0;
ReadFile(hMbr,szMbr,512,&dwRead,NULL);
CloseHandle(hMbr);
if (fout.is_open())
{
fout.write(szMbr,512);
fout.close();
}
}
}
本文介绍了一个简单的C++程序,用于将主引导记录(MBR)从物理磁盘备份到文件中。通过使用Windows API函数,如CreateFile、ReadFile等,程序能够读取物理磁盘的第一个扇区(即MBR),并将其保存到指定文件。
1828

被折叠的 条评论
为什么被折叠?



