C++采用ring3读取MBR实例

 更新时间:2014年10月12日 11:26:07   投稿:shichen2014  
这篇文章主要介绍了C++采用ring3读取MBR实例,可实现对硬盘的主引导记录的读取,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了C++采用ring3读取MBR的方法,分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:
DWORD dwBytesReturned = 0; 
    BYTE bytBuffer_1[512]; 
    BYTE bytBuffer_2[512]; 
    CHAR string[2048]; 
    HANDLE hDevice, hDriver; 
    BOOL bRet; 
 
    hDevice = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); 
 
    if(hDevice == INVALID_HANDLE_VALUE) 
    { 
        printf("\nFailed - CreateFile - Open the PhysicalDrive0.\n"); 
        return 0; 
    } 
 
    bRet = ReadFile(hDevice, (LPVOID)bytBuffer_1, 512, &dwBytesReturned, NULL); 
    if(bRet == FALSE) 
    { 
        printf("\nFailed - ReadFile - the first one.\n"); 
        return 0; 
    } 
    printf("aaaa"); 
    Sleep(1000*3); 
    printf("\nRead MBR using the ReadFile function...\n"); 
    printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - -"); 
 
    sprintf(string, "\n"); 
 
    for(DWORD i = 0; i < 512; i++) 
    { 
        sprintf(string, "%s %02X", string, bytBuffer_1[i]); 
 
        if(((i + 1) % 16) == 0) 
            sprintf(string, "%s\n", string); 
 
        if(((i + 1) % 16) == 8) 
            sprintf(string, "%s -", string); 
    } 
 
    printf("%s", string); 
 
    printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - -");
 

打印结果如下:

希望本文所述对大家的C++程序设计有所帮助。

相关文章

  • 二维指针动态分配内存连续问题深入分析

    二维指针动态分配内存连续问题深入分析

    当我们定义一个二维指针时,如果需要存储相应的数据,就需要我们动态的分配内存,这时,有一点是需要注意的,分配内存的方法不同,内存的连续性也是不相同的
    2013-07-07
  • C语言计算余数的图文步骤

    C语言计算余数的图文步骤

    在本篇文章里小编给大家整理了一篇关于C语言计算余数的图文步骤内容,有需要的朋友们可以参考下。
    2020-02-02
  • 用C语言求解第N项斐波那契数列问题

    用C语言求解第N项斐波那契数列问题

    这篇文章主要介绍了用C语言求解第N项斐波那契数列问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++ 11和C++98相比有哪些新特性

    C++ 11和C++98相比有哪些新特性

    C++11标准提供了许多有用的新特性。这篇文章特别针对使C++11和C++98相比看上去像一门新语言的特性
    2017-03-03
  • C语言结构体(struct)的详细讲解

    C语言结构体(struct)的详细讲解

    C语言中,结构体类型属于一种构造类型(其他的构造类型还有:数组类型,联合类型),下面这篇文章主要给大家介绍了关于C语言结构体(struct)的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • C++结合QT实现带有优先级的计算器功能

    C++结合QT实现带有优先级的计算器功能

    这篇文章主要介绍了C++结合QT实现带有优先级的计算器,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • C语言实现通用数据结构之通用链表

    C语言实现通用数据结构之通用链表

    这篇文章主要为大家详细介绍了c语言实现通用数据结构之通用链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 利用C语言结构体实现通讯录

    利用C语言结构体实现通讯录

    这篇文章主要为大家详细介绍了利用C语言结构体实现通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • c语言函数如何求两个数的最大值

    c语言函数如何求两个数的最大值

    这篇文章主要介绍了c语言函数如何求两个数的最大值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • VS2019中在源文件中如何使用自己写的头文件

    VS2019中在源文件中如何使用自己写的头文件

    通过头文件的形式直接调用自定义的函数,从而免去对函数的原型进行声明,本文就详细的介绍一下VS2019中在源文件中如何使用自己写的头文件,感兴趣的可以了解一下
    2021-09-09

最新评论