吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12148|回复: 50
收起左侧

[系统底层] 360Safe驱动学习笔记和实现源码

  [复制链接]
鱼无论次 发表于 2021-6-3 11:06
本帖最后由 鱼无论次 于 2021-6-3 14:30 编辑

参考文档:
1、发一个可编译,可替换的hookport代码
网址:https://bbs.pediy.com/thread-157472.htm
2、腾讯管家攻防驱动分析-TsFltMgr
网址:https://www.jianshu.com/p/718dd8a1dd27
3、总结一把,较为精确判断SCM加载

网址:https://bbs.pediy.com/thread-135988.htm

资料代码:
https://github.com/WINGS2709/360Safe

环境:
编译器:VS2013 + WDK8.1
版本:Win7(32位)
中断:sxe ld XXXXX.sys + lmvm XXXXX

驱动使用:
先加载HookPort再加载SelfProtection


前言:
1、HookPort看achillis分析即可,新旧版本区别在于新增两个地方:INT 4中断、过滤函数的优化(感兴趣的单独处理,不感兴趣的通用Hook框架)  
2、SelfProtection实现对应的Fake函数模板然后再返回给HookPort执行  
3、SelfProtection绝大部分原理翻看MJ0011和V校帖子基本有解答
4、简单介绍下HookPort和SelfProtection流程,具体实现看附件  
5、有错误欢迎大家告诉我  
6、建议用OneNote打开附件  
7、项目仅供参考,代码自己都快忘记了  
8、代码ShaodwSSDT部分有BUG,SSDT只分析了感兴趣的部分。很多嫌麻烦就没看了  

原理介绍:
1、Hook前后对比图
1.png
2、HookPort的工作流程
HookPort负责构造一份空白的Hook模板(不负责编写对应的Fake函数,导出给SalfProtectionX使用)
可以理解为老板(HookPort)小弟(SelfProtectionX)
HookPort负责循环执行SalfProtectionX返回的Fake函数
2.png
理论上我们是可以有无数个SelfProtectionX,但是大数字最大限制16个
Hook模板结构如下(单向链表结构):
3.png
举个例子:
假设我们一共有SelfProtection1、SelfProtection2两个驱动设置了对应的Fake_CraeteProcess函数

4.png
原始CreateProcess->KiFastCallEntry->Filter_CreateProcess代{过}{滤}理函数->HookPort_DoFilter
循环将链表中所有Fake函数取出来并执行,直到链表下一个为零终止
必须全部所有Fake函数合法返回才算正确,其中一个返回错误都算错误
1.png


测试例子
例如我们要拦截SCM加载(Fake_ZwAlpcSendWaitReceivePort + Fake_ZwLoadDriver)
Safe_Initialize_SetFilterSwitchFunction:设置对应的Fake函数
Safe_Initialize_SetFilterRule:设置对应的Fake函数开关

图片.png
大致原理:
Fake_ZwAlpcSendWaitReceivePort获取真实的PID(这个技术好像是360在2011年左右提出来的理论)
图片.png
然后Fake_ZwLoadDriver函数打印出来
图片.png
设置完毕,我们先加载HookPort 然后加载 SelfProtection,我们随意加载一个驱动。
图片.png

免费评分

参与人数 16吾爱币 +14 热心值 +14 收起 理由
Htlailj + 1 我很赞同!
weiye588 + 1 我很赞同!
越简单越好 + 1 + 1 热心回复!
人行竖道 + 2 + 1 学习,得好好学
宅の士 + 1 我很赞同!
Bizhi-1024 + 1 用心讨论,共获提升!
chuxia12 + 1 我很赞同!
奈何不得 + 1 + 1 我很赞同!
没事路过 + 1 + 1 谢谢@Thanks!
victos + 1 + 1 谢谢@Thanks!
就是那个秋 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fengbolee + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yixi + 1 + 1 我很赞同!
努力加载中 + 1 + 1 热心回复!
sam喵喵 + 1 + 1 谢谢@Thanks!期待更精彩作品
shiina0831 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 鱼无论次 发表于 2023-1-10 20:31
本帖最后由 鱼无论次 于 2023-1-10 20:35 编辑
Anonymous、 发表于 2023-1-5 11:24
楼主,这篇帖子的ida跟学习文档可以更新下吗?谢谢。https://www.52pojie.cn/thread-1036956-1-1.html

https://github.com/WINGS2709/VMProtect1.21
 楼主| 鱼无论次 发表于 2021-6-17 14:04
本帖最后由 鱼无论次 于 2021-6-17 14:08 编辑

hejian1w 发表于 2021-6-17 11:24
有点东西,我12-13年也逆向过这玩意。

腾讯安全管家跟360驱动都是大热门,好多人逆
360驱动写的很棒,框架通俗易懂 易扩展 易操作。
efujin 发表于 2021-6-3 11:20
不明觉厉,从头到尾的字我都认识,可是为什么看完啥都不懂
xiaohong0827 发表于 2021-6-3 11:23
向技术员致敬!
Hmily 发表于 2021-6-3 11:28
@鱼无论次 标题改改?
 楼主| 鱼无论次 发表于 2021-6-3 11:43
Hmily 发表于 2021-6-3 11:28
@鱼无论次 标题改改?

改好了,要把所有X60的代码里的字眼删了吗?

点评

这个无所谓,360也没事,主要是完善下标题描述,具体做什么的。  详情 回复 发表于 2021-6-3 13:33
ZLJ13697750126 发表于 2021-6-3 13:05
很厉害,赞一个
xixicoco 发表于 2021-6-3 13:25
不是360吗???
Hmily 发表于 2021-6-3 13:33
鱼无论次 发表于 2021-6-3 11:43
改好了,要把所有X60的代码里的字眼删了吗?

这个无所谓,360也没事,主要是完善下标题描述,具体做什么的。
shiina0831 发表于 2021-6-3 13:54
这东西感觉好强
陈先生20030701 发表于 2021-6-3 14:48
还是没有搞懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 11:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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