找回密码
 注册
搜索
热搜: java php web
查看: 627|回复: 20

利用VC来读取MBR中的内容

[复制链接]
发表于 2009-1-25 20:03:29 | 显示全部楼层 |阅读模式
#include   <windows.h>
#include   <winioctl.h>
#include   <stdio.h>
#include   <iostream.h>
LPTSTR ReadMBR(BYTE*   pMBR,UINT nLen);
  LPTSTR ReadMBR(BYTE*   pMBR,   UINT   nLen)
  {
  LPTSTR errMSG="";
  HANDLE   hDevice;
  TCHAR   szDevicename[64];
  LPTSTR   szBuff;
  DISK_GEOMETRY   Geometry;
  BOOL   bRet;
  DWORD   bytes,bread,count;
  int   i;
  char   *drive   =   "0";
  wsprintf(szDevicename,"\\\\.\\PHYSICALDRIVE%c",*drive);

  hDevice   =   CreateFile(szDevicename,
             GENERIC_READ|GENERIC_WRITE,
       FILE_SHARE_READ|FILE_SHARE_WRITE,
                                   NULL,
                          OPEN_EXISTING,
                                      0,
          NULL);
                                    
  if(hDevice   ==   INVALID_HANDLE_VALUE)
  {
   errMSG="打开设备出错!";
   exit(1);
  }
  DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,   NULL,0,NULL,0,&count,NULL);
  DeviceIoControl(hDevice,IOCTL_DISK_GET_DRIVE_GEOMETRY,NULL,0,&Geometry,sizeof(DISK_GEOMETRY),&count,NULL);
  szBuff   =   (LPSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,Geometry.BytesPerSector);
  if   (   szBuff   ==   NULL)
  {
   errMSG="分配内存出错!";
   exit(1);
  }
  bytes   =   512;
  bRet   =   ReadFile(hDevice,   szBuff,   bytes,   &bread,   NULL);
  if   (bRet==FALSE   ||   bread<512)
  {
   errMSG="读MBR出错!";
   exit(1);
  }
  for(int   n=0;n<512;n++){
  pMBR[n]   =   szBuff[n];
  }
  DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,   NULL,0,NULL,0,&count,NULL);
  CloseHandle(hDevice);
  return errMSG;
  }
  void main()
  {
   
   BYTE MBR[512];
   ReadMBR(MBR,512);
   LPTSTR path="c:\\mbr.dat";
   FILE *fp;
   if((fp=fopen(path,"wb+"))!=NULL)
   {
    fwrite(MBR,1,512,fp);
    fclose(fp);
    printf("已成功读取硬盘MBR,位于mbr.dat\n");
   }
   else
   {
    printf("建立文件出错!\n");
   }
  }
发表于 2009-1-25 21:24:50 | 显示全部楼层
自己顶自己的,呵呵。。。
回复

使用道具 举报

发表于 2009-1-25 20:31:26 | 显示全部楼层
好书啊,谢谢楼主的无私奉献
回复

使用道具 举报

发表于 2009-1-25 21:18:01 | 显示全部楼层
这就成病毒了,晕晕
回复

使用道具 举报

发表于 2009-1-25 21:16:43 | 显示全部楼层
support you all
回复

使用道具 举报

发表于 2009-1-25 21:45:28 | 显示全部楼层
wish u provide more materials
回复

使用道具 举报

发表于 2009-1-25 20:58:46 | 显示全部楼层
good, okay
回复

使用道具 举报

发表于 2009-1-25 21:27:38 | 显示全部楼层
good, okay
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层

Reading peptide research with context


PeptidesTotal groups its research library by topics such as metabolism, skin biology, tissue research and sleep. The topic directory helps readers locate relevant material and follow the sources. These categories organize information and do not establish a personal treatment recommendation.
回复

使用道具 举报

发表于 4 小时前 | 显示全部楼层

A guide to peptide terminology

? ??? 2009-1-25 20:31
???,?????????

Peptide combination names often appear in research discussions. Reading each compound profile first helps clarify the mechanisms, evidence and unanswered questions. The PeptidesTotal combination research pages provide a starting point for that reading, alongside links to separate profiles and comparisons.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2026-11-1 18:26

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表