C++采用ring3读取MBR实例_C 语言

本文实例讲述了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++程序设计有所帮助。

时间: 2025-01-30 03:55:14

C++采用ring3读取MBR实例_C 语言的相关文章

C++归并算法实例_C 语言

本文实例讲述了C++归并算法.分享给大家供大家参考.具体如下: /* 归并算法:把两个或两个以上的线性表合并在一起,形成一个新的线性表 函数模版的基本使用 程序意图:将两个相同类型的线性表元素排好序,然后将他们组合成一个排好的线性表 */ #include <iostream> using namespace std; const int n = 5; //5个元素 //输出数据元素 template <class T1> void OutPut(T1 out[(2*n)]) {

C++实现汉诺塔算法经典实例_C 语言

本文所述为汉诺塔算法的C++代码的经典实现方法. 汉诺塔问题描述:3个柱为a.b.c,圆盘最初在a柱,借助b柱移到c柱.需要你指定圆盘数. 具体实现代码如下: #include <iostream> using namespace std; int times = 0; //全局变量,搬动次数 //第n个圆盘从x柱搬到z柱 void move(int n, char x, char z) { cout << "第" << ++times <&l

C语言输出旋转后数组中的最小数元素的算法原理与实例_C 语言

  问题描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个排好序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1.      思路:这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(n).但这个思路没有利用输入数组的特性.既然有时间复杂度更小的算法,我们容易想到二分查找,因为它的时间复杂度为O(logn).这个问题是否可以运用二分查找呢

C基础 mariadb处理的简单实例_C 语言

引言 MariaDB 是一款灰常不错开源数据库. 这里直接用它来解决业务问题. 业务需求: 现在数据库中表示按照天分表的. 突然我们需要按照月来处理数据. 例如输入一个玩家id, 查找这个玩家这个月内看了一件事几次. 我们先搭建一个环境. 操作系统: Linux version 4.4.0-22-generic (buildd@lgw01-41) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #40-Ubuntu SMP Thu M

C++采用openfilename打开文件对话框用法实例_C 语言

本文实例讲述了C++采用openfilename打开文件对话框用法,分享给大家供大家参考.具体方法如下: 这里需要注意,有的时候会因为没设置nMaxFile,而一直不出现对话框. 具体功能代码如下: 复制代码 代码如下: char szFileName[MAX_PATH]={0};  OPENFILENAME openFileName = {0};  openFileName.lStructSize = sizeof(OPENFILENAME);  openFileName.nMaxFile =

C++采用TLS线程局部存储的用法实例_C 语言

本文实例讲述了C++采用TLS线程局部存储的用法.分享给大家供大家参考. 具体方法如下: 复制代码 代码如下: // useTLS.cpp : 定义控制台应用程序的入口点.  //    #include "stdafx.h"  #include <Windows.h>  #include <process.h>    //声明  VOID InitStartTime();  DWORD GetUserTime();    //TLS索引,作全局变量   DWO

c语言实现词频统计的简单实例_C 语言

需求: 1.设计一个词频统计软件,统计给定英文文章的单词频率. 2.文章中包含的标点不计入统计. 3.将统计结果以从大到小的排序方式输出. 设计: 1.因为是跨专业0.0···并不会c++和java,只能用仅学过的C语言进行编写,还是挺费劲的. 2.定义一个包含单词和频率两个成员的结构体来统计词频(进行了动态分配内存,可以处理较大文本). 3.使用fopen函数读取指定的文档. 4.使用fgetc函数获取字符,再根据取得的字符是否是字母进行不同的处理. 5.采用快速排序法对统计结果进行排序. 5

C++队列用法实例_C 语言

本文实例讲述了C++队列用法.分享给大家供大家参考.具体如下: /* 队列使用时必须包含头文件 #include <queue> 有以下几种方法 入队push(),出队pop(), 读取队首元素front(),读取队尾元素back() , 判断队是否有元素empty() 求队列元素个数size() */ #include <iostream> #include <queue> using namespace std; int main() { queue<int&

C++中DeviceIoCteatol的用法实例_C 语言

本文是一篇译文,主要以实例形式讲述了C++中DeviceIoCteatol的用法.分享给大家供大家参考.具体方法如下: 应用程序代码如下: 复制代码 代码如下: DWORD dwBytesReturned = 0;      BYTE bytBuffer_1[512];      BYTE bytBuffer_2[512];      CHAR string[2048];      HANDLE hDevice, hDriver;      BOOL bRet;  bRet = DeviceIo