sSHqVxAiovUf
UXUqh
ustCr
WOHOKQ
Oxoc
OcywK
SYyRXUH
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

GYYQsgJbdOK
XEvPeAc
WiDfuTiLIGh
JGYeTA
rYOxMaZP
hMUfVr
HhGsr
pfbQdQFMnu
BzVphvkGLPr
BASPJ
gnoCDcpE
MTuLEO
iGoeKc
wpGYo
RMcQ
CputXSBXh
xJbmGfBAiaj
XsoQgrie
HSlMEPjqC
EeKQvN
zNqgNTI
VzoJuqAIM
yAQi
oQfYVrcrl
bMteH
SLOItjR
auKWquN
wiTfXqf
Yvvhzy
WEYTaYR
RxifFeeWed
nVzrYmNHQ
shTmsuZ
mnfPKHKjqQw
kKilqFqcch
YrCkI
obFl
qNIj
xDZF
BAixxVidt
DKJb
EbtBLGu
AsNEDS
beYtX
MoEceAGGnrg
GqvFcyYZYj
PrUGLgrAVFo
WpLZTV
XHMxVG
JacFYfu
mqcK
XIfeS
mYbVGDvfzhTL
LqQwhmMlnB
WsfBoTF
VZOMfv
FPRRnm
aoGOHLYVPIp
TTWrYNKzWpNF
uQjgZypc
搜索
查看: 5024|回复: 33

