如何用VB实现拦截WINDOWS消息,在任何可执行程序运行之前就报警?

2024-11-05 23:24:26
推荐回答(3个)
回答(1):

Windows消息的方法没用过……

3个想法:
1. Timer定时枚举系统进程,肆凯棚发现新的进行处理;
2. 订阅WMI事件通知,得到通知后进行处理;
3. 修改注册表HKEY_CLASSES_ROOT\exefile\shell\open\command下的默认键,改成"你的程序 %1",Exe运行时就会先执行你的程序,然孙信后判断;

前两种方法都是马后炮,程序运行了才得到通知,即使你停止它,可能它已经进行过破坏……
第三种方法好些,但需要费些心思考虑应用程序参数的问题,要不然会出大问题,因为像Winlogon之类的程序都要经过你的判断,一旦失误就是Crash……

至于杀毒软件的方法,可能是Hook吧……但像赛门铁克这裂则样的大公司一般都是有MS的源代码支持,直接从内核下手……

回答(2):

实现进程拦截的话要用到hook技术了,ring3下面可以hook CreateProcess函没唤数实现拍首进程创建的监控。ring0下面枯贺凯的话,选择性比较多,一般采用hook NtCreateProcess或NtCreateSection函数。

回答(3):

使用杀毒软件撒 很多杀毒软件都有这个功能