能力值:
( LV8,RANK:140 )
|
-
-
2 楼
顶 前排占座 下载学习
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
应该是蛮风骚的代码,哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
占位学习……
|
能力值:
( LV13,RANK:290 )
|
-
-
5 楼
呵呵。。。。。。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
Hook KiFastCallEntry不错,不知道如何才能兼容360
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
好复杂的毕业设计
|
能力值:
( LV9,RANK:260 )
|
-
-
8 楼
360是jmp xxx-->jmp yyy跳两次,可以hook第二跳。 要想兼容的话需要在detour里专门处理一下,如果是360跳过来的就不跳回KiFastCallEntry,而是跳回yyy。当然KiFastCallEntry里被改掉的5个字节就不能再执行了,因为有360帮忙做了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
顶礼膜拜fypher大牛
|
能力值:
( LV5,RANK:60 )
|
-
-
10 楼
在 and eax,0xfff 这里挂个钩子在EAX中获取函数序列号,再在360HOOK的下面那6字节的比较指令处挂个钩子过滤就行了,和360抢啥地盘
|
能力值:
( LV9,RANK:260 )
|
-
-
11 楼
不是抢地盘,做的时候根本没考虑360,后来发现刚好和它勾了同一个地方,所以就随便改了改。这是原始架构上的最小改动,毕设而已嘛,不想为了个360改那么多。
|
能力值:
( LV5,RANK:60 )
|
-
-
12 楼
挂个钩子几十行的代码而已,挂函数头,改INT 2E,改MSR寄存器好多地方,除非是你的框架写的太死了,难以改动
|
能力值:
( LV9,RANK:260 )
|
-
-
13 楼
不是好不好改的问题,我们的侧重点不一样……你貌似没明白我的想法哈……我只是在针对题目需求提出一个理想的解决方案,跟360根本没有关系。
这个地方的需求是“通过 Hook KiFastCallEntry 来监控系统调用”,在选择Hook点时,我发现这个Hook点具有以下几个特点:
1、刚好5字节,Hook很方便;
2、内核环境已经完成;
3、ebx指向SSDT或SSDT Shadow中对应的内核函数地址;
4、eax中存放了本次函数调用的功能号;
5、edi指向本次调用对应的系统服务描述表的基地址;
6、esi指向用户栈;
7、ecx/4是参数个数;
因为这些特点,我个人以为,在这个地方Hook是满足这个需求最自然简洁,也最理想的位置。
当然后来发现360勾了同一个地方,由于360装机量很大,怕答辩或演示时出现什么问题,所以才针对360改了改。但是它毕竟是跟我不相干的软件嘛,我觉得不应该为了它改变hook方案。
当然这也是仁者见仁智者见智的问题啦,你也可以觉得你的hook方案更好。
|
能力值:
( LV6,RANK:90 )
|
-
-
14 楼
谢谢分享,先收藏,后学习。
|
能力值:
( LV12,RANK:600 )
|
-
-
15 楼
这个点其实不太好,可以参考TsFltMgr.sys
|
能力值:
( LV9,RANK:260 )
|
-
-
16 楼
thx!学习了!果断去研究下~
|
能力值:
( LV9,RANK:140 )
|
-
-
17 楼
直接wrmsr来Hook sysenter么好了
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
都是强人~~
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
这是啥技术??
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
值得一看
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
谢谢分享,先收藏,后学习
|
能力值:
( LV9,RANK:260 )
|
-
-
22 楼
自己实现一个KiFastCallEntry,或者XXX后跳回原始的KiFastCallEntry。但是这样做比较麻烦的是需要自己初始化一些内核环境,比如让fs对其PCR等~
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
路过来**,呵呵呵
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
占座支持一下,顶一下hook框架
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
mark... 学习。。
|
|
|