易语言iocalldriver回调源码
系统结构:DriverUnload,DispatchCreate,DispatchClose,DispatchDeviceControl,DriverEntry,ReadIntByAddr,PsSetCreateProcess,NotifyRoutine,Get_Object,IoCallDriver,Call_IoCallDriver,Get_IoCallDriver_Address,Write,RtlAnsiStringToUnicodeString,DbgPrint,DbgPrintInt,DbgPrintString,IoAllocateMdl,IoCompleteRequest,IoCreateDevice,IoCreateSymbolicLink,IoDeleteDevice,IoDeleteSymbolicLink,memcpy,memset,PsRemoveCreateThreadNotifyRoutine,PsSetCreateProcessNotifyRoutine,PsSetCreateThreadNotifyRoutine,PsTerminateSystemThread,RtlInitAnsiString,RtlFreeUnicodeString,IoIsWdmVersionAvailable,MmGetSystemRoutineAddress,
======程序集1
| |
| |------ _启动子程序
| |
| |------ DriverUnload
| |
| |------ DispatchCreate
| |
| |------ DispatchClose
| |
| |------ DispatchDeviceControl
| |
| |------ DriverEntry
| |
| |------ ReadIntByAddr
| |
| |------ PsSetCreateProcess
| |
| |------ NotifyRoutine
| |
| |------ Get_Object
| |
| |------ IoCallDriver
| |
| |
======代理地址
| |
| |------ Call_IoCallDriver
| |
| |
======程序集2
| |
| |------ Get_IoCallDriver_Address
| |
| |------ Write
| |
| |
======调用的Dll
| |
| |---[dll]------ _Read_DRIVER_OBJECT
| |
| |---[dll]------ RtlAnsiStringToUnicodeString
| |
| |---[dll]------ _Read_Int
| |
| |---[dll]------ _Read_IRP
| |
| |---[dll]------ _Read_String
| |
| |---[dll]------ _Write_Int
| |
| |---[dll]------ _Write_IRP
| |
| |---[dll]------ _Write_String
| |
| |---[dll]------ DbgPrint
| |
| |---[dll]------ DbgPrintInt
| |
| |---[dll]------ DbgPrintString
| |
| |---[dll]------ IoAllocateMdl
| |
| |---[dll]------ IoCompleteRequest
| |
| |---[dll]------ IoCreateDevice
| |
| |---[dll]------ IoCreateSymbolicLink
| |
| |---[dll]------ IoDeleteDevice
| |
| |---[dll]------ IoDeleteSymbolicLink
| |
| |---[dll]------ memcpy
| |
| |---[dll]------ memset
| |
| |---[dll]------ PsRemoveCreateThreadNotifyRoutine
| |
| |---[dll]------ PsSetCreateProcessNotifyRoutine
| |
| |---[dll]------ PsSetCreateThreadNotifyRoutine
| |
| |---[dll]------ PsTerminateSystemThread
| |
| |---[dll]------ _ObReferenceObjectByHandle
| |
| |---[dll]------ RtlInitAnsiString
| |
| |---[dll]------ RtlFreeUnicodeString
| |
| |---[dll]------ _Write_DRIVER_OBJECT
| |
| |---[dll]------ IoIsWdmVersionAvailable
| |
| |---[dll]------ MmGetSystemRoutineAddress
调用的DLL命令:
.DLL命令 _Read_DRIVER_OBJECT, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的变量, DRIVER_OBJECT, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 RtlAnsiStringToUnicodeString, 整数型, "ntoskrnl.lib", "_RtlAnsiStringToUnicodeString@12", 公开
.参数 DestinationString, UNICODE_STRING, 传址
.参数 SourceString, ANSI_STRING, 传址
.参数 AllocateDestinationString, 逻辑型
.DLL命令 _Read_Int, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的变量, 整数型, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Read_IRP, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的变量, IRP, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Read_String, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的变量, 文本型, 传址
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 _Write_Int, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的地址, 整数型
.参数 源变量, 整数型, 传址
.参数 大小, 整数型
.DLL命令 _Write_IRP, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的地址, 整数型
.参数 源变量, IRP, 传址
.参数 大小, 整数型
.DLL命令 _Write_String, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的地址, 整数型
.参数 源变量, 文本型, 传址
.参数 大小, 整数型
.DLL命令 DbgPrint, , "ntoskrnl.lib", "@_DbgPrint", 公开
.参数 Buffer, 文本型
.DLL命令 DbgPrintInt, , "ntoskrnl.lib", "@_DbgPrint", 公开
.参数 Format, 文本型
.参数 Value, 整数型
.DLL命令 DbgPrintString, , "ntoskrnl.lib", "@_DbgPrint", 公开
.参数 Format, 文本型
.参数 Value, 文本型
.DLL命令 IoAllocateMdl, 整数型, "ntoskrnl.lib", "_IoAllocateMdl@20", 公开
.参数 VirtualAddress, 整数型
.参数 Length, 整数型
.参数 SecondaryBuffer, 逻辑型
.参数 ChargeQuota, 逻辑型
.参数 Irp, IRP, 传址
.DLL命令 IoCompleteRequest, , "ntoskrnl.lib", "_IoCompleteRequest@8", 公开
.参数 Irp, 整数型
.参数 PriorityBoost, 整数型
.DLL命令 IoCreateDevice, 整数型, "ntoskrnl.lib", "_IoCreateDevice@28", 公开, .
.参数 DriverObject, 整数型, , PDRIVER_OBJECT
.参数 DeviceExtensionSize, 整数型
.参数 DeviceName, UNICODE_STRING, 传址
.参数 DeviceType, 整数型
.参数 DeviceCharacteristics, 整数型
.参数 Exclusive, 逻辑型
.参数 DeviceObject, 整数型, 传址, PDEVICE_OBJECT*
.DLL命令 IoCreateSymbolicLink, 整数型, "ntoskrnl.lib", "_IoCreateSymbolicLink@8", 公开
.参数 SymbolicLinkName, UNICODE_STRING, 传址
.参数 DeviceName, UNICODE_STRING, 传址
.DLL命令 IoDeleteDevice, , "ntoskrnl.lib", "_IoDeleteDevice@4", 公开
.参数 DeviceObject, 整数型
.DLL命令 IoDeleteSymbolicLink, , "ntoskrnl.lib", "_IoDeleteSymbolicLink@4", 公开
.参数 SymbolicLinkName, UNICODE_STRING, 传址
.DLL命令 memcpy, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的变量, 整数型
.参数 源地址, 整数型
.参数 大小, 整数型
.DLL命令 memset, , "ntoskrnl.lib", "_memset", 公开
.参数 Address, 整数型
.参数 Flag, 整数型
.参数 Size, 整数型
.DLL命令 PsRemoveCreateThreadNotifyRoutine, 整数型, "ntoskrnl.lib", "_PsRemoveCreateThreadNotifyRoutine@4", 公开
.参数 NotifyRoutine, 子程序指针
.DLL命令 PsSetCreateProcessNotifyRoutine, , "ntoskrnl.lib", "_PsSetCreateProcessNotifyRoutine@8", 公开
.参数 NotifyRoutine, 子程序指针
.参数 Remove, 逻辑型
.DLL命令 PsSetCreateThreadNotifyRoutine, 整数型, "ntoskrnl.lib", "_PsSetCreateThreadNotifyRoutine@4", 公开
.参数 NotifyRoutine, 子程序指针
.DLL命令 PsTerminateSystemThread, 整数型, "ntoskrnl.lib", "_PsTerminateSystemThread@4", 公开
.参数 Status, 整数型
.DLL命令 _ObReferenceObjectByHandle, 整数型, "ntoskrnl.lib", "_ObReferenceObjectByHandle@24"
.参数 Handle, 整数型
.参数 DesiredAccess, 整数型
.参数 ObjectType, OBJECT_ATTRIBUTES
.参数 AccessMode, KPROCESSOR_MODE
.参数 Object, 整数型, 传址
.参数 HandleInformation, 整数型
.DLL命令 RtlInitAnsiString, , "ntoskrnl.lib", "_RtlInitAnsiString@8", 公开
.参数 DestinationString, ANSI_STRING, 传址
.参数 SourceString, 文本型, 传址
.DLL命令 RtlFreeUnicodeString, , "ntoskrnl.lib", "_RtlFreeUnicodeString@4", 公开
.参数 UnicodeString, UNICODE_STRING, 传址
.DLL命令 _Write_DRIVER_OBJECT, , "ntoskrnl.lib", "@_memcpy", 公开
.参数 目的地址, 整数型
.参数 源变量, DRIVER_OBJECT, 传址
.参数 大小, 整数型
.DLL命令 IoIsWdmVersionAvailable, 逻辑型, "ntoskrnl.lib", "_IoIsWdmVersionAvailable@8", 公开
.参数 MajorVersion, 字节型
.参数 MinorVersion, 字节型
.DLL命令 MmGetSystemRoutineAddress, 整数型, "ntoskrnl.lib", "_MmGetSystemRoutineAddress@4", 公开
.参数 SystemRoutineName, UNICODE_STRING
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。