lpmjknj 发表于 2019-1-1 21:42:51

无硬编码动态关闭驱动签名强制(DSE),支持Win7~Win10

ci.dll中g_CiOptions全局变量的值决定系统在加载驱动的时候是否会检测数字签名
通过IDA发现在CipInitialize函数中可以定位到g_CiOptions这个全局变量

//win7 windbg
CI!CipInitialize:
fffff880`00ce5308 488bc4          mov   rax,rsp
fffff880`00ce530b 48895808      mov   qword ptr ,rbx
fffff880`00ce530f 48896810      mov   qword ptr ,rbp
fffff880`00ce5313 48897020      mov   qword ptr ,rsi
fffff880`00ce5317 4c894018      mov   qword ptr ,r8
fffff880`00ce531b 57            push    rdi
fffff880`00ce531c 4154            push    r12
fffff880`00ce531e 4155            push    r13
fffff880`00ce5320 4156            push    r14
fffff880`00ce5322 4157            push    r15
fffff880`00ce5324 4883ec20      sub   rsp,20h
fffff880`00ce5328 498be8          mov   rbp,r8
fffff880`00ce532b 488bf2          mov   rsi,rdx
fffff880`00ce532e 890dbcaaffff    mov   dword ptr ,ecx
fffff880`00ce5334 ff15165dffff    call    qword ptr

//win7 IDA
地址        Function        指令
INIT:000000000006E406                              db 'PsGetCurrentProcess',0
INIT:000000000006E49C                              db 'PsGetCurrentProcessId',0
PAGE:000000000000D334        CipInitialize                      call    cs:__imp_PsGetCurrentProcess
PAGE:000000000000E96C        CipCallPeauth                      call    cs:__imp_PsGetCurrentProcess
PAGE:000000000000F08A        CipFixImageType                      call    cs:__imp_PsGetCurrentProcess
PAGE:00000000000198A6        PEReturnState                      call    cs:__imp_PsGetCurrentProcessId
PAGE:000000000001B507        I_PEUpdateHashCache                      call    cs:__imp_PsGetCurrentProcessId
.idata:0000000000003050                              extrn __imp_PsGetCurrentProcess:qword
.idata:0000000000003090                              extrn __imp_PsGetCurrentProcessId:qword


//win10 windbg
CI!CipInitialize:
fffff804`6dab68f4 48895c2408      mov   qword ptr ,rbx
fffff804`6dab68f9 48896c2410      mov   qword ptr ,rbp
fffff804`6dab68fe 4889742418      mov   qword ptr ,rsi
fffff804`6dab6903 57            push    rdi
fffff804`6dab6904 4154            push    r12
fffff804`6dab6906 4156            push    r14
fffff804`6dab6908 4883ec40      sub   rsp,40h
fffff804`6dab690c 498be9          mov   rbp,r9
fffff804`6dab690f 890dfb63ffff    mov   dword ptr ,ecx
fffff804`6dab6915 498bf8          mov   rdi,r8
fffff804`6dab6918 488bf2          mov   rsi,rdx
fffff804`6dab691b 448bf1          mov   r14d,ecx
fffff804`6dab691e ff15bcc7ffff    call    qword ptr

//win10 IDA
地址        Function        指令
PAGE:000000000002691E        CipInitialize                      call    cs:__imp_PsGetCurrentProcess
PAGE:0000000000034EC8        CipValidateDataMappedFileWithContext                      call    cs:__imp_PsGetCurrentProcess
PAGE:000000000003EA60        CiSetUnlockInformation                      call    cs:__imp_PsGetCurrentProcess
PAGE:000000000004E494        PEReturnState                      call    cs:__imp_PsGetCurrentProcessId
PAGE:000000000005069A        I_PEUpdateHashCache                      call    cs:__imp_PsGetCurrentProcessId
.idata:00000000000230C0                __imp_PsGetCurrentProcessId dq ?      ; DATA XREF: PEReturnState+64↓r
.idata:00000000000230E0                ; __int64 (*PsGetCurrentProcess)(void)

通过汇编代码可以发现g_CiOptions的后面100%会调用PsGetCurrentProcess函数
于是通过IDA搜索PsGetCurrentProcess,发现最先调用PsGetCurrentProcess的函数就是CipInitialize
于是写了以下代码来定位g_CiOptions的地址,然后修改g_CiOptions地址的值实现关闭DSE,可以同时在Win7~Win10使用

核心代码:
**** Hidden Message *****

Tesla.Angela 发表于 2019-1-2 01:14:51

楼主厉害,C语言的代码写出易语言的效果。。。哈哈。。。

z1900 发表于 2019-1-4 12:53:09

xuexixuexi

qq892640791 发表于 2019-1-5 09:31:30

厉害,比静态重启过签名验证好多了,就是不知道稳定不稳定

sijin 发表于 2019-1-7 22:45:17

学习了,动手看看取

284406022 发表于 2019-1-7 22:59:32

来看看是不是真的

284406022 发表于 2019-1-7 23:07:32

楼主 ci基址 是怎么得到的?不是说无硬编码吗0x15ff和0x0d89 算吗?

c9080 发表于 2019-1-8 23:36:55

膜拜学习

Peter_king55 发表于 2019-1-9 00:56:07

感谢无私的分享!!

CleanLove 发表于 2019-1-9 10:19:17

谢谢分享,学习一波

neticafe 发表于 2019-1-9 19:01:16

谢谢分享,学习一波

neticafe 发表于 2019-1-9 19:02:25

楼主这个是E语言的风格啊.我喜欢.哈哈.

wrsharp 发表于 2019-1-11 09:55:36

看看楼主的操作

mmlai8 发表于 2019-1-12 06:48:53

谢谢分享,学习一波

ckernel 发表于 2019-1-13 20:33:21

谢谢分享,学习学习。

forjzshy 发表于 2019-1-14 02:14:05

牛逼,感谢楼主分享

软绵绵 发表于 2019-1-14 21:26:59

感谢分享好东西

^_^ 发表于 2019-1-15 17:46:22

什么易语言代码 瞧瞧

zoandcom 发表于 2019-1-16 14:21:29

学习学习

zoandcom 发表于 2019-1-16 14:22:56

这是C么,哈哈,易语言即视感~

633600 发表于 2019-1-19 14:15:00

谢谢分享膜拜

lawrence 发表于 2019-1-21 11:55:32

非常感谢楼主的分享,学到了新的知识

lucious 发表于 2019-1-21 21:22:28

牛逼,逐渐易语言化

zhuxinlang 发表于 2019-1-27 13:51:40

看看无硬怎么实现

黄枫叶 发表于 2019-2-6 21:09:27


xuexixuexi

heshibin 发表于 2019-2-15 15:18:00

heshibin 发表于 2019-2-15 15:36:50

xywork 发表于 2019-2-16 21:17:14

来看看是不是真的

CNLouisLiu 发表于 2019-2-18 00:52:38

膜拜学习一波

这名字帅 发表于 2019-2-25 11:40:16

感谢分享,学习一下

eroy 发表于 2019-3-17 15:57:07

谢谢 学习中!

谁杀了我的牛 发表于 2019-3-24 21:01:02

不错··看看代码咋样的·
页: [1] 2 3 4
查看完整版本: 无硬编码动态关闭驱动签名强制(DSE),支持Win7~Win10