- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
钩子的另类用法.pdf
P R 口 G RA M M IN B A N A LYg E
■ j■匿篁 ■之
栏 目编辑)sOCket )
前置知识 VB
关键词:编程、HOO
文/图 胡文亮 钩子的另类用法
钩子是 目前各种RK/AV/ARK使用得最多的 办法和驱动进行通信。另类方式和驱动通信 的
技术 了,但是钩子 的用途貌似很少 ,只是用来 办法很多,但我觉得HOOK比较方便 。HOOK的函
保护进程/文件 /注册表项 ,以及实现主动防 数要注意 .至少要有返回值 。HOOK的方式也要
御。我个人 比较喜欢剑走偏锋 ,研究老东西的 注意,不推荐使用SSDT HOOK,而要使用lnline
新用途。经过我的思考以及和我表弟、SYf等人 Hook。原因是使用SSDTHOOK的软件很多,而且
的探讨 终于想到 了七个另类用法 ,特地写出 太 明显 (打开冰刃一看一片红)。基于上述两
本文 与大家分享 。 个原因,我选择了对NtOpenPr0Cess进行InIine
H00k。这样 我们就可以在Ring3下用普通的
挂钩Nt0penpPacess实瑰与驱动逦信 OpenProcess来和我们的驱动通信了。在此设定我
一 般来说 .标准的Ring3程序与RingO~_动通 们的IOCTL是OpenProcess~l,tJ第三个参数Processld,
信都是这样的,在驱动中创建设备,并为设备 而返 回值是 句柄 。要注意 的是 PrOCessId要
创建符号链接,Ring3用CreateFire-~7开符号链接 特别一点.不能是 看起来 很正常的PlD ,否
得到设备句柄 ,然后Device1oC0ntr0J发送 则我们就无法确定传入这个参数的意图了。我
ControlCode。DeviceloControl的内容被封装成IRP 的建议是把当作IOCTLI)gPID的范围定在100000以
到达Device,Device其所属Driver的对应派遣例 上或者O 1O0比较合适。因为想必大家都没见过
程对IRP进行处理 ,处理完后loCompleteRequest完 PID100000或者PID1oo~9,进程 (IdleY~DSystem除
成该IRP,最后返 回到Ring3。 外)吧 !以下是我们处理 函数的代码:
不知道大家有没有注意到这么一个 问题 ,
使用了大量底层函数的冰刃竟然杀不死3601莫
非在驱动中调用PspTermnateThreadByP0inter、
MiunmaPViewOfSectiOn等函数都要经过
KiFastCalIEntry7明显不是的,2008年的黑防文
章(R《jngO中废除36O自我保护 中已经说的很清
楚,360的设计人员对冰刃的驱动通信做 了处
理 一旦发现传递的是受保护 的PlD/T1D/
EPR0CEss/ETHREAD则进行干扰 ,这么一来 .冰
刃自然是杀不死360了。所 以,我们必须想别的
日 一
\PR叩RAM栏星目编辑socket)曩■■誓蛋■■■翟■—■墨糊■■口U即■■l■
elseff(ClientId一UniqueProcess==(HANDLE)2) 挂钩IoCreateFite蔡止打开内壤文件
{
*ProcessHandle=(HANDLE)3790; 保护In[ineHo
文档评论(0)