主题:[讨论]怎么才能做到禁止进程的启动?
fantasyemperor
[专家分:200] 发布于 2007-04-10 13:09:00
我想做一个监控软件,驻留在内存,禁止一切我不允许的进程启动,大家看看有没什么办法?
我试过的方法有:
1.挂接CreateProcessW实现对进程创建的完全控制
2.PsSetCreateProcessNotifyRoutine捕获一个进程的启动
但是这两种方法都是在进程启动才能得知,此时可能进程已经做完想要做的事了.
回复列表 (共14个回复)
沙发
aaronwang [专家分:16870] 发布于 2007-04-10 16:10:00
在调用这两个函数前,进程是没有启动的.连模块都没加载,更别说做想做的事.
板凳
fantasyemperor [专家分:200] 发布于 2007-04-11 08:40:00
在鄙视我的问题之前,建议你看下<<windows核心编程>>,在那之前至少还有openfile,readfile.
PsSetCreateProcessNotifyRoutine肯定是在进程完全启动好后才会发出的通知消息
3 楼
CharlesKing [专家分:340] 发布于 2007-04-29 11:27:00
关注一下..
4 楼
天亮再见 [专家分:170] 发布于 2007-07-26 11:17:00
学习~~
5 楼
Mr_de [专家分:30] 发布于 2007-08-10 05:54:00
禁止程序启动.
6 楼
Mr_de [专家分:30] 发布于 2007-08-10 05:55:00
我想.禁止指定程序启动才能符合你的要求
7 楼
vrace [专家分:3590] 发布于 2007-08-22 17:49:00
有个简单的办法...
注册表..
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Image File Execution Options
在这个 key 下面,为你想拦截的 .exe 文件建立一个 key, 比如 setup.exe
整个 key 就是 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Image File Execution Options\setup.exe
然后,为这个 setup.exe 建立一个 string 值,命名为 debugger, 填上你的程序名字。
然后就完了...
setup.exe 执行的时候,会作为参数传递到你的程序..要不要启动它,就看你程序愿不愿意了...
8 楼
freewinger [专家分:0] 发布于 2007-08-24 18:41:00
楼上的恶搞啊
竟然连 映像劫持 都用上了
9 楼
freewinger [专家分:0] 发布于 2007-08-24 18:45:00
重定象的的资料 这个还是不错的
http://blog.csdn.net/linkboy2004/archive/2007/05/07/1599670.aspx
10 楼
undeadbird [专家分:2570] 发布于 2007-08-26 18:15:00
呵呵 映像劫持 有意思
我来回复