avatar
Articles
210
Tags
95
Categories
22

Theqiqi_blog
Search

Theqiqi_blog

windows驱动开发40.用户层与驱动层的其他通信方式
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
❓除了 IOCTL,还有没有其他通信机制?答案是:有,很多!但都有其应用场景,适合特定类型通信需求。 🧭 用户层与驱动通信的常见方式(按应用场景分类) 通信方式 说明 特点 是否支持异步 多功能支持 IOCTL(DeviceIoControl) 控制命令接口 通用、官方推荐 ✅ ✅ 多功能(用控制码区分) ReadFile / WriteFile 流式通信 数据读写,适合输入/输出管道 ✅ ⚠️ 一般只一个方向,多功能难 IOCP + Read/Write 高性能异步 I/O 适合数据流、大量异步并发 ✅ ⚠️ 通常不细分功能,用 tag/结构区分 共享内存 + 信号量 / 事件 零拷贝高性能通信 非常快,适合频繁小数据交换 ❌(需手动同步) ✅(共享内存结构定义) 命名管道(Named Pipe) 简单的双向通信 类似 socket,适合服务型驱动 ✅ ✅(靠结构/标识分功能) Section 映射内存(ZwMapViewOfSection) 高速共享数据区 复杂内核同步,适合高级场 ...
windows驱动开发38.Linux驱动编写入口_模板_编译_加载
Created2025-03-13|Drvier|C•Drvier•LinuxDriver
写一个linux驱动程序模板以下是一个Linux 内核模块(驱动)模板,适用于内核模块开发入门者,可用于字符设备、平台设备、网络驱动等的基础架构。 这个模板适用于 大多数类型的内核模块,并包括模块加载、卸载、打印日志等基础结构。 ✅ Linux 驱动程序模板(C语言)1234567891011121314151617181920212223242526272829303132// my_driver.c#include <linux/module.h>#include <linux/init.h>#include <linux/kernel.h>#define DRIVER_AUTHOR "YourName"#define DRIVER_DESC "A simple Linux driver template"// 模块加载函数static int __init my_driver_init(void){ printk(KERN_INFO "my_driver: 模块加载\n&q ...
windows驱动开发37.怎么在Windows11中加载未签名的驱动
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
方法一:使用测试签名模式在windows中设置测试签名模式: 按下 Windows + X 键打开快捷菜单 选择”Windows PowerShell (管理员)” 在 PowerShell 中输入以下命令并回车: 1bcdedit /set testsigning on 重启电脑以使更改生效 方法二:禁用windows驱动签名 在启动windows操作系统时禁用驱动签名。 命令行关闭签名验证,重启后生效。 开启与关闭命令 1234#禁用您设备上的驱动程序签名bcdedit.exe / set nointegritychecks on#启用此功能,请运行以下命令bcdedit.exe / set nointegritychecks off 方法四:使用驱动漏洞关闭签名验证 下载kdu软件。 在kdu同目录下运行命令关闭签名验证(无需重启,立即生效)。 1kdu -dse 0 成功加载驱动后可选择重新打开签名验证。 1kdu -dse 6 方法五:在系统启动阶段加载内核工具可开关驱动签名验证EfiGuard 方法六:绕过驱动强制签名加载未签名驱动 编写驱动程 ...
windows驱动开发36.漏洞驱动提权
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
使用驱动漏洞提权 安装漏洞驱动RTCore64.sys 漏洞编号:CVE-2019-16098 编写C语言代码提权到system 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139#include <Windows.h>#include <cstdio>#include <Psapi.h>#define SymLinkName L"\\\\.\\RTCore64"stru ...
windows驱动开发35.驱动创建进程
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
调用未导出的函数NtCreateUserProcess创建进程123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118#include <ntifs.h>#include <wdm.h>#include <ntstrsafe.h>#include <minwindef.h>#define Log(X) DbgPrint("qi:"X##)// 手动声明必要的未公开结构typedef struct _RTL_USER_PROCESS_PARAMETERS { BYTE Rese ...
windows驱动开发34.kmdf驱动框架最小模板
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#include <ntddk.h>#include <wdf.h>DRIVER_INITIALIZE DriverEntry;EVT_WDF_DRIVER_UNLOAD MyEvtDriverUnload; // 卸载函数(KMDF 风格)EVT_WDF_DRIVER_DEVICE_ADD MyEvtDeviceAdd; // 必须定义,但可以不创建设备// 驱动卸载回调VOID MyEvtDriverUnload(_In_ WDFDRIVER Driver){ UNREFERENCED_PARAMETER(Driver); KdPrint(("qi: KMDF Driver Unload!\n"));}// 添加设备回调(必须提供,即使什么都不做)NTSTATUS MyEvtDeviceAdd( _In_ W ...
windows驱动开发33.C++编写驱动程序
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
C++编写驱动程序1234567891011121314151617181920#include <ntddk.h>// 宏定义改为 C++ 风格#define Log(x) DbgPrint("qi:" x)// DriverUnload 必须使用 extern "C"extern "C"void UnloadDriver(PDRIVER_OBJECT DriverObject){ Log("Unloaded Successfully!\n");}// DriverEntry 也必须使用 extern "C"extern "C"NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath){ DriverObject->DriverUnload = UnloadDriver; Log("Loade ...
windows驱动开发32.dump进程与进程模块
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
用户模式下dump进程内存dump完整进程内存12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include <windows.h>#include <dbghelp.h>#include <stdio.h>#pragma comment(lib, "dbghelp.lib")BOOL CreateMiniDump(DWORD dwPID, const char* szDumpFilePath){ HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID); if (hProcess == NULL) { printf("无法打开进程 %d,错误码:%d\n", dwPID, GetLastE ...
windows驱动开发31.隐藏进程,通过Hook SSDT表中的NtQuerySystemInformation函数隐藏进程信息
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
隐藏进程,通过Hook SSDT表中的NtQuerySystemInformation函数隐藏进程信息123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162#include <ntifs.h>#include "C:\D\test\CC++\cc++lib\driver\de ...
windows驱动开发30.保护进程,通过Hook SSDT表中的NtOpenProcess函数来保护进程不被读写
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
Hook SSDT表中的NtOpenProcess函数123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120#include <ntifs.h>#include "C:\D\test\CC++\cc++lib\driver\def.h"VOID GetSSDT0(PVOID* addr);BOOLEAN HookSSDT_On(PVOID newfunc, PVOID hkfunc, PVOID* oldbase, PULONG oldoffset);VOID HookSSDT_Off(PVOID oldbase ...
1234…21
avatar
Theqiqi
Articles
210
Tags
95
Categories
22
Follow Me
Announcement
This is my Blog
Recent Post
101.使用Grop网站提供的api2026-01-03
9.压测2025-03-27
8.Linux Socket并发模型http服务器2025-03-27
7.web服务器中收发REST接口2025-03-27
6使用c语言与linux系统写一个web服务器,解析并响应get与post请求2025-03-27
Categories
  • C with Socks16
  • C_Sound10
  • C_Windows_Graphi9
  • Cpp5
  • Cpp_Socket4
  • C语言在Windows中实现抓包4
  • C语言的万种用法9
  • Debian1
Tags
C++ Websocket Socks5 REST API rufus ISO cmake c_windows_driver OpenGl Debian MySql mysql Drvier x86汇编程序 System qemu Http http AI first pragram Direct2D TCP 64位汇编程序 Linux Desktop make WindowsDriver link nasm Socks html ipv6 Cmake Python windows driver Ipv6 sql UltraISO Capture Socket
Archives
  • January 20261
  • March 202558
  • February 202523
  • September 20242
  • August 202471
  • June 20242
  • March 20245
  • February 20248
Info
Article :
210
UV :
PV :
Last Update :
©2020 - 2026 By Theqiqi
Framework Hexo|Theme Butterfly
Search
Loading the Database