就是先挂起进程,包括进程下的所有线程,之后在结束它,但是我不知如何挂起一个线程,
请大哥们帮忙.
7 个解决方案
#1
NT 下有个api就行, ntsupxxxptocess 是ntdll.dll 中的1个导出函数,你搜下
#2
(因为没有带API 浏览器,下面有些声明可能是错误的…………)
先用CreateToolhelp32Snapshot获取线程快照,枚举所有线程
Private Type THREADENTRY32
dwsize As Long
cntusage As Long
th32threadID As Long '线程ID
th32OwnerProcessID As Long '对比这个值是否为病毒进程的PID
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
OpenThread(THREAD_SUSPENDEDRESUMED, False, TID.th32threadID)'获取该线程的暂停/恢复权限
再用SuspendThread 暂停线程,或者TerminateThread 结束线程(需要相关权限),用ResumeThread 可以恢复线程,最后CloseHandle
先用CreateToolhelp32Snapshot获取线程快照,枚举所有线程
Private Type THREADENTRY32
dwsize As Long
cntusage As Long
th32threadID As Long '线程ID
th32OwnerProcessID As Long '对比这个值是否为病毒进程的PID
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
OpenThread(THREAD_SUSPENDEDRESUMED, False, TID.th32threadID)'获取该线程的暂停/恢复权限
再用SuspendThread 暂停线程,或者TerminateThread 结束线程(需要相关权限),用ResumeThread 可以恢复线程,最后CloseHandle
#3
如果要结束线程的话,还需要什么权限呢?
具体实现代码?
具体实现代码?
#4
挂起线程 并不一定能解决问题!
#5
那解决问题该用什么办法呢?
#6
GZ
PZ~~
PZ~~
#7
谢谢大家的提醒,答案我已经找到了!
#1
NT 下有个api就行, ntsupxxxptocess 是ntdll.dll 中的1个导出函数,你搜下
#2
(因为没有带API 浏览器,下面有些声明可能是错误的…………)
先用CreateToolhelp32Snapshot获取线程快照,枚举所有线程
Private Type THREADENTRY32
dwsize As Long
cntusage As Long
th32threadID As Long '线程ID
th32OwnerProcessID As Long '对比这个值是否为病毒进程的PID
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
OpenThread(THREAD_SUSPENDEDRESUMED, False, TID.th32threadID)'获取该线程的暂停/恢复权限
再用SuspendThread 暂停线程,或者TerminateThread 结束线程(需要相关权限),用ResumeThread 可以恢复线程,最后CloseHandle
先用CreateToolhelp32Snapshot获取线程快照,枚举所有线程
Private Type THREADENTRY32
dwsize As Long
cntusage As Long
th32threadID As Long '线程ID
th32OwnerProcessID As Long '对比这个值是否为病毒进程的PID
tpBasePri As Long
tpDeltaPri As Long
dwFlags As Long
End Type
OpenThread(THREAD_SUSPENDEDRESUMED, False, TID.th32threadID)'获取该线程的暂停/恢复权限
再用SuspendThread 暂停线程,或者TerminateThread 结束线程(需要相关权限),用ResumeThread 可以恢复线程,最后CloseHandle
#3
如果要结束线程的话,还需要什么权限呢?
具体实现代码?
具体实现代码?
#4
挂起线程 并不一定能解决问题!
#5
那解决问题该用什么办法呢?
#6
GZ
PZ~~
PZ~~
#7
谢谢大家的提醒,答案我已经找到了!