首页
社区
课程
招聘
[求助][求助]应用层如何监视进程创建或退出,附上东西,高手看下是如何实现的?
发表于: 2010-1-14 15:44 10069

[求助][求助]应用层如何监视进程创建或退出,附上东西,高手看下是如何实现的?

2010-1-14 15:44
10069
应用层如何监视进程创建或退出,附上东西,高手看下是如何实现的?
程序用的VB写的,P_CODE编译.用VB Decompiler看不到用户自定义控件里面的东西,我想关键代码应该是在里面.高手帮分析下!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
顶上去,直到问题解决为止!
2010-1-15 14:02
0
雪    币: 458
活跃值: (426)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
hook CreateProcess  API
2010-1-15 14:07
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢楼上的回贴,但,hook CreateProcess只能监视进程的创建,不能监视进程的退出啊!
2010-1-16 01:18
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你能肯定他不是用驱动?
2010-1-16 04:36
0
雪    币: 492
活跃值: (53)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
可能使用了
PsSetCreateProcessNotifyRoutine
这个可以监视退出的
2010-1-16 08:28
0
雪    币: 217
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我说错了,我反省,呵呵。
2010-1-16 11:20
0
雪    币: 336
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
是用WMI来监控进程的创建和退出
Ultra String Reference Plugin, 条目 17
Address=0040786A
Disassembly=push    Process_.004030C0
Text String=Select * FROM __InstanceDeletionEvent WITHIN 1 Where TargetInstance ISA 'Win32_Process'

然后根据Text String在google搜索下,也有个VBS监控进程创建和删除的例子,如下
VBS-监视进程
VBS, 进程
1.监视进程的创建

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService. _        
    ExecNotificationQuery("select * from __instancecreationevent " _
         " within 1 where TargetInstance isa 'Win32_Process'")
i = 0
Do While i = 0
    Set objLatestProcess = colMonitoredProcesses.NextEvent
    Wscript.Echo objLatestProcess.TargetInstance.Name
Loop
2.监视进程的删除
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colMonitoredProcesses = objWMIService. _
    ExecNotificationQuery("select * from __instancedeletionevent " _
             "within 1 where TargetInstance isa 'Win32_Process'")
i = 0
Do While i = 0
    Set objLatestProcess = colMonitoredProcesses.NextEvent
    Wscript.Echo objLatestProcess.TargetInstance.Name
Loop
3.监视进程使用处理器的情况
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_process")
For Each objProcess in colProcesses
    sngProcessTime = ( CSng(objProcess.KernelModeTime) + _
            CSng(objProcess.UserModeTime)) / 10000000
    Wscript
2010-1-16 12:42
0
雪    币: 256
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢楼上的,我就觉得奇怪,原来是用WMI!
2010-1-16 16:48
0
雪    币: 254
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
没用,没效果!我用精简的XP,可能是没这SDK。
2010-1-18 13:14
0
游客
登录 | 注册 方可回帖
返回