【旧文章搬运】扩展一下ProcessNotify~~

原文发表于百度空间,2009-01-08

看雪论坛地址:https://bbs.pediy.com/thread-80109.htm

DebugMan论坛地址:http://www.debugman.com/thread/2642/1/1
==========================================================================

纯粹是写着好玩的东西,就是扩展一下ProcessNotify而已~
因为大家都知道,系统只给了8个坑,坑满了就蹲不进去了
所以,我们自己写代码来解决这个问题,有多少个坑我们自己决定
至少不会像系统那么小气只给8个,呵呵~~

看张效果图吧,27个Notify同时工作,当然还可以更多(不要说我无聊哦)~~~

附件中的testNotify.sys是测试用的,它会注册9个Notify,同时打印返回值
每个Notify在进程创建或退出时会打印一句话,最前面是一个唯一标识符(跟加载基址有关)
卸载Notify时也会打印返回码
你可以把testNotify.sys复制几份同时加载来测试,每一个的标识都不一样

上面那张图是这样来的:
1.加载第一份testNotify.sys,驱动的标识是18,9个Notify注册成功8个(虚拟机中干净系统,8个坑占满)
2.加载ExtendNotify.sys,因为坑已满,所以会XX掉第一个坑即标识为18的驱动的Notify1
3.加载第二份testNotify.sys,驱动的标识是138,9个Notify全部注册成功
4.加载第三份testNotify.sys,驱动的标识是140,9个Notify全部注册成功
5.随便运行个程序,27个Notify全部工作...

至于为什么打印出的消息是这个顺序,大家思考便可知道~~
这个只是以PrcessNotify为例,还有CreateThreadNotify,LoadImageNotify等都可以扩展...

原文地址:https://www.cnblogs.com/achillis/p/10180949.html