技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 607|回复: 1
收起左侧

Q管相关驱动分析

[复制链接]

268

主题

441

帖子

4648

积分

用户组: 真·技术宅

UID
2
精华
61
威望
148 点
宅币
3480 个
贡献
126 次
宅之契约
0 份
在线时间
599 小时
注册时间
2014-1-25
发表于 2017-1-9 14:00:32 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
由于已经从PC开发转到移动安全,因此放出我当时对Q管驱动的一些研究,2015年8月
详见git   https://github.com/lichao890427/Reverse-Engineearing


TsSysKit.sys分析
一、驱动入口DriverEntry  2
1.1 检测加载者是否为Ntos  2
1.2 执行删除任务 DoDeleteJob  3
二、驱动接口Interface  5
2.1 DeviceExtension接口  5
2.2 与WRK代码异同点  6
2.3 重置/保存注册表对象ObjectInitialzer例程  6
2.4 NtCreateKey  7
2.5 NtOpenKey  9
2.6 NtQueryValueKey  10
2.7 NtSetValueKeyEx  11
2.8 NtDeleteValueKey  12
2.9 NtDeleteKey  13
2.10 IopCreateFile  14
三、控制码  17
3.1 TSSysKit x86   IoControlCode对应表  17
0x221C00解锁文件  21
0x222004普通结束进程  21
0x22242C穿透创建服务加载驱动  22
3.2 TSSysKit x64   IoControlCode对应表  25
四、默认派遣例程  30
4.1 根据进程id结束进程  30
4.2 获取当前进程进程名  30
4.3 由进程ID获取进程设备名  31
4.4 设备名转DOS路径  32
4.5 得到EPROCESS对应ImageDosPath  33
4.6 随机化程序名机制  34
4.7 根据进程文件名获取进程信息  35
4.8 两种方式调用内核函数  35
4.9 获取对象类型  36
4.10 基础库功能——检测腾讯程序合法性  36
4.11 解锁文件  38
五、获取ObjectInitializer  44
5.1 获取注册表OBJECT_TYPE,匹配对象类型  44
5.2获取ParseProcedure  46
5.3 获取GetCellRoutine偏移,Hook GetCellRoutine  47
5.4 Hook和UnHook GetCellRoutine  48
5.5 创建系统线程获取 Cm*函数  49
5.6 匹配结构  54
5.8 获取DeviceObject对象类型  73

TsKsp分析
TsKsp.sys分析报告  1
一、  驱动入口DriverEntry  2
1.1  监控模型  2
1.2 派遣例程  2
1.3 监控函数  3
1.4重要回调的挂钩  10
1.5 一些用到的数据  10
1.6 OBJECT_TYPE_INITIALIZER 挂钩  11
1.7 PROCINFO结构  12
二、  控制信息  14
2.1 ACL访问控制列表  14
2.2 匹配树  14
2.3 全局开关DriverSwitch  15
2.4 自保开关影响的函数和功能  17
2.5 规则判断  18
2.6 黑白名单g_StorageList  19
2.7 上抛消息结构  24
2.8 其他  25        (对Q管签名的破解)
三、  接口和控制码  27
3.1 导出接口  27
3.2 控制码  27
四、  基础库  33
4.1 由进程Id获取文件对象  33
4.2 由线程句柄获取进程对象  36
4.3 由线程对象获取进程Id  36
4.4 由Ntfs文件索引号获取文件对象  37
4.5 长度反汇编引擎  39

TsFltMgr分析
TsFltMgr.sys分析报告  1
一、  驱动入口DriverEntry  2
1.1 过滤模型  3
1.2 检查当前系统是否为默认挂钩系统  3
1.3 打开TsFltMgr日志记录  4
1.4 控制信息  4
1.5 全局表  4
1.6 Proxy*函数模型  19
二、  驱动接口Interface  22
2.1 DeviceExtension接口  22
2.2 SetEvaluateTime  22
2.3 SetDisablePrevFilter  23
2.4 SetPostFilter  23
2.5 ExecOriginFromPacket  23
2.6 AddPrevFilter  23
2.7 RemovePrevFilter  24
2.8 GetCurrentHookInfo  25
2.9 GetDProxyTable  26
三、  基础库  27
3.1 获取注册表键值  27
3.2 通过进程名获取进程ID  29
3.3 Rabbit加密算法  29
四、  InlineHook KiFastCallEntry  35
4.1 获取SSDT/SSSDT/Hook点  36
4.2 从KiSystemService获取KiFastCallEntry  39
4.3 获取SSSDT信息  39
4.4 初始化InlineHook KiFastCallEntry跳转表  41
4.5 获取系统服务号的2种方式  44
4.6 InlineHook过程  45
4.7 构造InlineHook跳转后的执行语句  48
4.8 强制单核互斥执行指定Procedure  51
4.9 进行SSDT hook  52
4.10 对重要回调(进程回调、线程回调、映像加载回调)的挂钩  55
4.11 Hook KeUserModeCallback  57
4.12 交换内存  58
4.13 获取函数Iat偏移  58
4.14 另一种方式获取ShadowSSDT信息  59


TsDefenseBt.sys分析
TsDefenseBt.sys分析报告  1
一、  入口点  2
Ntfs创建回调NtfsFsdCreateHooker:  2
RegisterShutdown:  2
ClearThread  2
ShutdownDispatch:  3
UnloadDispatch:  3
CreateDispatch:  3
CloseDispatch:  3
IoCtlDispatch:  3
删除360注册表项:  3
解除baidu驱动回调:  6
删除360快捷方式:  6
删除360服务项:  6
删除baidu注册表项:  7
NtCreateProcessNotifyHooker1:  8
NtSetValueKeyHooker:  9
ZwRequestWaitReplyPortHooker/ZwAlpcSendWaitReceivePortHooker  9
NtWriteVirtualMemoryHooker/NtCreateThreadHooker  9
FakeObReferenceObjectByHandle  9
CmCallback  10

0

主题

2

帖子

10

积分

用户组: 初·技术宅

UID
2302
精华
0
威望
1 点
宅币
6 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2017-3-6
发表于 2017-3-6 16:19:50 | 显示全部楼层
前辈,能不能给一份Reverse-Engineearing学习一下,你的github找不到了
多谢~

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-11-21 15:55 , Processed in 0.074771 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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