讨论一下VB如何获取隐藏进程的句柄,达到冰刃那样的效果?附送一个美萍机时终结者

一笑拔剑 一笑拔剑 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
美萍机时终结者代码如下
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 Sub

Private 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&, 1

End 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;
...全文
评论 13
收藏 已收藏
分享
返回顶部
一笑拔剑
VB基础类 7,788 成员 197,583 内容