首页
社区
课程
招聘
通过重写API让鼠标模拟无法被HOOK和检测到
发表于: 2018-4-21 19:12 37339

通过重写API让鼠标模拟无法被HOOK和检测到

2018-4-21 19:12
37339

大家都知道window就是一个封闭的黑盒子,在我们没有window源码的情况下我们只能通过hook达到改变api流程的目的,在windows下的hook有很多种:比如 lnlinehook,系统消息hook等,SSDT hook(win10下我们不用考虑这个)当然在用户层我们最常用也是最好用的还是lnlinehook,通过索引API地址重新构建自己的hook函数达到一些目的,这里说的就如何不让hook成功以达到攻防的目的。


首先我们先编写一个鼠标按下的代码,当然你也可以重写其他API,我们的重点是重写API,而不是过鼠标检测


然后编译,当然我们要重写必须要知道它内部干了什么


我们可以用OD打开编译好的程序



这样肯定不行,进入之后我们第一步肯定要找到自己写的代码
怎么找呢?这里又要把逆向知识补充了~~

注意刚才我们写了一个sleep函数,这里直接按暂停肯定是断在sleep上的



然后查看调用堆栈,我们要找到最外层调用的地方肯定就是地址最小的堆栈00f93f79了,点击调用来自



直接双击点进去的就来到我们的代码了 直接到mouse_event然后跟进去


这里可以看到mouse_event实际上就是调用的UsersendInput



继续跟踪进到NtUsersendInput(),这里我们就可以看到api索引号,



我们继续跟进可以看到Wow64Transition 32位转64位模式的地方



继续跟进直接就远跳了 这种长度很明显就是用户层切换到内核层的地址了,再调用int2rh或sysenter中断指令 进入系统exe和内核ZW函数通信完成参数检查 ,在调用内核NT函数完成微软API的调用,这里我们就说R3的处理,R0是R0处理的事情


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-2-2 10:16 被admin编辑 ,原因: 图片本地化
上传的附件:
收藏
免费 1
支持
分享
最新回复 (23)
雪    币: 719
活跃值: (777)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
鼠标过滤了解一下。
2018-4-21 21:35
0
雪    币: 95
活跃值: (144)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
vt  ept  hook  了解一下
2018-4-22 13:33
0
雪    币: 95
活跃值: (144)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
而且,某些厂商硬刚PG,x64内核搞事情,所以,sssdt是要考虑
2018-4-22 13:35
0
雪    币: 914
活跃值: (2463)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
5
真水
2018-4-22 13:50
0
雪    币: 238
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
isdebug 而且,某些厂商硬刚PG,x64内核搞事情,所以,sssdt是要考虑
那就没有办法了
2018-4-22 14:32
0
雪    币: 238
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
万剑归宗 真水[em_2]
哪里水了......
2018-4-22 14:33
0
雪    币: 95
活跃值: (144)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
8
武装的蔷薇 那就没有办法了[em_2]
有啊,vt对付呀...用户不开vt就也效仿某公司xxpg,然后大肆hook啊-  -||,哎呦..不装了,装不下去了
2018-4-22 17:11
0
雪    币: 95
活跃值: (144)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
9
武装的蔷薇 那就没有办法了[em_2]
小弟觉得吧,标题应该叫  通过syscall让r3apihook无效(x86)
2018-4-22 17:13
0
雪    币: 914
活跃值: (2463)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
10
isdebug 小弟觉得吧,标题应该叫 通过syscall让r3apihook无效(x86)
说得对
2018-4-22 17:25
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
11
NtUserSendInput拿全局消息钩子就秒了,根本用不着什么inline hook,都是杂技。
最后于 2018-4-23 09:42 被hzqst编辑 ,原因:
2018-4-23 09:40
0
雪    币: 238
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
hzqst NtUserSendInput拿全局消息钩子就秒了,根本用不着什么inline hook,都是杂技。
我感觉任何开发者都不会拿真实鼠标一起检测
2018-4-23 11:44
0
雪    币: 1485
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
直接连nt函数一起都重写了,调用自己nt函数。不过要考虑系统兼容
2018-4-30 11:22
0
雪    币: 433
活跃值: (1910)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
14
isdebug 小弟觉得吧,标题应该叫 通过syscall让r3apihook无效(x86)
对啊...就这回事
2018-4-30 11:56
0
雪    币: 2
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
现在的游戏感觉不仅仅是检测你模拟鼠标键盘,应该还会HOOP找图需要用到的一些API  通过参数判断你是否在频繁的截取游戏的图片,判定你是脚本!为什么所有人都在讨论鼠标键盘的过检测,没有人讨论找图过检测呢,你需要截图就需要用到一些API,人家可以猥琐的需要检测的时候才HOOK这些函数,不检测的时候不HOOK,你发现不了,有没有可能呢
2018-5-2 12:22
0
雪    币: 4939
活跃值: (2360)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
mark
2018-6-15 11:49
0
雪    币: 238
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
achuana 现在的游戏感觉不仅仅是检测你模拟鼠标键盘,应该还会HOOP找图需要用到的一些API 通过参数判断你是否在频繁的截取游戏的图片,判定你是脚本!为什么所有人都在讨论鼠标键盘的过检测,没有人讨论找图过检测呢 ...
没有这种游戏
2018-6-22 11:17
0
雪    币: 238
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
hekes mark
我是没遇到过
2018-6-22 11:17
0
雪    币: 6124
活跃值: (4656)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
19
自写syscall
2018-9-7 03:37
0
雪    币: 711
活跃值: (253)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
666666666
2019-6-18 21:13
0
雪    币: 181
活跃值: (621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
很多年以前郁金香的某教程了解一下,呵呵o(* ̄︶ ̄*)o
2019-6-18 22:08
0
雪    币: 573
活跃值: (222)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
很好,就是代码看得我有点懵逼。
2020-1-6 11:26
0
雪    币: 123
活跃值: (316)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
hzqst NtUserSendInput拿全局消息钩子就秒了,根本用不着什么inline hook,都是杂技。
怎么用全局消息钩子 拦截NT函数?
求指点
2020-5-13 09:52
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
66
2020-5-13 18:58
0
游客
登录 | 注册 方可回帖
返回
//