美萍机时终结者代码如下
Private Sub Timer2_Timer()
Dim Handle As Long, FindClass As Long
hWnd1 = FindWindow(vbNullString, "Form1")
GetWindowThreadProcessId hWnd1, Handle
itshandle = OpenProcess(1, -1, Handle)
TerminateProcess itshandle, 0
CloseHandle itshandle
Timer2.Enabled = False
End SubPrivate Sub Command1_Click()
Timer2.Interval = 4000
Timer2.Enabled = True
Dim lHwnd As Long 'declare variables
lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
Call EnableWindow(lHwnd&, CLng(Enabled))
ShowWindow lHwnd&, 1End Sub不多说什么 只提供代码用于什么于本人无关再讨论一下VB如何获取隐藏进程的句柄
实际上你如果是通过写一个进程管理器是看不见美萍软件的进程的
估计他hook住了进程快照的函数,而且有提供过vb在任务管理器隐藏自身的代码
但是退出登陆的时候美萍肯定会有窗体出现
使用GetWindowThreadProcessId通过窗体句柄获取
如果没有窗体的话美萍进程的句柄还是不容易获取的,但是使用icesword还是可以获取美萍的进程句柄,因此想来讨论这个问题icesword的显示隐藏进程的原理是什么?如何用vb实现?
我在网络上搜索来一种这个办法 不过不知道vb如何实现
也可不用上面的办法,如果熟悉nt的内存结构,你可以直接VirtualQuery来遍历从0x10000开始走遍所有非GUARD和已被COMMIT的内存页面,其中一个页面必然含有模板的首地址(是一个IMAGE_DOS_HEADERS的Signature),通过这种方式找到Module.一个Module的Handler就是它被装入内存影像的首地址,是一个IMAGE_DOS_HEADERS结构.如下代码可计算其此模块入口地址:PIMAGE_DOS_HEADERS pDosHeader =(PIMAGE_DOS_HEADERS)hMyModule;PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader + pDosHeader->e_lfanew);PBYTE pMyEntryPoint=(PBYTE)pNtHeader->OptionalHeader.AddressOfEntryPoint + pNtHeader->OptionalHeader.ImageBase;
Private Sub Timer2_Timer()
Dim Handle As Long, FindClass As Long
hWnd1 = FindWindow(vbNullString, "Form1")
GetWindowThreadProcessId hWnd1, Handle
itshandle = OpenProcess(1, -1, Handle)
TerminateProcess itshandle, 0
CloseHandle itshandle
Timer2.Enabled = False
End SubPrivate Sub Command1_Click()
Timer2.Interval = 4000
Timer2.Enabled = True
Dim lHwnd As Long 'declare variables
lHwnd& = FindWindowEx(FindWindow("Shell_TrayWnd", ""), 0&, "Button", vbNullString)
Call EnableWindow(lHwnd&, CLng(Enabled))
ShowWindow lHwnd&, 1End Sub不多说什么 只提供代码用于什么于本人无关再讨论一下VB如何获取隐藏进程的句柄
实际上你如果是通过写一个进程管理器是看不见美萍软件的进程的
估计他hook住了进程快照的函数,而且有提供过vb在任务管理器隐藏自身的代码
但是退出登陆的时候美萍肯定会有窗体出现
使用GetWindowThreadProcessId通过窗体句柄获取
如果没有窗体的话美萍进程的句柄还是不容易获取的,但是使用icesword还是可以获取美萍的进程句柄,因此想来讨论这个问题icesword的显示隐藏进程的原理是什么?如何用vb实现?
我在网络上搜索来一种这个办法 不过不知道vb如何实现
也可不用上面的办法,如果熟悉nt的内存结构,你可以直接VirtualQuery来遍历从0x10000开始走遍所有非GUARD和已被COMMIT的内存页面,其中一个页面必然含有模板的首地址(是一个IMAGE_DOS_HEADERS的Signature),通过这种方式找到Module.一个Module的Handler就是它被装入内存影像的首地址,是一个IMAGE_DOS_HEADERS结构.如下代码可计算其此模块入口地址:PIMAGE_DOS_HEADERS pDosHeader =(PIMAGE_DOS_HEADERS)hMyModule;PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader + pDosHeader->e_lfanew);PBYTE pMyEntryPoint=(PBYTE)pNtHeader->OptionalHeader.AddressOfEntryPoint + pNtHeader->OptionalHeader.ImageBase;
哦,找到了,就是这篇文章,不过估计用VB不好做,呵呵。
对低层的操作(ring0)vb很难做到的,而且就算是vc也是要加了驱动(ddk)才实现的。
越低层的隐藏的越好。用vb操作起来太麻烦了 。