如何在VBVB实现隐藏进程?
如何在VBVB实现隐藏进程?
1.这种方法可以实现在“应用程序”选项卡中隐藏但无法在“进程”选项卡中隐藏。
任务管理器里有三个选项卡吧,第一个就是“应用程序”,第二个是“进程”,第三个是“性能”。
例如很多程都做到了这一点,如金山词霸,诺顿等,都只出现在“进程”里,而不出现在“应用程序”里,如何实现呢?一句代码就够了:
Private Sub Form_Load()
App.TaskVisible = False
End Sub
2.完全隐藏进程(理论上是不可能的,只要你想运行它:))
(1)Win9x,ME下比较容易实现,代码如下:
'模块中的代码
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Declare Function GetCurrentProcess Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0
Public pid
'下面代码为隐藏
Public Sub MakeMeService()
Dim pid As Long
Dim regserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
'下面代码为恢复隐藏
Public Sub UnMakeMeService()
Dim pid As Long
Dim regserv As Long
pid = GetCurrentProcessId()
regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub
(2)在WinNT,XP中——用远程线程注入进程的办法(隐藏进程)
注:在用户态隐藏进程,一个普遍的做法是使用代码注入(code-injection)技术和在所有进程中拦截ntdll.dll中的ZwQuerySystemInformation函数,具体的我就不太清楚了,还请高手指教。