博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#拦截程序的运行
阅读量:6644 次
发布时间:2019-06-25

本文共 614 字,大约阅读时间需要 2 分钟。

有几种方法:

一.Ring3Hook: 可以写个驱动程序, 只需要在初始化代码中用PsSetCreateProcessNotifyRoutine注册一个回调函数就可以在接下去任何process创建时获得通知。 然后只要想办法通知ring3的前端程序就可以了。 如果想在ring3通过api hook实现, 那么需要至少hook所有已存在process的创建进程的api, 据我所知, 至少需要hook各进程内kernel32.dll中的CreateProcessInternalW和advapi32.dll中的CreateProcessWithLogonW,CreateProcessWithTokenW (也许还有漏掉的, 不过hook这几个api后普通程序的创建都能抓住了)

二.使用普通的HOOK,HOOK WH_SHELL消息.但是有遗漏的.只能HOOK到通过ShellExecute启动的程序.象QQ就HOOK不到.

三.做一个dll,在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows键下修改键值AppInit_DLLs,把你的dll及路径加上。每个程序启动后都会Load你的dll

 

 

 

转载于:https://www.cnblogs.com/sofire/archive/2010/11/19/1881392.html

你可能感兴趣的文章
Django之真正创建一个django项目
查看>>
机器学习实战之回归
查看>>
POJ 3320 Jessica's Reading Problem 【尺取法】
查看>>
[学习笔记]三元环
查看>>
07名片管理系统
查看>>
ES8 (2017)新特性
查看>>
CentOS Linux安装python3
查看>>
润乾报表 设置下拉日历的时间
查看>>
TCP与UDP的区别
查看>>
Weighted Effect Coding: Dummy coding when size matters
查看>>
Day15 - Python基础15 模块学习-selectors
查看>>
Nginx介绍及其环境搭建
查看>>
会话管理
查看>>
PHP7安装mysql扩展
查看>>
jQuery 隐藏/显示
查看>>
001 Math对象,数组和表的高级运用 字符串
查看>>
那些年一起用过的iOS开发利器之CocoaPods
查看>>
【转】Ubuntu11.10下安装Hadoop1.0.0(单机伪分布式)
查看>>
tcp_nodelay的作用
查看>>
echars 图表提示框自定义显示
查看>>