解决czqzry大哥请过来看下哦为什么我吧保护的PID修改成数组会蓝屏呢_
功能说明:该程序是一个运行在Windows内核态的设备驱动程序,核心功能是通过修改系统服务描述符表(SSDT)中的ZwOpenProcess函数地址,实现对指定进程的保护——阻止任何用户态或内核态代码(如调试器、恶意软件、任务管理器等)通过ZwOpenProcess/NtOpenProcess系统调用打开受保护进程的句柄,从而防止进程被读写内存、注入代码、挂起、终止等操作。程序采用典型的“SSDT Hook”技术:在驱动加载时,通过DeviceIoControl控制码2236416(Hook)将原ZwOpenProcess函数入口替换为自定义的NewZwOpenProcess子程序;当检测到待打开进程的PID与预设的PID_To_Protect数组中任一值匹配时,立即返回STATUS_ACCESS_DENIED(-1073741790,即0xC0000022),拒绝打开请求;其余情况则透明转发至原始ZwOpenProcess执行。支持动态卸载(UnHook),通过控制码2236420恢复原始函数地址,确保系统稳定性。驱动提供标准的IRP分发处理(DispatchCreate/DispatchClose/DispatchDeviceControl),仅响应IOCTL控制请求,不创建用户可见设备接口,属于隐蔽式安全防护模块。程序具备基础驱动框架结构:包含DriverUnload卸载函数(清理符号链接及设备对象)、DbgPrint调试输出、内存读写辅助函数(ReadIntByAddr/Write_SSDT等),并依赖易语言封装的内核API(如RtlInitAnsiString、IoDeleteSymbolicLink、IoCompleteRequest等)。其设计目标明确指向高权限进程防护场景,常见于反调试、反外挂、关键服务守护等安全增强需求,属于典型的内核层主动防御驱动。
======程序集1
| |
| |------ _启动子程序
| |
| |------ NewZwOpenProcess
| |
| |------ DriverUnload
| |
| |------ DispatchCreate
| |
| |------ DispatchClose
| |
| |------ DispatchDeviceControl
| |
| |------ Call
| |
| |------ CALL_
| |
| |------ GetProcAddressAddress
| |
| |------ GetIntAddress
| |
| |------ SYSCALL_INDEX
| |
| |------ DriverEntry
| |
| |------ Get_ZwOpenProcess_Address
| |
| |------ Get_KeServiceDescriptorTable_ServiceTableBase_Address
| |
| |------ Write_SSDT
| |
| |------ ReadIntByAddr
| |
| |------ Get_NtOpenProcess_Address
| |
| |
======调用的Dll
| |
| |---[dll]------ DbgPrint
| |
| |---[dll]------ DbgPrintInt
| |
| |---[dll]------ DbgPrintString
| |
| |---[dll]------ strlen
| |
| |---[dll]------ _Write_Int
| |
| |---[dll]------ _Write_String
| |
| |---[dll]------ _Read_String
| |
| |---[dll]------ _Write_DRIVER_OBJECT
| |
| |---[dll]------ _Read_DRIVER_OBJECT
| |
| |---[dll]------ _Write_IRP
| |
| |---[dll]------ _Read_IRP
| |
| |---[dll]------ IoCreateDevice
| |
| |---[dll]------ IoCreateSymbolicLink
| |
| |---[dll]------ RtlAnsiStringToUnicodeString
| |
| |---[dll]------ RtlInitAnsiString
| |
| |---[dll]------ RtlFreeUnicodeString
| |
| |---[dll]------ IoIsWdmVersionAvailable
| |
| |---[dll]------ IoDeleteDevice
| |
| |---[dll]------ IoDeleteSymbolicLink
| |
| |---[dll]------ IoCompleteRequest
| |
| |---[dll]------ MmGetSystemRoutineAddress
| |
| |---[dll]------ _Read_SSDT
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。