[toc]

C语言将驱动文件打包到exe程序中

1.使用WinHex将二进制文件复制

在WinHex选中编辑->复制选快->c源码

2.将二进制代码粘贴到c语言源码中

3.编写c语言代码写入文件

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//main.c
#include <windows.h>
#include <stdio.h>
#include "DriverBuffer.h"

#define DRIVER_FILE_NAME L"DEMO.sys"
#define DRIVER_FILE_PATH L"D:\\Users\\3\\Desktop\\DEMO.sys"
DWORD WriteDriverFile(WCHAR* DriverFilePath)
{
HANDLE hFile = CreateFileW(DriverFilePath, GENERIC_ALL,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == NULL) { return - 1; }
DWORD dwRet = 0;
if (WriteFile(hFile, DriverBuffer, sizeof(DriverBuffer), &dwRet, NULL) == FALSE)
{
CloseHandle(hFile);
return -2;
}
CloseHandle(hFile);
return TRUE;
}
int main(int argc,char**argv)
{
if (WriteDriverFile(DRIVER_FILE_PATH) < 0)
{
printf("写入失败 错误码:",GetLastError());
}
return 0;
}

二进制文件内容概括

1
2
//DriverBuffer.h
unsigned char DriverBuffer[111768] ={0x4D,................................};