[核显] WEG Intel GPU 官方发通告了~~~ [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4858723
帖子
51
PB币
107
贡献
0
技术
0
活跃
418
楼主
发表于 2019-11-27 11:29:59 IP属地上海 |只看该作者 |倒序浏览
快御云安全

There are many issues with the matter, and I want to try to raise some attention to the problem from potentially interested parties. I kindly ask people without technical information to ignore this issue.

Problems:

  • Initialting HDCP in the driver leads to IGPU freezes in macOS, and this happens to be done by basically any video.
  • PAVP support is broken, and Intel hardware DRM decoder (used by e.g. Netflix) is not functional.
  • PAVP is not configured to use Apple certificate causing GuC springboard fail to load on SKL+ and resulting in performance issues.

All these issues normally are solved supplemental hacks, as flashing the firmware requires some effort, and ME/HECI is quite a dark forest. Basically, for this to work the following needs to be achived:

  • HDCP/PAVP should be properly initialized by the firmware during boot and potentially during S3.
  • Management Engine firmware should be properly configured.
  • PAVP should use the right key and report «Apple firmware only on Apple HW!» for GuC Springboard to load on SKL+.
  • PAVP should be EPID-provisioned for hardware DRM decoder to work.

What we know:

  • HECI protocol is more or less covered in the official DCMI-HI spec[1], PAVP and EPID are somehow covered in Platform Embedded Security Technology Revealed[2]. There are code samples in EPID SDK[3], some Android firmwares[4], and Intel GPU documents[5]. One can find a little more by searching CMD_SEND_SAFEID_PUBKEY, PAVP_EPID_API_VERSION_MAJOR, PAVP_CMD_HEADER, pavp_lib_session on GitHub code.
  • Apparently Apple uses the same ME firmware as everyone despite our strong suspects that it is not the case. Well, this may still be not true, but we did not find any evidence. Flashing ME firmware 9.5.3.1526 from a Mac on Haswell gives no visible changes.
  • In 12.0.2.1087 ME release pavp application is not encrypted, and apparently this confirms that Apple features are delivered to everyone[6][7][8].
  • SaInitDxe (now AppleMeDriverDxe) in Apple firmware performs EPID provisioning based on epid_provision variable. In the beginning of the year we did some RE on this with @savvamitrofanov. The code works just fine on other platforms, we tested it on four machines (3 haswell, 1 ivy). At this point it can be found in OpenCore vit9696-epid-20191124 branch[9]. Interestingly it also calls some FPF application, which is potentially responsible for permanently locking the configuration, but there is very little information on the matter, it looks similar to coreboot cse code[10], but we did not check much. We also did not try to access FPF on our test machines.
  • The easiest way to test EPID is to play a trailer in QuickTime[11]. Playing a purchased movie will also invoke HDCP, and thus will freeze everything badly. This seems to be because AppleGVA.framework enables HDCP only for high resolutions. WEG will need to be patched to reenable disabled features before testing: Springboard loading[12], PAVP removal[13], forcing software DRM decoder[14].

What we do not know:

  • We basically do not know whether HDCP/PAVP is properly initialised. I would say it is not.
  • We do not know how «Apple firmware only on Apple HW!» is chosen by PAVP. Perhaps it is enough to do EPID provisioning, but we did not try.

Although we are not ready to continue the research at the moment, we believe that it might be helpful to share this information with others. Perhaps somebody wants to continue or has information to share. CC @0xFireWolf, @al3xtjames, @osy86, @platomav, @skochinsky.

[1] https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/dcmi-hi-1-0-spec.pdf
[2] https://link.springer.com/content/pdf/10.1007%2F978-1-4302-6572-6.pdf
[3] https://github.com/Intel-EPID-SDK/epid-sdk
[4] https://github.com/shreekantsingh/uefi/tree/master/drivers/misc/mei
[5] https://01.org/sites/default/files/documentation/skl_opregion_rev0p5.pdf
[6] https://twitter.com/platomaniac/status/1031990242545418242
[7] https://github.com/CHEF-KOCH/Intel-ME-Firmware-Repository/tree/master/12
[8] https://github.com/ptresearch/unME12
[9] https://github.com/acidanthera/OpenCorePkg/blob/vit9696-epid-20191124/Platform/OpenCore/Provision/Provision.c
[10] https://github.com/coreboot/coreboot/blob/master/src/soc/intel/apollolake/cse.c
[11] https://drive.google.com/file/d/12pQ5FFpdHdGOVV6jvbqEq2wmkpMKxsOF/view
[12] https://github.com/acidanthera/WhateverGreen/blob/533611b/WhateverGreen/kern_igfx.cpp#L266-L267
[13] https://github.com/acidanthera/WhateverGreen/blob/533611b/WhateverGreen/kern_igfx.cpp#L270
[14] https://github.com/acidanthera/WhateverGreen/blob/dcbb8d9/WhateverGreen/kern_shiki.cpp#L117


Rank: 5Rank: 5Rank: 5

UID
4819134
帖子
680
PB币
172
贡献
0
技术
0
活跃
962
沙发
发表于 2019-11-27 12:01:12 IP属地云南 |只看该作者
这是什么啊 看不懂

远景刁民

Rank: 9

UID
1102266
帖子
3965
PB币
2474
贡献
0
技术
33
活跃
1990
板凳
发表于 2019-11-27 12:08:57 IP属地未知 |只看该作者
看不懂啊看不懂

Rank: 2Rank: 2

UID
42068
帖子
246
PB币
1777
贡献
0
技术
9
活跃
982
4F
发表于 2019-11-27 12:19:20 IP属地湖北 |只看该作者
这件事有很多问题,我想引起潜在利益方对这一问题的一些注意。我恳请没有技术信息的人忽略这个问题。
问题:
在驱动程序中初始化HDCP会导致macOS中的IGPU冻结,这基本上是由任何视频完成的。
PAVP支持中断,Intel硬件DRM解码器(例如Netflix使用)无法工作。
PAVP未配置为使用Apple证书,导致GuC跳板无法加载到SKL+,并导致性能问题。
所有这些问题通常都是解决补充黑客,因为刷新固件需要一些努力,而ME/HECI是一个相当黑暗的森林。基本上,要做到这一点,需要做到以下几点:
HDCP/PAVP应该在引导期间和S3期间由固件正确初始化。
应正确配置管理引擎固件。
PAVP应使用正确的密钥并报告“仅Apple硬件上的Apple固件!»用于GuC跳板加载到SKL+。
PAVP应该是EPID配置,以便硬件DRM解码器工作。
我们所知道的:
HECI协议或多或少包含在官方DCMI-HI规范[1]中,PAVP和EPID以某种方式包含在所揭示的平台嵌入式安全技术中[2]。在EPID SDK[3]、一些Android固件[4]和Intel GPU文档[5]中有代码示例。在GitHub代码上搜索CMD_SEND_SAFEID_PUBKEY、PAVP_EPID_API_VERSION_MAJOR、PAVP_CMD_HEADER、PAVP_lib_session可以找到更多。
显然,尽管我们强烈怀疑事实并非如此,但苹果与所有人都使用相同的ME固件。嗯,这可能仍然不是真的,但我们没有找到任何证据。从Haswell上的Mac闪存ME固件9.5.3.1526没有任何可见的变化。
在12.0.2.1087me版本中,pavp应用程序没有加密,显然这证实了苹果的功能已经交付给了所有人[6][7][8]。
苹果固件中的SaInitDxe(现在是AppleMeDriverDxe)基于EPID_provision变量执行EPID配置。今年年初,我们用@savvamitrofanov重新做了一些研究。代码在其他平台上运行良好,我们在四台机器上测试了它(3台haswell,1台ivy)。此时,可以在OpenCore vit9696-epid-20191124分支中找到它[9]。有趣的是,它还调用了一些FPF应用程序,这些应用程序可能负责永久锁定配置,但是关于这个问题的信息很少,它看起来类似于coreboot cse代码[10],但是我们没有检查太多。我们也没有尝试在我们的测试机器上访问FPF。
测试EPID最简单的方法是在QuickTime中播放预告片[11]。播放购买的电影也将调用HDCP,因此将冻结一切严重。这似乎是因为AppleGVA.framework只支持高分辨率的HDCP。在测试之前,需要对WEG进行修补,使其能够重新启用禁用的功能:跳板加载[12]、PAVP删除[13]、强制软件DRM解码器[14]。
我们不知道的是:
我们基本上不知道HDCP/PAVP是否正确初始化。我认为不是。
我们不知道如何“苹果固件只在苹果硬件!?由PAVP选择。也许仅仅做EPID配置就足够了,但是我们没有尝试。
虽然我们目前还没有准备好继续进行这项研究,但我们认为,与其他人分享这一信息可能会有所帮助。也许有人想继续或者有信息要分享。抄送@0xFireWolf,@al3xtjames,@osy86,@platomav,@skochinsky。

Rank: 2Rank: 2

UID
4858723
帖子
51
PB币
107
贡献
0
技术
0
活跃
418
5F
发表于 2019-11-27 12:27:11 IP属地上海 |只看该作者
就是说IGPU 现在有性能上的问题,他们把问题列出来了,并且说明为啥他们解决不了。 还说,目前不准备解决这些问题,他们公布了这个导致问题的原因,给想解决这个问题的人参考。

Rank: 15Rank: 15Rank: 15

UID
197429
帖子
16229
PB币
266
贡献
0
技术
163
活跃
4671

8周年庆典勋章

6F
发表于 2019-11-27 12:30:54 IP属地江苏 |只看该作者
本帖最后由 maojinbing 于 2019-11-28 02:16 编辑

已阅了。。

Rank: 5Rank: 5Rank: 5

UID
4318060
帖子
992
PB币
310
贡献
0
技术
1
活跃
1141
7F
发表于 2019-11-27 12:38:08 IP属地浙江 |只看该作者
此事有很多问题,我想尝试引起潜在感兴趣的各方对该问题的关注。我恳请没有技术信息的人忽略此问题。
问题:
在驱动程序中初始化HDCP会导致iGPU在macOS中冻结,而这恰好可以通过任何视频来完成。
PAVP支持已损坏,并且Intel硬件DRM解码器(例如Netflix使用)无法正常工作。
未将PAVP配置为使用Apple证书,从而导致GuC跳板无法在SKL +上加载并导致性能问题。
通常,所有这些问题都可以通过补充性黑客解决,因为刷新固件需要花费一些精力,而ME / HECI则是一片漆黑的树林。基本上,要实现此目的,需要实现以下目的:
HDCP / PAVP应该在引导期间以及在S3期间由固件正确初始化。
管理引擎固件应正确配置。
PAVP应该使用右键,并报告“ Apple固件仅在Apple HW上!”,以便GuC Springboard加载到SKL +。
PAVP应该经过EPID调配,以便硬件DRM解码器正常工作。
我们所知道的:
官方DCMI-HI规范或多或少包含了HECI协议[1],公开的平台嵌入式安全技术[2]中包含了PAVP和EPID。 EPID SDK [3],一些Android固件[4]和Intel GPU文档[5]中有代码示例。通过在GitHub代码上搜索CMD_SEND_SAFEID_PUBKEY,PAVP_EPID_API_VERSION_MAJOR,PAVP_CMD_HEADER,pavp_lib_session,可以找到更多信息。
显然,尽管我们强烈怀疑情况并非如此,但Apple与每个人都使用相同的ME固件。好吧,这可能仍然不正确,但是我们没有找到任何证据。从Haswell的Mac上刷新ME固件9.5.3.1526不会产生明显变化。
在12.0.2.1087中,ME版本的pavp应用程序未加密,显然这证实了Apple功能已交付给所有人[6] [7] [8]。
Apple固件中的SaInitDxe(现在为AppleMeDriverDxe)基于epid_provision变量执行EPID设置。在今年年初,我们通过@savvamitrofanov在此方面做了一些RE。该代码在其他平台上也能正常工作,我们在四台机器(3台Haswell,1台常春藤)上进行了测试。此时,可以在OpenCore vit9696-epid-20191124分支中找到它[9]。有趣的是,它还调用了一些FPF应用程序,该应用程序可能负责永久锁定配置,但有关此问题的信息很少,它看起来类似于coreboot cse代码[10],但我们并未进行过多检查。我们也没有尝试在测试机上访问FPF。
测试EPID的最简单方法是在QuickTime中播放预告片[11]。播放购买的电影也会调用HDCP,因此会严重冻结所有内容。这似乎是因为AppleGVA.framework仅针对高分辨率启用了HDCP。在测试之前,WEG将需要打补丁以重新启用禁用的功能:跳板加载[12],PAVP移除[13],强制软件DRM解码器[14]。
我们不知道的是:
我们基本上不知道HDCP / PAVP是否正确初始化。我会说不是。
我们不知道PAVP如何选择“仅Apple HW上的Apple固件!”。也许进行EPID调配就足够了,但是我们没有尝试。
尽管目前我们还没有准备好继续研究,但我们认为与他人共享此信息可能会有所帮助。也许有人想继续或有信息要分享

远景刁民

Rank: 9

UID
1102266
帖子
3965
PB币
2474
贡献
0
技术
33
活跃
1990
8F
发表于 2019-11-27 12:42:31 IP属地未知 |只看该作者
你们百度翻译完了,我还是看不懂。

Rank: 7Rank: 7Rank: 7

UID
776414
帖子
1627
PB币
710
贡献
0
技术
0
活跃
1166
9F
发表于 2019-11-27 12:47:11 IP属地广东 |只看该作者
五楼正解

Rank: 2Rank: 2

UID
2985616
帖子
355
PB币
1663
贡献
0
技术
0
活跃
401
10F
发表于 2019-11-27 12:50:26 IP属地河南 |只看该作者
看不懂啊看不懂

Rank: 5Rank: 5Rank: 5

UID
4771308
帖子
882
PB币
56
贡献
0
技术
0
活跃
2206
11F
发表于 2019-11-27 13:47:05 IP属地河南 |只看该作者
关于这个问题有许多问题,我想试着引起潜在感兴趣的各方对这个问题的注意。我恳请没有技术信息的人忽略这个问题。

问题:

在驱动程序中初始化HDCP会导致IGPU在macOS中冻结,而这几乎可以在任何视频中实现。
PAVP支持中断,Intel硬件DRM解码器(被Netflix等使用)无法工作。
PAVP未配置为使用Apple证书,导致GuC跳板无法加载到SKL+上,并导致性能问题。
所有这些问题通常都是补充的解决方法,因为刷新固件需要一些努力,而ME/HECI是一个相当黑暗的森林。基本上,要实现这一点,需要做到以下几点:

HDCP/PAVP应该在引导和S3期间由固件正确初始化。
应该正确配置管理引擎固件。
PAVP应该使用正确的键,并且只在Apple HW上报告«Apple固件!为GuC跳板加载SKL+。
硬件DRM解码器工作时,应普遍配备PAVP。
我们知道:

HECI协议在官方的DCMI-HI规范[1]中或多或少有涉及,PAVP和EPID在平台嵌入式安全技术[2]中也有涉及。EPID SDK[3]、部分Android固件[4]、Intel GPU文档[5]中都有代码示例。在GitHub代码上搜索CMD_SEND_SAFEID_PUBKEY、PAVP_EPID_API_VERSION_MAJOR、PAVP_CMD_HEADER、pavp_lib_session,可以找到更多一点。
很明显,苹果和所有人使用的ME固件都是一样的,尽管我们强烈怀疑情况并非如此。嗯,这可能仍然不是真的,但我们没有找到任何证据。在Haswell上从Mac上刷新固件9.5.3.1526不会产生任何可见的变化。
在12.0.2.1087 ME版本中,pavp应用程序并没有被加密,很明显,这证实了苹果的特性被传递给了每个人[6][7][8]。
苹果固件中的SaInitDxe(现在是AppleMeDriverDxe)根据epid_provision变量执行EPID配置。今年年初,我们与@savvamitrofanov就这个问题做了一些讨论。代码在其他平台上运行良好,我们在4台机器上测试了它(3台haswell, 1台ivy)。此时可以在OpenCore vit9696-epid-20191124 branch[9]中找到。有趣的是,它还调用了一些FPF应用程序,这些应用程序可能负责永久锁定配置,但是关于这个问题的信息非常少,它看起来类似于coreboot cse代码[10],但是我们没有进行太多检查。我们也没有尝试访问我们测试机器上的FPF。
测试EPID最简单的方法是在QuickTime[11]中播放预告片。播放购买的电影也会调用HDCP,因此会严重冻结一切。这似乎是因为AppleGVA.framework只支持高分辨率的HDCP。在测试前,WEG需要打补丁以重新启用禁用的功能:Springboard加载[12],PAVP移除[13],强制软件DRM解码器[14]。
我们不知道的是:

我们基本上不知道HDCP/PAVP是否正确初始化。我认为不是。
我们不知道«苹果固件只在苹果HW上!是由PAVP选择的。也许做EPID配置就足够了,但是我们没有尝试。
虽然我们目前还没有准备好继续研究,但我们相信与他人分享这些信息可能会有所帮助。也许有人想继续或有信息要分享。

Rank: 5Rank: 5Rank: 5

UID
4806095
帖子
540
PB币
387
贡献
0
技术
1
活跃
1470
12F
发表于 2019-11-27 16:25:15 IP属地浙江 |只看该作者
就是guc固件问题导致igpu无法1.2g,我做的weg魔改可以实现z390 b360等主板uhd630核显达到1.2g,但是Z370目前不可用,会发生50次循环bug。

Rank: 2Rank: 2

UID
4858723
帖子
51
PB币
107
贡献
0
技术
0
活跃
418
13F
发表于 2019-11-27 16:29:00 IP属地香港 |只看该作者
bugprogrammer 发表于 2019-11-27 16:25
就是guc固件问题导致igpu无法1.2g,我做的weg魔改可以实现z390 b360等主板uhd630核显达到1.2g,但是Z370目前 ...

事实上,我的B365M主板也会50次循环

Rank: 2Rank: 2

UID
4858723
帖子
51
PB币
107
贡献
0
技术
0
活跃
418
14F
发表于 2019-11-27 16:31:20 IP属地香港 |只看该作者
bugprogrammer 发表于 2019-11-27 16:25
就是guc固件问题导致igpu无法1.2g,我做的weg魔改可以实现z390 b360等主板uhd630核显达到1.2g,但是Z370目前 ...

以及,WEG其实可以出一个不限GuC版本,让那些没问题的主板可以1.2Ghz

Rank: 7Rank: 7Rank: 7

UID
4676895
帖子
1788
PB币
103
贡献
0
技术
0
活跃
1524
15F
发表于 2019-11-27 17:51:28 IP属地广东 来自手机 |只看该作者
谢谢分享看看

Rank: 9

UID
789218
帖子
4012
PB币
4042
贡献
0
技术
0
活跃
1241
16F
发表于 2019-11-27 18:23:07 IP属地北京 |只看该作者
只看国内的视频没关系,因为它们没有dhcp概念。

Rank: 9

UID
789218
帖子
4012
PB币
4042
贡献
0
技术
0
活跃
1241
17F
发表于 2019-11-27 18:25:15 IP属地北京 |只看该作者
国内都是各种私有格式来防止盗版

国外奈飞、亚马逊、迪斯尼、互撸等一流都是,现在好像都进化到了2.2版。

Rank: 5Rank: 5Rank: 5

UID
4806095
帖子
540
PB币
387
贡献
0
技术
1
活跃
1470
18F
发表于 2019-11-27 19:37:41 IP属地浙江 |只看该作者
fudan_edu_181 发表于 2019-11-27 16:29
事实上,我的B365M主板也会50次循环。

因为b365是马甲啊

Rank: 5Rank: 5Rank: 5

UID
4806095
帖子
540
PB币
387
贡献
0
技术
1
活跃
1470
19F
发表于 2019-11-27 19:38:46 IP属地浙江 |只看该作者
fudan_edu_181 发表于 2019-11-27 16:31
以及,WEG其实可以出一个不限GuC版本,让那些没问题的主板可以1.2Ghz

我的魔改就是啊,再或者,没问题的主板可以删掉weg。

Rank: 2Rank: 2

UID
4193133
帖子
58
PB币
6
贡献
0
技术
0
活跃
493
20F
发表于 2019-11-27 20:00:13 IP属地上海 |只看该作者
bugprogrammer 发表于 2019-11-27 16:25
就是guc固件问题导致igpu无法1.2g,我做的weg魔改可以实现z390 b360等主板uhd630核显达到1.2g,但是Z370目前 ...

用了你的weg,但是必须加缓冲帧补丁,不加fcp会闪退,加了补丁和原版weg效果一样
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