-
-
[注意]是谁动了我的InitInfinityHook?
-
发表于:
2020-5-10 21:19
10960
-
[注意]是谁动了我的InitInfinityHook?
一、环境
1、本机win7 7601 x64
2、虚拟机win7 7601 x64
二、InitInfinityHook
感谢看雪雪碧大神分析的InitInfinityHook原理,详见https://bbs.pediy.com/thread-253450.htm
感谢看雪大表哥逆向分析的InitInfinityHook,详见
https://bbs.pediy.com/thread-258352.htm
网上公布的代码都是基于win10的,本人在此基础上更改为支持win7 x64,
1、GetCpuClock成员偏移更改 0x28->0x18
2、WmipLoggerContext结构的获取更改为采用大表哥逆向的,通过搜索EtwSendTraceBuffer特征码获取
3、增加了大表哥逆向分析的PerfGlobalGroupMask用于在线程中判断是否被恢复或关闭
三、InitInfinityHook的弊端之一
1、经过上面的代码ctrl+c与修改成功在虚拟机跑起来
2、本机跑
欢天喜地的准备本机加载,然后撸一发,然而。。。结果hook的NtOpenProcess并没有进入代理函数,看样子是有其他东西在搞事情啊,然后实验一波:
a、通过ssdt index与NtOpenProcess address匹配过滤
b、监控线程里没有发现hook被覆盖或者ETW被关闭
c、重新hook其他ssdt函数,一样没有进入代理函数
d、__readmsr(0xc0000082),发现msr也没有被hook,同时也没有内核页表隔离啥的.
总结:InitInfinityHook才公布没多久,就已经被各种干不好使了,,由于本机不能下断调试,同时也不知道是哪个驱动使的坏虚拟机无法复现,个人猜测是因为本机BIOS开启了VT,然后ssdt的调用被提前拦截处理掉了。。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2020-5-10 21:20
被tmflxw编辑
,原因: