MBR修改

#include <windows.h>
typedef struct _PT
{
    char 活动标志;
    char 起始磁头号;
    char 起始扇区号;
    char 起始柱面号;
    char 分区格式标志;
    char 结束磁头号;
    char 结束扇区号;
    char 结束柱面号;
    long 分区之前所用扇区;
    long 本分区扇区数;
}PT,*PPT;
typedef struct _INFO{
    char Code[512 - (16*4+2)];
    PT    pt[4];
}INFO,*PINFO;


int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE hFile = CreateFile(L"\\\\.\\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ
        , NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    char buf[512] = {};
    DWORD dwFile = 0;
    ReadFile(hFile, buf, 512, &dwFile, NULL);
    PINFO pMbr = PINFO(buf);
    printf("%u\n", pMbr->pt[0].活动标志);
    printf("%d\n", pMbr->pt[1].活动标志);
    return 0;
}
调成1字节对齐

 

posted @ 2016-04-01 18:08  天还是那么蓝  阅读(355)  评论(0编辑  收藏  举报