首页
社区
课程
招聘
未解决 [求助]驱动层如何在64位系统中保护自己的窗口
2020-12-24 17:13 12066

未解决 [求助]驱动层如何在64位系统中保护自己的窗口

2020-12-24 17:13
12066

背景:公司的一款软件,会被别的软件破坏安装目录;强行关闭进程;强行关闭、移动或隐藏窗口。此前在应用层保护自身,但窗口保护部分已被其破解,因此转而选择在驱动层保护。


32位系统下,我用SSDT和ShadowSSDT成功保护了自己的软件。

但是64位系统下,由于PatchGuard的存在,SSDT和ShadowSSDT运行没多久就会蓝屏。


1、假如采用干掉系统PatchGuard的方式,我试了挺麻烦。由于软件有一定装机量,教用户关PatchGuard不现实,所以不考虑此方案。

2、64位系统下,采用ObRegisterCallbacks,只能保护自己的进程,不能保护自己的窗口。


以目前自己的知识,不知道该怎么做了。

大佬们,有没有行之有效的办法,给个研究方向就行。

VT-HOOK or InfinityHook or ...?


------------------------华丽的分割线--------------------------

2021年1月8日更新:

研究发现InfinityHook是可行的。VT-Hook方向,有一个KasperskyHook,比较成熟,我自己还没验证。

所以此贴结束啦,谢谢大家。


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2021-1-8 17:56 被ybt编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (54)
雪    币: 6
活跃值: (3065)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
咖啡_741298 2020-12-24 20:33
2
0
别的软件不会进驱动?
雪    币: 12
活跃值: (206)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
蓝色的斗鱼 2020-12-24 20:57
3
0
如果拦截驱动加载或者给驱动打补丁,照样失效
雪    币: 6218
活跃值: (616)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
b!@nk 2020-12-24 22:42
4
0
你不如去分析其他软件是通过什么方式杀掉你的窗口的
雪    币: 2958
活跃值: (4831)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
舒默哦 1 2020-12-24 22:49
5
0
直接上vt
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 07:50
6
0
b!@nk 你不如去分析其他软件是通过什么方式杀掉你的窗口的
分析了的,分析了才有针对性的开发嘛
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 07:56
7
0
咖啡_741298 别的软件不会进驱动?
收银系统与收款插件之争,前者没驱动,我们是后者。
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 07:59
8
0
舒默哦 直接上vt
vt我只是初步了解了下,好像是受限于CPU
雪    币: 5112
活跃值: (4598)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
~时光荏苒 2020-12-25 08:03
9
0
getwindow 你过得了? 驱动都没有用
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 08:12
10
0
~时光荏苒 getwindow 你过得了? 驱动都没有用

对方第一步得枚举窗口,或获取顶层窗口,或查找窗口,第一步拦截掉,不会到GetWindow这步。

最后于 2020-12-25 08:12 被ybt编辑 ,原因:
雪    币: 2958
活跃值: (4831)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
舒默哦 1 2020-12-25 10:50
11
0
ybt vt我只是初步了解了下,好像是受限于CPU
我也不太懂,跟着气哄哄
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 11:04
12
0
舒默哦 [em_19]我也不太懂,跟着气哄哄
我准备研究InfinityHook了,毕竟流氓界大佬2345安全卫士也用这个。
雪    币: 293
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cavan 2020-12-25 11:54
13
0
收集证据发律师函
雪    币: 293
活跃值: (239)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cavan 2020-12-25 11:56
14
0
在技术上搞对抗耗费心血,浪费时间,亲身经历。
其实可以用另一种办法解决此类问题,粗暴有效。
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 14:02
15
0
cavan 在技术上搞对抗耗费心血,浪费时间,亲身经历。 其实可以用另一种办法解决此类问题,粗暴有效。[em_13]
作为技术,要是没事干的话,挺难受的,说明可以跳槽了。所以研究这玩意是给自己找事做。
雪    币: 405
活跃值: (2005)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 1 2020-12-25 17:08
16
0
窗口标题随机化。在自己的窗口处理函数里,处理所有窗口消息,如果不是自己发关闭的,一律忽略,还要对消息洪水攻击进行处理。
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 17:56
17
0
wowocock 窗口标题随机化。在自己的窗口处理函数里,处理所有窗口消息,如果不是自己发关闭的,一律忽略,还要对消息洪水攻击进行处理。

这种简单的对抗我们早就做了。某厂收银软件的做法是,只要是在它上层的窗口,除了少数几个进程的窗口(白名单机制,比如腾讯的软件是检测进程文件签名),其它一律干掉。

最后于 2020-12-25 17:57 被ybt编辑 ,原因:
雪    币: 44
活跃值: (127)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
mfxiaosheng 2020-12-25 18:35
18
0
直接针对他, 注入进去把枚举窗口的API HOOK掉
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 19:02
19
0
mfxiaosheng 直接针对他, 注入进去把枚举窗口的API HOOK掉

应用层的hook被其干掉了一部分,干掉方式是启动时保存进程自身关键API的地址,每次调用前,都进行WriteProcessMemory写回,让hook失效。

最后于 2020-12-28 10:14 被ybt编辑 ,原因:
雪    币: 12843
活跃值: (9078)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2020-12-25 19:15
20
0
ybt 应用层的hook被其干掉了一部分,干掉方式是启动时保存进程自身关键API的地址,每次调用前,都进行WriteProcessMemory写回,让你的hook失效。

网吧那些破烂软件都是32位的吧,直接劫持Wow64Transition给他窗口请求全部干碎就完事了


能用R3解决的没必要上R0

最后于 2020-12-25 19:16 被hzqst编辑 ,原因:
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-25 19:25
21
0
hzqst ybt 应用层的hook被其干掉了一部分,干掉方式是启动时保存进程自身关键API的地址,每次调用前,都进行WriteProcessMemory写回,让你的hook ...

谢谢大佬,我查下这个相关资料,学习学习。

最后于 2020-12-25 19:33 被ybt编辑 ,原因:
雪    币: 14
活跃值: (948)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
妮可 2020-12-26 14:45
22
0
可以过,内核有个函数是查询HWND的,返回NULL就过掉了很多窗口类函数包括getwindow
雪    币: 7
活跃值: (346)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ybt 2020-12-28 09:18
23
0
妮可 可以过,内核有个函数是查询HWND的,返回NULL就过掉了很多窗口类函数包括getwindow
是哪个函数呢
雪    币: 518
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
心里某个地方 2020-12-28 11:15
24
0
按你说的,没驱动就全是r3,直接注入c3完事了
雪    币: 1243
活跃值: (1815)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
库尔 2020-12-28 12:42
25
0

重新编译一份windows

最后于 2020-12-28 12:42 被库尔编辑 ,原因:
游客
登录 | 注册 方可回帖
返回