查看: 35261|回复: 48
收起左侧

[原创文章] 记一次对<Ring3钩子保护自身>例程的分析,付解决DEMO和思路

  [复制链接]
ExitProces
发表于 2015-3-23 17:52:22 | 显示全部楼层 |阅读模式
本帖最后由 ExitProces 于 2015-3-23 18:07 编辑

又是R3,也许很多人很不耐烦.
首先想和大家说明的是,为什么我这么喜欢R3.R0是系统的内核层,具有最高特权.我也很想喜欢R0,因为一旦进入R0之后就基本可以为所欲为.
但是,理想是丰满的,现实是残酷的.无论是谁都想拥有最高特权,无论是谁都不想被别人拥有最高特权.所以,先进入R0层的程序肯定会封堵一切进入R0的路径.
就比如,所有的杀软都会拦截加载驱动,驱动木马也会拦截杀软的驱动加载.而当进入R0失败之后,或者说是可能进入R0失败之后,我们就得在R3下思考解决办法.
太多的情况会阻止驱动的加载,驱动一旦加载失败,整个程序基本就废了.而R3层却不会这样,能运行就能实现大多数的行为.即使API被HOOK了,也会有很多解决的办法.
而且对驱动的编写比较苛刻,没有参数校验,任何小小的问题都会导致蓝屏.反之,R3的稳定性则好很多.

所以,我在想,绞尽自己的脑汁,如果能在R3下能实现R0下的大部分功能,那跑在R3下不就很好吗?

当然,我不是觉得R3比R0好,也不是推荐大家用R3的工具.反而我推荐首选PCHUNTER这种R0神器.只是在R0工具失效之后可以尝试一下R3的工具.仅此而已.

===========================================================================================

昨天闲着有空,在VBGOOD论坛的系统底层访问版块下载329510010的<Ring3钩子保护自身>进行测试时,觉得这个R3下的自保不一般.决定静下心来看看.
地址:http://www.vbgood.com/thread-95180-1-1.html
PS:例程运行之后会挂全局消息钩子将DLL注入到所有当前有窗口的进程中,由于API HOOK的比较多,建议保存当前文档,或者在虚拟机下进行测试!
HOOK.rar (21.88 KB, 下载次数: 981)

评分

参与人数 6分享 +2 人气 +5 收起 理由
↓★x + 1 版区有你更精彩: )
firethreat + 1 如今这样的帖子很少见了。
easybeing + 1 精品文章
屁颠屁颠 + 2 版区有你更精彩: )
小飞侠.net + 1 感谢支持,欢迎常来: )

查看全部评分

边缘vip
发表于 2015-3-23 21:44:35 | 显示全部楼层
explorer的重启似乎不可避免
ExitProces
 楼主| 发表于 2015-3-23 22:29:32 | 显示全部楼层
边缘vip 发表于 2015-3-23 21:44
explorer的重启似乎不可避免

可以避免的,其实只需要对explorer.exe用SetWindowsLong重置消息队列,拦截被设置了全局钩子的消息,然后使用FreeLibrary函数卸载explorer.exe中的APIHOOK.dll,再结束目标进程即可.
yjwfdc
头像被屏蔽
发表于 2015-3-24 23:13:03 | 显示全部楼层
我也用易语言,
你这样发贴,会引发很多人学习易语言的,实在不好。
ExitProces
 楼主| 发表于 2015-3-25 00:51:06 | 显示全部楼层
yjwfdc 发表于 2015-3-24 23:13
我也用易语言,
你这样发贴,会引发很多人学习易语言的,实在不好。

这,居然让我无言以对...

只有不好的程序员, 没有不好的语言
benlvan
发表于 2015-3-28 19:19:50 | 显示全部楼层
本帖最后由 benlvan 于 2015-3-28 19:21 编辑

R3的HOOK是没意义的。
要反一切R3的API HOOK,都可以用一个最简单的方法:自己组建机器码。
你用WINDBG去U一下任意一个NTAPI,看看组成是不是都很类似?唯一不同的是编号。比如:
  1. 0:000> u ntdll!ntopenprocess l10
  2. ntdll!ZwOpenProcess:
  3. 00000000`77ef0c40 4c8bd1          mov     r10,rcx
  4. 00000000`77ef0c43 b823000000      mov     eax,23h  //这里不同
  5. 00000000`77ef0c48 0f05            syscall
  6. 00000000`77ef0c4a c3              ret
  7. 00000000`77ef0c4b 666690          xchg    ax,ax
  8. 00000000`77ef0c4e 6690            xchg    ax,ax
  9. ntdll!ZwSetInformationFile:
  10. 00000000`77ef0c50 4c8bd1          mov     r10,rcx
  11. 00000000`77ef0c53 b824000000      mov     eax,24h  //这里不同
  12. 00000000`77ef0c58 0f05            syscall
  13. 00000000`77ef0c5a c3              ret
  14. 00000000`77ef0c5b 666690          xchg    ax,ax
  15. 00000000`77ef0c5e 6690            xchg    ax,ax
复制代码
(以上代码取自WINDOWS XP X64)
所以只要自己组建一下机器码,实现NTAPI,然后调用自己组建的NTAPI,即可干掉一切RING3的自我保护,连RELOAD DLL都不需要。

评分

参与人数 1分享 +1 收起 理由
屁颠屁颠 + 1 版区有你更精彩: )

查看全部评分

ExitProces
 楼主| 发表于 2015-3-28 21:09:09 | 显示全部楼层
benlvan 发表于 2015-3-28 19:19
R3的HOOK是没意义的。
要反一切R3的API HOOK,都可以用一个最简单的方法:自己组建机器码。
你用WINDBG去 ...

hovidelphic前辈教训的是,虽然我也知道研究R3下的任何成果都是没有意义的.这些都绝不会被任何AV,ARK所需要.虽然我知道,但是我希望我能通过这些研究,能渐渐了解和熟悉windows,至少能学习或反思出一些系统编程的思想.如果能达到这个目标,就已经很满足了.
所有关于R3的研究,结果终究会是无用.但是,过程却有意义,那就是,为了学习windows内核做准备.

评分

参与人数 1人气 +1 收起 理由
屁颠屁颠 + 1 版区有你更精彩: )

查看全部评分

wowowo
发表于 2015-4-4 17:04:53 | 显示全部楼层
VB GOOD论坛也半死不活了 一个问题半天都没人回答
ExitProces
 楼主| 发表于 2015-4-4 18:22:33 | 显示全部楼层
wowowo 发表于 2015-4-4 17:04
VB GOOD论坛也半死不活了 一个问题半天都没人回答

同感同感必须握爪

话说CSDN上的那个@dengchaozhu是你吗?

捕获1.JPG 捕获.JPG
wowowo
发表于 2015-4-4 18:45:13 来自手机 | 显示全部楼层
ExitProces 发表于 2015-4-4 18:22
同感同感必须握爪

话说CSDN上的那个@dengchaozhu是你吗?

不是啊。。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-22 12:03 , Processed in 0.128147 second(s), 20 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表