易语言系统驱动服务源码
系统结构:DriverEntry,DispatchDeviceControl,DriverUnload,DispatchCreate,DispatchClose,OnLoad,GetSSDTTableAddress,OnHook,UnHook,IsProtect,New_NtUserFindWindowEx,New_NtUserGetForegroundWindow,New_NtUserQueryWindow,New_NtUserWindowFromPoint,New_NtUserBuildHwndList,New_NtUserSetWindowLong,IoGetCurrentIrpStackLocation,指针到整数_,写内存整数_,子程序指针到整数型_,UserAddress,GetFunctionAddress,GetWindowsVersion,VAR_OSVERSIONINFOEX,RtlGetVersion,MmCreateMDL,MmMapMDL,MmUnMapMDL,GetShadowFunction,SetShadowFunction,GetShadowBase,GetShadowCount,pNtUserFindWindowEx,pNtUserGetForegroundWindow,pNtUserQueryWindow,pNtUserWindowFromPoint,pNtUserBuildHwndList,pNtUserSetWindowLong,DbgPrint,DbgPrintInt,IoCreateDevice,IoCreateSymbolicLink,RtlAnsiStringToUnicodeString,RtlInitAnsiString,RtlFreeUnicodeString,IoIsWdmVersionAvailable,IoDeleteDevice,IoDeleteSymbolicLink,IoCompleteRequest,PsLookupProcessByProcessId,KeStackAttachProcess,ZwOpenProcess,ZwCreateJobObject,ZwAssignProcessToJobObject,ZwTerminateJobObject,KeUnstackDetachProcess,ZwAllocateVirtualMemory,ZwClose,MmUnsecureVirtualMemory,ZwQueryVirtualMemory,InterlockedExchange,MmGetSystemRoutineAddress,ZwQuerySystemInformation,memcpy,PsGetVersion,MmCreateMdl,MmBuildMdlForNonPagedPool,MmMapLockedPages,MmUnmapLockedPages,IoFreeMdl,MmIsAddressValid,PsGetCurrentProcessId,
======DriverMain
| |
| |------ _启动子程序
| |
| |------ DriverEntry
| |
| |------ DispatchDeviceControl
| |
| |------ DriverUnload
| |
| |------ DispatchCreate
| |
| |------ DispatchClose
| |
| |------ OnLoad
| |
| |------ GetSSDTTableAddress
| |
| |------ OnHook
| |
| |------ UnHook
| |
| |------ IsProtect
| |
| |------ New_NtUserFindWindowEx
| |
| |------ New_NtUserGetForegroundWindow
| |
| |------ New_NtUserQueryWindow
| |
| |------ New_NtUserWindowFromPoint
| |
| |------ New_NtUserBuildHwndList
| |
| |------ New_NtUserSetWindowLong
| |
| |
======DriverHelper
| |
| |------ IoGetCurrentIrpStackLocation
| |
| |------ 指针到整数_
| |
| |------ 写内存整数_
| |
| |------ 子程序指针到整数型_
| |
| |------ UserAddress
| |
| |------ GetFunctionAddress
| |
| |------ GetWindowsVersion
| |
| |------ VAR_OSVERSIONINFOEX
| |
| |------ RtlGetVersion
| |
| |------ MmCreateMDL
| |
| |------ MmMapMDL
| |
| |------ MmUnMapMDL
| |
| |------ GetShadowFunction
| |
| |------ SetShadowFunction
| |
| |------ GetShadowBase
| |
| |------ GetShadowCount
| |
| |
======DriverFunDef
| |
| |------ pNtUserFindWindowEx
| |
| |------ pNtUserGetForegroundWindow
| |
| |------ pNtUserQueryWindow
| |
| |------ pNtUserWindowFromPoint
| |
| |------ pNtUserBuildHwndList
| |
| |------ pNtUserSetWindowLong
| |
| |
======调用的Dll
| |
| |---[dll]------ DbgPrint
| |
| |---[dll]------ DbgPrintInt
| |
| |---[dll]------ _Write_Int
| |
| |---[dll]------ _Read_Int
| |
| |---[dll]------ _Read_Allocate
| |
| |---[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]------ PsLookupProcessByProcessId
| |
| |---[dll]------ KeStackAttachProcess
| |
| |---[dll]------ ZwOpenProcess
| |
| |---[dll]------ ZwCreateJobObject
| |
| |---[dll]------ ZwAssignProcessToJobObject
| |
| |---[dll]------ ZwTerminateJobObject
| |
| |---[dll]------ KeUnstackDetachProcess
| |
| |---[dll]------ ZwAllocateVirtualMemory
| |
| |---[dll]------ ZwClose
| |
| |---[dll]------ MmUnsecureVirtualMemory
| |
| |---[dll]------ ZwQueryVirtualMemory
| |
| |---[dll]------ InterlockedExchange
| |
| |---[dll]------ MmGetSystemRoutineAddress
| |
| |---[dll]------ ZwQuerySystemInformation
| |
| |---[dll]------ memcpy
| |
| |---[dll]------ _Read_Input
| |
| |---[dll]------ _Write_Output
| |
| |---[dll]------ _Read_IO_STACK_LOCATION
| |
| |---[dll]------ PsGetVersion
| |
| |---[dll]------ MmCreateMdl
| |
| |---[dll]------ MmBuildMdlForNonPagedPool
| |
| |---[dll]------ MmMapLockedPages
| |
| |---[dll]------ MmUnmapLockedPages
| |
| |---[dll]------ IoFreeMdl
| |
| |---[dll]------ MmIsAddressValid
| |
| |---[dll]------ PsGetCurrentProcessId
调用的DLL命令:
.DLL命令 DbgPrint, , "ntoskrnl.lib", "@_DbgPrint"
.参数 Buffer, 文本型
.DLL命令 DbgPrintInt, , "ntoskrnl.lib", "@_DbgPrint"
.参数 Format, 文本型
.参数 Value, 整数型
.DLL命令 _Write_Int, , "ntoskrnl.lib", "@_memcpy"
.参数 目的地址, 整数型
.参数 源变量, 整数型, 传址
.参数 大小, 整数型
.DLL命令 _Read_Int, , "ntoskrnl.lib", "@_memcpy"
.参数 目的变量, 整数型, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Read_Allocate, , "ntoskrnl.lib", "_Read_Int"
.参数 目的变量, ALLOCATE_, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Write_DRIVER_OBJECT, , "ntoskrnl.lib", "@_memcpy"
.参数 目的地址, 整数型
.参数 源变量, DRIVER_OBJECT, 传址
.参数 大小, 整数型
.DLL命令 _Read_DRIVER_OBJECT, , "ntoskrnl.lib", "@_memcpy"
.参数 目的变量, DRIVER_OBJECT, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Write_IRP, , "ntoskrnl.lib", "@_memcpy"
.参数 目的地址, 整数型
.参数 源变量, IRP, 传址
.参数 大小, 整数型
.DLL命令 _Read_IRP, , "ntoskrnl.lib", "@_memcpy"
.参数 目的变量, IRP, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 IoCreateDevice, 整数型, "ntoskrnl.lib", "_IoCreateDevice@28", , .
.参数 DriverObject, 整数型
.参数 DeviceExtensionSize, 整数型
.参数 DeviceName, UNICODE_STRING, 传址
.参数 DeviceType, 整数型
.参数 DeviceCharacteristics, 整数型
.参数 Exclusive, 逻辑型
.参数 DeviceObject, 整数型, 传址
.DLL命令 IoCreateSymbolicLink, 整数型, "ntoskrnl.lib", "_IoCreateSymbolicLink@8"
.参数 SymbolicLinkName, UNICODE_STRING, 传址
.参数 DeviceName, UNICODE_STRING, 传址
.DLL命令 RtlAnsiStringToUnicodeString, 整数型, "ntoskrnl.lib", "_RtlAnsiStringToUnicodeString@12"
.参数 DestinationString, UNICODE_STRING, 传址
.参数 SourceString, ANSI_STRING, 传址
.参数 AllocateDestinationString, 逻辑型
.DLL命令 RtlInitAnsiString, , "ntoskrnl.lib", "_RtlInitAnsiString@8"
.参数 DestinationString, ANSI_STRING, 传址
.参数 SourceString, 文本型, 传址
.DLL命令 RtlFreeUnicodeString, , "ntoskrnl.lib", "_RtlFreeUnicodeString@4"
.参数 UnicodeString, UNICODE_STRING, 传址
.DLL命令 IoIsWdmVersionAvailable, 逻辑型, "ntoskrnl.lib", "_IoIsWdmVersionAvailable@8"
.参数 MajorVersion, 字节型
.参数 MinorVersion, 字节型
.DLL命令 IoDeleteDevice, , "ntoskrnl.lib", "_IoDeleteDevice@4"
.参数 DeviceObject, 整数型
.DLL命令 IoDeleteSymbolicLink, , "ntoskrnl.lib", "_IoDeleteSymbolicLink@4"
.参数 SymbolicLinkName, UNICODE_STRING, 传址
.DLL命令 IoCompleteRequest, , "ntoskrnl.lib", "_IoCompleteRequest@8"
.参数 Irp, 整数型
.参数 PriorityBoost, 整数型
.DLL命令 PsLookupProcessByProcessId, 整数型, "ntoskrnl.lib", "_PsLookupProcessByProcessId@8"
.参数 ProcessID, 整数型
.参数 EProcess, 整数型, 传址
.DLL命令 KeStackAttachProcess, , "ntoskrnl.lib", "_KeStackAttachProcess@8"
.参数 EProcess, 整数型
.参数 ApcState, APC_STATE, 传址
.DLL命令 ZwOpenProcess, 整数型, "ntoskrnl.lib", "_ZwOpenProcess@16"
.参数 hProcess, 整数型, 传址
.参数 DesiredAccess, 整数型
.参数 ObjectAttributes, OBJECT_ATTRIBUTES
.参数 ClientId, CLIENT_ID
.DLL命令 ZwCreateJobObject, 整数型, "ntoskrnl.lib", "_ZwCreateJobObject@12"
.参数 JobHandle, 整数型, 传址, 4
.参数 DesiredAccess, 整数型, , 4
.参数 ObjectAttributes, OBJECT_ATTRIBUTES, , 4
.DLL命令 ZwAssignProcessToJobObject, 整数型, "ntoskrnl.lib", "_ZwAssignProcessToJobObject@8"
.参数 JobHandle, 整数型
.参数 ProcessHandle, 整数型
.DLL命令 ZwTerminateJobObject, 整数型, "ntoskrnl.lib", "_ZwTerminateJobObject@8"
.参数 JobHandle, 整数型
.参数 ExitStatus, 整数型
.DLL命令 KeUnstackDetachProcess, , "ntoskrnl.lib", "_KeUnstackDetachProcess@4"
.参数 ApcState, APC_STATE
.DLL命令 ZwAllocateVirtualMemory, 整数型, "ntoskrnl.lib", "_ZwAllocateVirtualMemory@24"
.参数 ProcessHandle, 整数型
.参数 BaseAddress, 整数型
.参数 ZeroBits, 整数型
.参数 RegionSize, 整数型
.参数 AllocationType, 整数型
.参数 Protect, 整数型
.DLL命令 ZwClose, 整数型, "ntoskrnl.lib", "_ZwClose@4"
.参数 ObjectHandle, 整数型
.DLL命令 MmUnsecureVirtualMemory, 整数型, "ntoskrnl.lib", "_MmUnsecureVirtualMemory@4"
.参数 Address, 整数型
.参数 Size, 整数型
.参数 ProbeMode, 整数型
.DLL命令 ZwQueryVirtualMemory, 整数型, "ntoskrnl.lib", "_ZwQueryVirtualMemory@24"
.参数 ProcessHandle, 整数型
.参数 BaseAddress, 整数型
.参数 MemoryInformationClass, MEMORY_INFORMATION_CLASS
.参数 MemoryInformation, 整数型
.参数 MemoryInformationLength, 整数型
.参数 ReturnLength, 整数型, 传址
.DLL命令 InterlockedExchange, 整数型, "ntoskrnl.lib", "_@InterlockedExchange@8"
.参数 volatile, 长整数型, 传址
.参数 Value, 长整数型, , Value
.DLL命令 MmGetSystemRoutineAddress, 整数型, "ntoskrnl.lib", "_MmGetSystemRoutineAddress@4"
.参数 SystemRoutineName, UNICODE_STRING
.DLL命令 ZwQuerySystemInformation, 整数型, "ntoskrnl.lib", "_ZwQuerySystemInformation@16"
.参数 CLASS, 整数型
.参数 INFORMATION, 整数型
.参数 INFORMATIONLENGTH, 整数型
.参数 RET, 整数型, 传址
.DLL命令 memcpy, , "ntoskrnl.lib", "@_memcpy"
.参数 目的变量, 整数型
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Read_Input, , "ntoskrnl.lib", "@_memcpy"
.参数 目的变量, Protect, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Write_Output, , "ntoskrnl.lib", "@_memcpy"
.参数 目的变量, 整数型
.参数 源地址, Protect, 传址
.参数 大小, 整数型
.DLL命令 _Read_IO_STACK_LOCATION, , "ntoskrnl.lib", "@_memcpy"
.参数 dest, IO_STACK_LOCATION
.参数 src, 整数型
.参数 length, 整数型
.DLL命令 PsGetVersion, 整数型, "ntoskrnl.lib", "_PsGetVersion@16"
.参数 MajorVersion, 整数型, 传址
.参数 MinorVersion, 整数型, 传址
.参数 BuildNumber, 整数型, 传址
.参数 CSDVersion, UNICODE_STRING, 传址
.DLL命令 MmCreateMdl, 整数型, "ntoskrnl.lib", "_MmCreateMdl@12"
.参数 MemoryDescriptorList, 整数型
.参数 Base, 整数型
.参数 Size, 整数型
.DLL命令 MmBuildMdlForNonPagedPool, 整数型, "ntoskrnl.lib", "_MmBuildMdlForNonPagedPool@4"
.参数 MemoryDescriptorList, 整数型
.DLL命令 MmMapLockedPages, 整数型, "ntoskrnl.lib", "_MmMapLockedPages@8", , 返回 Mapped
.参数 MemoryDescriptorList, 整数型
.参数 AccessMode, 整数型
.DLL命令 MmUnmapLockedPages, 整数型, "ntoskrnl.lib", "_MmUnmapLockedPages@8"
.参数 Mapped, 整数型
.参数 MemoryDescriptorList, 整数型
.DLL命令 IoFreeMdl, 整数型, "ntoskrnl.lib", "_IoFreeMdl@4"
.参数 MemoryDescriptorList, 整数型
.DLL命令 MmIsAddressValid, 整数型, "ntoskrnl.lib", "_MmIsAddressValid@4"
.参数 Address, 整数型
.DLL命令 PsGetCurrentProcessId, 整数型, "ntoskrnl.lib", "_PsGetCurrentProcessId@0"
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。