⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntfunctions.h

📁 驱动枚举进程,控制线程AFFINITY,通过修改EPROCESS,ETHREAD ,KTHREAD 等结构,修改AFFINITY
💻 H
字号:
/************************************************************************
* 文件名称:NTFunctions.h                                            
* 作    者:李骥
*************************************************************************/

#ifdef __cplusplus
extern "C"
{
#endif


	///////////////声明Native API///////////////////////////////////////    
	NTSYSAPI NTSTATUS NTAPI ZwQuerySystemInformation(    
		IN ULONG SystemInformationClass,    
		IN PVOID SystemInformation,    
		IN ULONG SystemInformationLength,    
		OUT PULONG ReturnLength); 


	NTSYSAPI NTSTATUS NTAPI NtOpenThread(OUT PHANDLE ThreadHandle,IN ACCESS_MASK DesiredAccess,IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId);

	NTSYSAPI NTSTATUS NTAPI KeSetAffinityThread(  IN HANDLE ThreadHandle, IN ULONG Mask );

	NTSYSAPI NTSTATUS NTAPI NtSuspendThread( IN HANDLE ThreadHandle, OUT PULONG PreviousSuspendCount OPTIONAL ); 

	NTSYSAPI NTSTATUS NTAPI NtResumeThread(  IN HANDLE ThreadHandle, OUT PULONG PreviousSuspendCount OPTIONAL );



	
	/*我们需要的句柄被保存在ThreadHandle。我们需要把DesiredAccess设置为THREAD_SUSPEND_RESUME。 
	  ThreadHandle用来调用NtSuspendThread。 
	    被挂起的进程就可以被改写了。我们按照"挂钩Windows API"里3.2.2节里描述的方法处理。唯一的不同是使用其它进程的函数。 
		  挂钩完后我们就可以调用NtResumeThread恢复所有线程的运行。*/ 
#ifdef __cplusplus
}
#endif 


typedef NTSTATUS (*ZWQUERYSYSTEMINFORMATION)(   
	IN ULONG SystemInformationClass,    
	IN PVOID SystemInformation,    
	IN ULONG SystemInformationLength,    
	OUT PULONG ReturnLength);   

/////////////////////////////////////////////////

NTSTATUS MyZwQuerySystemInformation(    
									IN ULONG SystemInformationClass,    
									IN PVOID SystemInformation,    
									IN ULONG SystemInformationLength,    
									OUT PULONG ReturnLength);   



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -