首页
社区
课程
招聘
[求助]关于windows8数字签名修改
发表于: 2013-7-9 12:48 13753

[求助]关于windows8数字签名修改

2013-7-9 12:48
13753
大家好
前段时间我购买了一台surface rt,安装的是windows 8 arm版本系统windows rt.这个系统只能运行商店里的程序,无法运行传统的win32程序,后来经过研究,一个叫clrokr的人指出,在windows 8上,系统会检查所有可执行镜像的数字签名:Unsigned(0), Authenticode(4), Microsoft(8), Windows(12)。在windows rt上面默认是8,也就是说只能运行微软签名的程序,而在x86上是0,就是可以运行全部程序。这个数字是硬编码在ci.dll里面,后来clrokr通过在内存中修改g_ciOptions这个值,成功在windows rt上运行第三方程序。这个方法其实跟在内存中修改64位驱动签名加载类似。

现在我有这么一个想法,以前在64位win7上出过一个内核patch,通过patch过的内核启动就可以加载64位的驱动,而不必设置bcd启动测试模式。现在有没有高手能帮忙修改一下内核,使x86的windows8只能运行微软签名的程序,即把g_ciOptions这个值改成8,这样就可以启动到一个只能运行微软程序的特殊“安全模式”用来杀毒或者日常使用而不必担心恶意程序破坏。事实上,windows8内置的applocker可以达到类似效果,但没有以上方法可靠。更进一步,可以改造这个内置的功能,使其只能运行可信赖签名的程序,变成一个可靠的程序防火墙

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 480
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习下,谢谢楼主分享
2013-7-9 15:55
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
先改bootmgr, 再winload.exe, 再ntoskrnl.exe.
2013-7-18 13:27
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
如果你的系統是efi啓動的話,得先看看 EFI裏有沒關掉security boot的選項。
2013-7-18 13:29
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个没什么意义,X64的DSE都被过得一塌糊涂了,更别说很多安全特性都达不到的X86了。
2013-7-18 22:28
0
雪    币: 222
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
太难了,这几个环节都有相互检查的代码。貌似新的bootmgr还加密了。还是直接改内存方便
2013-7-26 15:37
0
雪    币: 222
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个真没意义?系统限制只能运行微软签名的程序,恶意代码根本无法执行。反过来说,假如现在有一个lockdown的系统,不能运行第三方代码,你有何办法突破?如果你可以,我可以把我的surface rt送给你
2013-7-26 15:41
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
8
拆开后,把disk拔下来,接到另一台机器上改完,再插回去。
2013-7-26 16:03
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
太简单了,VB脚本啊。。。随便找个溢出漏洞啊。。你的surface不够,你估计得搞一堆才够了。。。你以为surface是咋被jail break的
2013-7-26 21:08
0
雪    币: 222
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
surface被jailbreak是因为用了微软的调试器,而且必须是人为主动去使用,正常系统会留下这个接口吗?你说你能用一个脚本修改一个内核态内存,你把这个脚本写出来,我立马把surface给你
2013-7-26 23:35
0
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
搞笑,为什么要修改内核内存,你不是要防病毒吗?

还有,没人稀罕你那死难用的surface
2013-7-27 08:45
0
雪    币: 222
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
为什么要修改内核内存
2013-7-27 10:56
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
bootmgr里面包含一个bootmgr.exe,用 xpress_huff 压缩的。提取,去掉对winload.EXE的校验,改好完放回。
然后去掉winload.exe,ntoskernel.exeDe校验。 这三个文件的校验代码很相似的。

去校验的同时,可以顺便做:
1. 去掉用户态dll数字签名
2. 去掉试用版系统的时间限制
3. 去掉32位系统的可用内存限制

以上在win7,win8下测试OK。

通过加载驱动来patch内核的做法可能可以,没试过,不过,加载时机可能太晚,导致非法模块早于我们的驱动被加载。
2013-8-8 11:17
0
雪    币: 222
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢回复,回答的非常详细了。前段时间自己尝试过,鉴于自己能力有限,放弃了。
希望这个想法能被一些安全相关软件采纳,通过优先加载驱动修改内核的方法,启动到一种“杀毒模式”
当然,patch文件的方法只能私下使用,不可能被被正规软件使用。
2013-8-8 13:01
0
游客
登录 | 注册 方可回帖
返回
//