有关基础比较差我从驱动传回了某个进程的ID号,在应用层用TerminateProcess((HANDLE)PID,NULL);可以结束掉
不是应该
HANDLE hProcessHandle;
hProcessHandle=OpenProcess(0,FALSE,PID);
TerminateProcess(hProcessHandle,NULL); 吗?
为什么这样结束不掉呢?
不是应该
HANDLE hProcessHandle;
hProcessHandle=OpenProcess(0,FALSE,PID);
TerminateProcess(hProcessHandle,NULL); 吗?
为什么这样结束不掉呢?
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,PID);
TerminateProcess(hProcess,0);
确定//--------------------------------------------------------//
ULONG lRet;
PROCESS_BASIC_INFORMATION* pbi; //获取被创建线程的 进程ID
PVOID pBuffer;
PROCESSINFOCLASS ProcessBasicInformation=0; uPid.Buffer=(PWSTR)ExAllocatePool(NonPagedPool,256);
uPid.MaximumLength=256;
//------------------------------------------------------------//
pBuffer=ExAllocatePool(NonPagedPool,sizeof(PROCESS_BASIC_INFORMATION));
ZwQueryInformationProcess(ProcessHandle,ProcessBasicInformation,pBuffer,sizeof(PROCESS_BASIC_INFORMATION),&lRet); pbi=(PROCESS_BASIC_INFORMATION*)pBuffer; PID=pbi->UniqueProcessId;另外,用同样的方法获取不了线程的ID?很多结构未定义。
status=RealZwCreateThread(ThreadHandle,DesiredAccess,ObjectAttributes,ProcessHandle,ClientId,Thread Context,InitialTeb,CreateSuspended); DbgPrint("%d进程在%d进程创建远程线程 句柄%d\n",PId,pbi->UniqueProcessId,ThreadHandle);