Q管相关驱动分析
由于已经从PC开发转到移动安全,因此放出我当时对Q管驱动的一些研究,2015年8月详见git https://github.com/lichao890427/Reverse-Engineearing
TsSysKit.sys分析
一、驱动入口DriverEntry2
1.1 检测加载者是否为Ntos2
1.2 执行删除任务 DoDeleteJob3
二、驱动接口Interface5
2.1 DeviceExtension接口5
2.2 与WRK代码异同点6
2.3 重置/保存注册表对象ObjectInitialzer例程6
2.4 NtCreateKey7
2.5 NtOpenKey9
2.6 NtQueryValueKey10
2.7 NtSetValueKeyEx11
2.8 NtDeleteValueKey12
2.9 NtDeleteKey13
2.10 IopCreateFile14
三、控制码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对应ImageDosPath33
4.6 随机化程序名机制34
4.7 根据进程文件名获取进程信息35
4.8 两种方式调用内核函数35
4.9 获取对象类型36
4.10 基础库功能——检测腾讯程序合法性36
4.11 解锁文件38
五、获取ObjectInitializer44
5.1 获取注册表OBJECT_TYPE,匹配对象类型44
5.2获取ParseProcedure46
5.3 获取GetCellRoutine偏移,Hook GetCellRoutine47
5.4 Hook和UnHook GetCellRoutine48
5.5 创建系统线程获取 Cm*函数49
5.6 匹配结构54
5.8 获取DeviceObject对象类型73
TsKsp分析
TsKsp.sys分析报告1
一、驱动入口DriverEntry2
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 全局开关DriverSwitch15
2.4 自保开关影响的函数和功能17
2.5 规则判断18
2.6 黑白名单g_StorageList19
2.7 上抛消息结构24
2.8 其他25 (对Q管签名的破解)
三、接口和控制码27
3.1 导出接口27
3.2 控制码27
四、基础库33
4.1 由进程Id获取文件对象33
4.2 由线程句柄获取进程对象36
4.3 由线程对象获取进程Id36
4.4 由Ntfs文件索引号获取文件对象37
4.5 长度反汇编引擎39
TsFltMgr分析
TsFltMgr.sys分析报告1
一、驱动入口DriverEntry2
1.1 过滤模型3
1.2 检查当前系统是否为默认挂钩系统3
1.3 打开TsFltMgr日志记录4
1.4 控制信息4
1.5 全局表4
1.6 Proxy*函数模型19
二、驱动接口Interface22
2.1 DeviceExtension接口22
2.2 SetEvaluateTime22
2.3 SetDisablePrevFilter23
2.4 SetPostFilter23
2.5 ExecOriginFromPacket23
2.6 AddPrevFilter23
2.7 RemovePrevFilter24
2.8 GetCurrentHookInfo25
2.9 GetDProxyTable26
三、基础库27
3.1 获取注册表键值27
3.2 通过进程名获取进程ID29
3.3 Rabbit加密算法29
四、InlineHook KiFastCallEntry35
4.1 获取SSDT/SSSDT/Hook点36
4.2 从KiSystemService获取KiFastCallEntry39
4.3 获取SSSDT信息39
4.4 初始化InlineHook KiFastCallEntry跳转表41
4.5 获取系统服务号的2种方式44
4.6 InlineHook过程45
4.7 构造InlineHook跳转后的执行语句48
4.8 强制单核互斥执行指定Procedure51
4.9 进行SSDT hook52
4.10 对重要回调(进程回调、线程回调、映像加载回调)的挂钩55
4.11 Hook KeUserModeCallback57
4.12 交换内存58
4.13 获取函数Iat偏移58
4.14 另一种方式获取ShadowSSDT信息59
TsDefenseBt.sys分析
TsDefenseBt.sys分析报告1
一、入口点2
Ntfs创建回调NtfsFsdCreateHooker:2
RegisterShutdown:2
ClearThread2
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/ZwAlpcSendWaitReceivePortHooker9
NtWriteVirtualMemoryHooker/NtCreateThreadHooker9
FakeObReferenceObjectByHandle9
CmCallback10 前辈,能不能给一份Reverse-Engineearing学习一下,你的github找不到了
多谢~
页:
[1]