开源读写进程内存用易语言写的驱动开源
功能说明:该程序是一个运行在Windows内核态的设备驱动程序,核心功能是为用户态应用程序提供跨进程内存读写能力,即允许调用方(如外挂、调试工具或安全软件)通过IO控制码(IOCTL)指定目标进程PID和内存地址,实现对任意进程(包括受保护进程)的指定内存区域进行安全、直接的读取或写入操作。程序以标准驱动框架实现:在DriverEntry中完成设备对象(\Device\ReadWriteProMem)和符号链接(\DosDevices\ReadWriteProMem 或全局 \DosDevices\Global\ReadWriteProMem)的创建,并注册关键分发函数——DispatchCreateClose(处理打开/关闭设备请求,仅返回成功)和DispatchDeviceControl(核心逻辑入口)。所有实际内存操作均在DispatchDeviceControl中执行:它解析IRP中的IO控制码(IOCTL_READ_MEMORY = 2048,IOCTL_WRITE_MEMORY = 1024),校验参数后,通过PsLookupProcessByProcessId获取目标进程的EPROCESS结构体指针,再利用KeStackAttachProcess临时将当前线程上下文切换至目标进程地址空间,从而绕过用户态隔离限制;随后调用memcpy完成物理内存拷贝(读:从目标地址复制到IRP缓冲区;写:从IRP缓冲区复制到目标地址),最后调用KeUnstackDetachProcess恢复上下文。整个过程具备完整错误处理(如PID无效、驱动加载失败、符号链接创建失败等),并通过DbgPrint输出详细调试日志,便于开发与诊断。该驱动不包含恶意行为逻辑(如隐藏、注入、钩子),仅为底层内存访问提供可控、可审计的内核接口,典型应用场景包括游戏辅助开发、逆向分析、系统级调试器或合规的安全监控工具。注意:此类驱动需以管理员权限安装并签名(否则无法在现代Windows上加载),且使用不当可能导致系统蓝屏,故仅适用于具备内核开发能力的专业人员。
======程序集1
| |
| |------ _启动子程序
| |
| |------ DriverEntry
| |
| |------ DispatchDeviceControl
| |
| |------ DispatchCreateClose
| |
| |------ DriverUnload
| |
| |
======调用的Dll
| |
| |---[dll]------ DbgPrint
| |
| |---[dll]------ DbgPrintInt
| |
| |---[dll]------ _Write_Int
| |
| |---[dll]------ _Read_Int
| |
| |---[dll]------ _Read_内存结构
| |
| |---[dll]------ _Write_DRIVER_OBJECT
| |
| |---[dll]------ _Read_DRIVER_OBJECT
| |
| |---[dll]------ _Write_IRP
| |
| |---[dll]------ memcpy
| |
| |---[dll]------ _Read_IRP
| |
| |---[dll]------ IoCreateDevice
| |
| |---[dll]------ IoCreateSymbolicLink
| |
| |---[dll]------ RtlAnsiStringToUnicodeString
| |
| |---[dll]------ RtlInitAnsiString
| |
| |---[dll]------ RtlFreeUnicodeString
| |
| |---[dll]------ IoIsWdmVersionAvailable
| |
| |---[dll]------ IoDeleteDevice
| |
| |---[dll]------ IoDeleteSymbolicLink
| |
| |---[dll]------ IoCompleteRequest
| |
| |---[dll]------ PsLookupProcessByProcessId
| |
| |---[dll]------ KeStackAttachProcess
| |
| |---[dll]------ KeUnstackDetachProcess
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ __启动窗口_将被销毁
| |
| |------ _读内存_被单击
| |
| |------ _写内存_被单击
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _编辑框1_内容被改变
| |
| |------ _时钟1_周期事件
| |
| |
======调用的Dll
| |
| |---[dll]------ GetCurrentProcessId
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |
======驱动操作
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 加载
| |
| |------ 通信
| |
| |------ 卸载
| |
| |
======调用的Dll
| |
| |---[dll]------ CreateService
| |
| |---[dll]------ OpenService
| |
| |---[dll]------ StartService
| |
| |---[dll]------ CloseServiceHandle
| |
| |---[dll]------ CreateFile
| |
| |---[dll]------ ControlService
| |
| |---[dll]------ OpenSCManager
| |
| |---[dll]------ DeleteService
| |
| |---[dll]------ DeviceIoControl
| |
| |---[dll]------ CloseHandle
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。