摘要:
1. 背景 在一般的驱动开发时,创建了符号链接后在应用层就可以访问打开我们的设备并进行通讯。 但我们有时候不希望非自己的进程访问我们的设备并进行交互,虽然可以使用 IoCreateDeviceSecure 来创建有安全描述符的设备,但大数的用户账户为了方便都是管理员,因此该方法不太完整。 2. 一般 阅读全文
摘要:
1.背景 对于常规应用程序来说,校验数字签名在在应用层可以使用 WinVerifyTrust, 在驱动层使用常规的 API无法使用,自己分析数据又太麻烦。 但在内核中 ci.dll 包装了数据签名验证相关的功能,我们可以使用该 dll 来实现我们的数字签名验证。 详细的分析见《内核中的代码完整性:深 阅读全文
摘要:
1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 阅读全文
摘要:
1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 阅读全文
摘要:
1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 阅读全文
摘要:
1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 aswArPot.sys 时间戳 5FC5F95 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 speedfan.sys 时间戳 50DF59B 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 hwinfo64a.sys 时间戳 54720A 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 pcdsrvc_x64.pkms 时间戳 5B0 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 NTIOLIB_X64.sys 时间戳 5089 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 MsIo64.sys 时间戳 5DA7C185 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 LHA.sys 时间戳 5C255B03 MD5 阅读全文
![KdMapper扩展实现之LG(LHA.sys)](https://img2023.cnblogs.com/blog/2621927/202309/2621927-20230919211822890-1174279361.png)
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 Phymemx64.sys 时间戳 58355A 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 gmer64.sys 时间戳 56DFD0B9 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 winring0x64.sys 时间戳 4763 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 cpuz141.sys 时间戳 5834463B 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 atillk64.sys 时间戳 4321D73 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 GLCKIo.sys 时间戳 540FF16D 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 EneIo64.sys 时间戳 5AB08710 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 asmmap64.sys 时间戳 4A4C7A3 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。需要大家对KdMapper的代码有一定了解。 2.驱动信息 驱动名称 ATSZIO64.sys 时间戳 541ACA3 阅读全文
摘要:
1.背景 内核映射器有较多年历史了,其中KdMapper是比较著名的,原版中它使用intel的驱动漏洞可以无痕的加载未经签名的驱动。本文章对被加载的驱动的实现进行简单的介绍。 2.常规实现 正常情况下,驱动是被KdMapper加载到内存,然后解析导入函数后直接调用其入口函数,故其加载的驱动有以下要求 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本文是利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能时遇到的问题,需要大家对KdMapper的代码有一定了解。 在《【转载】利用签名驱动漏洞加载未签名驱动》中有很多利用Mm 阅读全文
摘要:
1.背景 KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本人在利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。在这其中遇到了两个重要的问题,记录下来以作参考。 2.CallKernelFunction问题及修改 2.1 相关核心 阅读全文
摘要:
1、背景 内核映射器有较多年历史了,其中KdMapper是比较著名的,原版中它使用intel的驱动漏洞可以无痕的加载未经签名的驱动。只不过当前只支持在Win10及Win11上运行,现在进行功能的修改以支持在Win7 x64环境上。当前假定读者对KdMapper的原理比较了解并编译调试过相关代码。 2 阅读全文
摘要:
一、背景 最近开发驱动,需要用到SSDT相关函数的参数以选用合适参数个数的函数,此以在之前《Windows驱动开发学习记录-Windbg打印SSDT脚本》的基础上进行改进来显示相关信息。 二、SSDT参数表分析 Windbg分析数据如下: 4: kd> dqs nt!KeServiceDescrip 阅读全文
摘要:
原文链接:《利用签名驱动漏洞过游戏反作弊引擎》 自己写的驱动没有签名,系统不加载 设置电脑为测试模式加载驱动,某些游戏在该模式下不运行 ASUS ASMMAP64.sys ZwMapViewOfSection/ZwUnmapViewOfSectionDevice Name: ""\\.\ASMMAP 阅读全文
摘要:
1、目的 在一般情况下,对于系统的常规操作如创建进程、创建互斥体、创建文件等可以进行SSDT Hook进行拦截,但在x64位系统下,有PG的保护,常规的SSDT Hook会导致蓝屏。但基于ObjectType的一些Hook也可以做到相应的功能且不会导致系统 BSOD。 2、相关结构分析 2.1 XP 阅读全文
摘要:
1.背景 最近做驱动开发,开启了系统测试模式,于是桌面的右下角就有一个水印,如下图: 测试了网上修改注册表方法不起作用,最后找到一款工具Universal Watermark Disabler可以把水印去除掉。于是对其原理有些兴趣,就有了相关的分析及编程实现。 2、相关分析 2.1 相关行为分析 使 阅读全文
摘要:
做过滤驱动时一般需要在相关class驱动里添加过滤信息,即LowerFilters或者UpperFilters,比如disk类的注册表当前信息,如下图: 一个常规的inf文件如下所示: ; ; USBFilter.inf ; [Version] Signature="$WINDOWS NT$" Cl 阅读全文
摘要:
获取设备名称 POBJECT_NAME_INFORMATION pName = (POBJECT_NAME_INFORMATION)ExAllocatePoolWithTag(NonPagedPool, 1024, 'name'); if (pName) { ntStatus = ObQueryNa 阅读全文
摘要:
景背 最近学习TDI过滤,做一个简单的网络连接控制。当前的需求时驱动层进行了过滤,想把相应的过滤做成事件通知给应用层并显示。 思路 没有特别好的方法,本人采用的思路是驱动创建一个设备进行通讯,客户启动后创建一个线程,该线程调用 DeviceIoControl,驱动层将该操作的IRP挂起,然后有数据时 阅读全文
摘要:
一般设置IRP取消例程很简单,大致代码如下 { ...... IoSetCancelRoutine(pIrp, LogIRPCancelRoutine); pIrp->IoStatus.Status = STATUS_PENDING; return STATUS_PENDING; ...... } 阅读全文
摘要:
驱动层创建 { ...... UNICODE_STRING usMyControlDevice = RTL_CONSTANT_STRING(MY_CONTROL_DEVICE_NAME); ntStatus = IoCreateDevice(pDriverObject, NULL, &usMyCon 阅读全文
摘要:
学习SSDT Hook、SSDT Inline Hook的一点记录。 1.实现前提 使用常规的SSDT hook或者 SSDT inline hook进行挂钩,这里只讨论过滤函数的实现和调试中的一些问题。测试环境为XP sp3 x86 和 Win7 SP1 x86。 2.两个系统的差别 Win7以上 阅读全文
摘要:
最近学习SSDT inline hook中有个需要是想静默的过滤用户行为,也即在驱动中用户行为返回错误,但又想让用户层不提示错误。查了许久,在一帖子里有回复说定义一个错误码为: #define STATUS_SILENT_RETURN (0x80070000) 即定义错误码为0x80070000。 阅读全文
摘要:
一、背景 Windows内核中有很多类型,例如PROCESS、THREAD、FILE、MUTANT,这些类型都由对象管理器集中管理,见下图: 其中有些对象类型是导出的,例如有IoDriverObjectType, PsProcessType等,有些是文档化的,有些是导出的,还有的是未导出的。在使用未 阅读全文
摘要:
Hook Api lib 0.4 for C原文及源代码地址链接《 [原创]Hook Api lib 0.4 for C 》 一、使用背景 最新在学习SSDT Inline Hook,一般在Hook开头进行一个JMP,例如Near Jmp,或者一个Far Jmp。 Near Jmp机器码为 E9 x 阅读全文
摘要:
一、脚本 X86环境 1 aS ufLinkS "<u><col fg=\\\"emphfg\\\"><link name=\\\"%p\\\" cmd=\\\"uf 0x%p\\\">"; 2 aS ufLinkE "</link></col></u>"; 3 4 r $t1 = nt!KeSer 阅读全文