请选择 进入手机版 | 继续访问电脑版
 找回密码
注册
查看: 2582|回复: 122

真正的Intel 8代 Kabylake-R显卡Win7破解方法 视频可3D功能正常

  [复制链接]

该用户从未签到

发表于 2018-10-26 20:49:03 | 显示全部楼层 |阅读模式
本帖最后由 h_f22 于 2018-10-29 17:46 编辑

应求直接发布修改好的驱动,基于21.20.16.4839,只添加了UHD 620的支持,需要别的请自行修改。其实不太喜欢直接发binary,之后被人改来改去,麻烦的很。

链接:

游客,如果您要查看本帖隐藏内容请回复


下载的请认准这个MD5:b5bf707e5bfb24cbc7f5884f9730290e

最近买了新本子,Dell 7472,CPU 8代I7 8550U,MX150独显。之前就听说Intel新CPU对windows 7支持不好,以为这么久了应该会有相关破解,但是搜了一大圈发现,现有破解都不完美。基本上很难稳定使用,包括驱动总裁的版本,也一样的问题,视频播放不了。只好自己动手丰衣足食,折腾了好久终于弄得差不多了,自用基本完美,参见下面的视频:
http://v.youku.com/v_show/id_XMz ... j.8428770.3416059.1

破解参考了国外一些论坛的inf修改方法,加上自己解决了播放视频的问题,基本上就完美了。

之前在国外的论坛上也发表了具体的破解方法,根本文内容一样,今天发在这里,希望驱动总裁的开发人员能够多学习,造福广大同胞,不要搞些不完美的东西就发布了。顺便diss Intel和Microsoft,这么抱团混蛋下去吃枣药丸。

首先第一步是选好驱动,这一步非常重要,总的基本原则有三条,第一,驱动支持WDDM 1.1,即windows 7的显示驱动模型。第二,驱动核心dll和sys文件的import表内包含的函数和dll在windows7内可用或者可替代。第三,最好能够支持新的硬件,Kabylake-R,和coffee lake。但是这一点反倒没那么重要。

这里需要大概说下Intel Graphics的驱动框架,基本上intel的驱动又几大部分组成,第一部分是kernel内驱动,miniport驱动,文件对应igdkmd64.sys。第二部分和核心用户态驱动,对应文件igdumdim32.dll,igdumdim64.dll,igd10iumd32.dll,igd10iumd64.dll等等。第三部分是其他接口比如OpenGL,OpenCL,Video等等的支持库文件。

这里我们选择一款能够比较容易达到我们的目的的驱动,就要看这些文件在Win7里面的情况。首先内核部分的驱动,这部分功能虽然简单,但是决定了驱动是否能在对应的操作系统正常加载,这部分不行就会在设备管理器里面看到黄色的叹号了。我们要在Windows 7下使用驱动,那么我们的驱动版本选择就要选择一款带有Windows 7支持的驱动,简单说那些纯粹只支持Windows 10的驱动能够好用的概率就不大了。

因为Intel的驱动虽然可能同时支持Windows 7和其他操作系统,但是相应的sys文件和dll文件并不是多份,所以一款包含了windows 7的驱动保证了我们的内核驱动可以正常加载,同时用户态驱动的dll的import函数应该也是可以支持windows 7的。

国外的网友尝试使用支持windows 7的内核驱动混合支持新CPU的用户态驱动,这样做有可能是可行的,但是功能上和稳定性上都达不到完美(可以播放视频,但是3D功能缺失,而且频繁蓝屏)。因为毕竟系统架构差异较大,不同版本的文件能够一直正常工作的概率并不大。

我也试过混合驱动,包括将win10驱动fix import表之后加载,但是效果均不理想,这里面主要是WDDM框架的问题,因为Intel的先看架构是个轻内核态功能,重用户态功能的驱动,他的内核态驱动功能很小,主要支持基本都在用户态的dll里面,所以即使Win10的DLL可以fix了在win7下加载,但是因为DLL内部对于WDDM的支持版本有区别,驱动仍然不能正常使用。只有部分少量的驱动可以同时支持win7和win10,且不稳定。

所以最终,我还是选择了一款支持Windows 7,但是不支持新CPU的驱动,但是时间上比较新,属于在新CPU发布之后。因为要保证稳定性和功能可用的话,要先保证windows 7下驱动可以加载,而新老硬件架构的更新是幅度是相当小的,尤其是类似从Kabylake到Kabylake-R这种更新,硬件几乎没有区别,所以我们保证一款能够支持7th CPU且支持Windows 7的驱动是最佳选择。但是这种选择带来的问题就是对于更新的Coffelake的支持就比较难了,当然我没有测试过,可能也是可以支持的。

这里我选择的版本是21.20.16.4839,这个系列驱动的最新版本是21.20.16.4860,在Intel官方网站上可以下载到,这两版驱动的区别并不大,不过4839进入了windows升级的catalog,所以应该更稳定。两款我都试过,破解都可以完美运行。

这个系列的驱动,支持windows 7,但是只包含6代CPU,在windows 8-windows10上支持7代CPU,不支持8代CPU,首先我们先去下载一个回来:

https://www.station-drivers.com/index.php?option=com_remository&Itemid=352&func=fileinfo&id=3256&lang=en

之后,我们要进行inf文件的修改,这部分在网上有很多类似的教程,核心的步骤就两部:

第一步,确定硬件ID,到控制面板 - 设备管理器 - 找到intel集成显卡 - 右键单击属性 - 详细信息选项卡 - 描述下拉菜单选择 硬件ID 就能看到了,比如 UHD620 硬件ID是: PCI\VEN_8086&DEV_5917&CC_0300。
第二步,将这个硬件ID加入到inf文件中windows 7安装部分,  我们解压下载好的驱动,找到Graphics文件夹下的igdlh64.inf文件,文本编辑器打开。找到

;=====================================================================
;    Windows 7 Install - DT Only
;=====================================================================
[IntelGfx.NTamd64.6.1]
; SKL HW
%iSKLULTGT1%         = iSKLD_w7, PCI\VEN_8086&DEV_1906
%iSKLULTGT2%         = iSKLD_w7, PCI\VEN_8086&DEV_1916


这里是win7驱动的设备安装描述段,%iSKLULTGT2%这部分是设备名称宏定义,用来代替设备名称,iSKLD_w7指的是具体的安装操作执行段,PCI\VEN_8086&DEV_1916这部分就是对应的硬件ID了。这里我们的需要做的就是起一个新的名字宏定义,然后使用Sakylake的win7安装操作(iSKLD_w7),安装我们的硬件ID,所以我们在和部分最后加上这样一行:

%iKBLULTGT2R% = iSKLD_w7, PCI\VEN_8086&DEV_5917

至于iSKLD_w7怎么执行的,我们到下面去找[iSKLD_w7]就知道了,这里可能有人问,我们不应该使用Kabylake的执行段吗?很可惜这个驱动里面kabylake的执行段都是给win8 和win10的,能用但是需要自己改造,而且最终其实跟SKLD的没有什么差别。比较有意思的就是关于iKLBD_w7段,这个段其实在Intel的官方驱动里面也曾经存在过,但是只有两款驱动,这两款驱动现在比较难找到了。这是唯一官方宣称能够支持Windows 7的7代CPU的Intel显卡两款驱动,所以实际上7代CPU并不需要破解,只要找到这两款驱动就可以了,有兴趣的可以自己去找:

[size=14.6667px]21.20.16.4508 (08/27/2016)
[size=14.6667px]21.20.16.4526 (09/23/2016)
[size=14.6667px]

[size=14.6667px]而这两款驱动实际上就是我们选择的驱动21.20.16.4839的非常早期版本。Kabylake是2016年Q3发布的,2017 1月份出货,所以会有这两款驱动。
[size=14.6667px]

[size=14.6667px]我们自己定义了一个新的名字宏%iKBLULTGT2R%,所以记得在文件最后部分,把UHD 620的名字加上:

iKBLULTGT1     =   "Intel(R) HD Graphics 610"
iKBLULTGT2     =   "Intel(R) HD Graphics 620"
iKBLULTGT2R     =   "Intel(R) UHD Graphics 620"
iKBLULTGT2F    =   "Intel(R) HD Graphics 620"
iKBLULTGT3E15  =   "Intel(R) Iris(TM) Plus Graphics 640"

[size=14.6667px]

修改好后保存,这时候你可以试一下这个驱动,这个驱动的3D功能部分是好使的,Aero是可以打开的。但是播放视频的时候有报错,任何播放器都会崩。

所以我们着手解决这个问题即可。报错位于igdumdim32.dll @0x59c4EA0C,正好位于用户态核心驱动的DLL里面,我们需要调试下看看发生了什么。随便选一个会crash的播放器,架上ollygdb之类的东西,随便什么,在LoadLibrarA下断点,打开个视频,看到igdumdim32.dll加载后,gdi32.dll也跟着加载,跟到播放器代码空间,此时需要保证igdumdim32.dll代码段已经加载。找到0x59c4EA0C这个地址,发现是在这么个函数里面:

59C4E948    8B87 0C010000   mov     eax, dword ptr ds:[edi+10C]
59C4E94E    53              push    ebx
59C4E94F    57              push    edi
59C4E950    FFD0            call    eax
59C4E952    8B8F 00010000   mov     ecx, dword ptr ds:[edi+100]
59C4E958    8BD8            mov     ebx, eax
59C4E95A    8D45 DC         lea     eax, dword ptr ss:[ebp-24]
59C4E95D    50              push    eax
59C4E95E    57              push    edi
59C4E95F    FFD1            call    ecx
59C4E961    8B56 10         mov     edx, dword ptr ds:[esi+10]
59C4E964    8B0A            mov     ecx, dword ptr ds:[edx]
59C4E966    F7C1 00002000   test    ecx, 200000
59C4E96C    74 0C           je      short 59C4E97A                   ; igdumdim.59C4E97A
59C4E96E    C746 18 2404655>mov     dword ptr ds:[esi+18], 5E650424
59C4E975    E9 84000000     jmp     59C4E9FE                         ; igdumdim.59C4E9FE
59C4E97A    F7C1 00000004   test    ecx, 4000000
59C4E980    74 09           je      short 59C4E98B                   ; igdumdim.59C4E98B
59C4E982    C746 18 5C04655>mov     dword ptr ds:[esi+18], 5E65045C
59C4E989    EB 73           jmp     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E98B    F7C1 00000020   test    ecx, 20000000
59C4E991    74 09           je      short 59C4E99C                   ; igdumdim.59C4E99C
59C4E993    C746 18 9404655>mov     dword ptr ds:[esi+18], 5E650494
59C4E99A    EB 62           jmp     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E99C    85C9            test    ecx, ecx
59C4E99E    79 09           jns     short 59C4E9A9                   ; igdumdim.59C4E9A9
59C4E9A0    C746 18 CC04655>mov     dword ptr ds:[esi+18], 5E6504CC
59C4E9A7    EB 55           jmp     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9A9    8B45 DC         mov     eax, dword ptr ss:[ebp-24]
59C4E9AC    83F8 15         cmp     eax, 15
59C4E9AF    74 1C           je      short 59C4E9CD                   ; igdumdim.59C4E9CD
59C4E9B1    83F8 16         cmp     eax, 16
59C4E9B4    74 17           je      short 59C4E9CD                   ; igdumdim.59C4E9CD
59C4E9B6    83F8 13         cmp     eax, 13
59C4E9B9    75 43           jnz     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9BB    F742 04 0000000>test    dword ptr ds:[edx+4], 2000000
59C4E9C2    75 A3           je     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9C4    C746 18 AC05655>mov     dword ptr ds:[esi+18], 5E6505AC
59C4E9CB    EB 31           jmp     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9CD    8B42 04         mov     eax, dword ptr ds:[edx+4]
59C4E9D0    A9 00004000     test    eax, 400000
59C4E9D5    74 09           je      short 59C4E9E0                   ; igdumdim.59C4E9E0
59C4E9D7    C746 18 3C05655>mov     dword ptr ds:[esi+18], 5E65053C
59C4E9DE    EB 1E           jmp     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9E0    A9 00008000     test    eax, 800000
59C4E9E5    74 09           je      short 59C4E9F0                   ; igdumdim.59C4E9F0
59C4E9E7    C746 18 0405655>mov     dword ptr ds:[esi+18], 5E650504
59C4E9EE    EB 0E           jmp     short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9F0    A9 00000001     test    eax, 1000000
59C4E9F5    74 07           je      short 59C4E9FE                   ; igdumdim.59C4E9FE
59C4E9F7    C746 18 7405655>mov     dword ptr ds:[esi+18], 5E650574
59C4E9FE    85DB            test    ebx, ebx
59C4EA00    74 0D           je      short 59C4EA0F                   ; igdumdim.59C4EA0F
59C4EA02    8B4B 04         mov     ecx, dword ptr ds:[ebx+4]
59C4EA05    85C9            test    ecx, ecx
59C4EA07    74 06           je      short 59C4EA0F                   ; igdumdim.59C4EA0F
59C4EA09    8B46 18         mov     eax, dword ptr ds:[esi+18]
59C4EA0C    8948 0C         mov     dword ptr ds:[eax+C], ecx         <============ 这里挂了
59C4EA0F    C746 1C 1800000>mov     dword ptr ds:[esi+1C], 18
59C4EA16    C746 20 4000000>mov     dword ptr ds:[esi+20], 40
59C4EA1D    C746 24 4000000>mov     dword ptr ds:[esi+24], 40
59C4EA24    C746 28 4000000>mov     dword ptr ds:[esi+28], 40
59C4EA2B    C746 2C 0400000>mov     dword ptr ds:[esi+2C], 4
59C4EA32    C746 30 1000000>mov     dword ptr ds:[esi+30], 10
59C4EA39    C746 34 1000000>mov     dword ptr ds:[esi+34], 10
59C4EA40    C746 38 0008000>mov     dword ptr ds:[esi+38], 800
59C4EA47    C746 3C 8000000>mov     dword ptr ds:[esi+3C], 80
59C4EA4E    C746 40 2000000>mov     dword ptr ds:[esi+40], 20
59C4EA55    C746 44 0008000>mov     dword ptr ds:[esi+44], 800
59C4EA5C    C746 48 2004000>mov     dword ptr ds:[esi+48], 420
59C4EA63    C746 4C 4004000>mov     dword ptr ds:[esi+4C], 440
59C4EA6A    C746 50 2000000>mov     dword ptr ds:[esi+50], 20
59C4EA71    C746 54 1000000>mov     dword ptr ds:[esi+54], 10
59C4EA78    56              push    esi
59C4EA79    C786 B8000000 3>mov     dword ptr ds:[esi+B8], 59C4D630
59C4EA83    C786 BC000000 1>mov     dword ptr ds:[esi+BC], 59C4E410
59C4EA8D    C786 C0000000 3>mov     dword ptr ds:[esi+C0], 59C4D830
59C4EA97    C786 C4000000 4>mov     dword ptr ds:[esi+C4], 59C4E440
59C4EAA1    C786 C8000000 A>mov     dword ptr ds:[esi+C8], 59D71FA0
59C4EAAB    C786 CC000000 1>mov     dword ptr ds:[esi+CC], 59C4DB10
59C4EAB5    C786 D4000000 8>mov     dword ptr ds:[esi+D4], 59C4E680
59C4EABF    C786 D8000000 1>mov     dword ptr ds:[esi+D8], 59C4DC10
59C4EAC9    C786 DC000000 8>mov     dword ptr ds:[esi+DC], 59C4E680
59C4EAD3    C786 E0000000 8>mov     dword ptr ds:[esi+E0], 59C4E880
59C4EADD    C786 E4000000 2>mov     dword ptr ds:[esi+E4], 59C4DD20
59C4EAE7    C786 EC000000 6>mov     dword ptr ds:[esi+EC], 59C4CE60
59C4EAF1    C786 F0000000 D>mov     dword ptr ds:[esi+F0], 59C4CED0
59C4EAFB    C786 F4000000 8>mov     dword ptr ds:[esi+F4], 59C4CC80
59C4EB05    C786 F8000000 F>mov     dword ptr ds:[esi+F8], 59C4E8F0
59C4EB0F    E8 7CF8FFFF     call    59C4E390                         ; igdumdim.59C4E390
59C4EB14    8B4D FC         mov     ecx, dword ptr ss:[ebp-4]
59C4EB17    5B              pop     ebx
59C4EB18    5F              pop     edi
59C4EB19    33CD            xor     ecx, ebp
59C4EB1B    5E              pop     esi
59C4EB1C    E8 7354EEFF     call    59B33F94                         ; igdumdim.59B33F94
59C4EB21    8BE5            mov     esp, ebp
59C4EB23    5D              pop     ebp
59C4EB24    C2 0400         retn    4


这个函数大意是通过 59C4E95F 这里的call读出来一个flag,然后根据这个flag上的掩码标记对59C4EB0F这个函数的参数进行配置。反复调试尝试前面解析flag的那些转跳组合,最后发现
59C4E991这里的je不要跳就可以了,所以改成nop即可。

之后rva转成文件偏移,修改dll即可。

这里给一个特征,方便大家修改,对于igdumdim32.dll,查找一下二进制:

83 F8 13 75 43 F7 42 04 00 00 00 02

后面的两个字节改为 90 90 即可

对于igdumdim64.dll,搜索:

01 76 17 83 F9 13 75 44 F7 42 04 00 00 00 02

后面两个字节也修改为 90 90 即可

修改好后保存,安装驱动即可。如果已经安装了之前的驱动,重启到安全模式下,igdumdim32.dll替换到windows/sysWow64下,igdumdim64.dll替换到windows/system32下即可。

需要注意的是,安装之前一定要先卸载独立显卡的驱动,安装好后再重新安装一遍独立显卡驱动。另外独立显卡驱动不推荐版本太新的。我的MX150用最新的总在桌面卡住,用397.64版非常完美。

评分

参与人数 7金钱 +28 贡献 +27 收起 理由
暴牙弟 + 1 + 1 能不能教我修改dll 我碰到麻烦了
666666 + 1 + 1 很给力!
m13229911627 + 1 + 1 厉害
fayiqi + 2 + 2 终于看到8代U完美win7核显的希望了
makoto + 1 请问LZ,集显装好后安装独显,资源管理器失.
享βiiiii木东 + 2 + 2 牛,驱动能分享出来吗?
Noime + 20 + 20 赞一个,扩大测试范围试试!

查看全部评分





上一篇:求助驱动 Intel(R) 82583V 现在直接检测不到
下一篇:跪求一个win10专业版永久激活的激活工具
  • TA的每日心情
    无聊
    1 小时前
  • 签到天数: 199 天

    [LV.7]常住居民III

    发表于 2018-10-30 05:54:19 | 显示全部楼层
    支持下,好好看下大神的文章
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-10 16:15
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-10-27 09:35:08 | 显示全部楼层
    牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛!
    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-11-24 01:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-10-27 11:15:20 | 显示全部楼层
    破解了DLL,厉害。按照你的方法,我改下DLL试试。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-11-24 01:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-10-27 12:23:23 | 显示全部楼层
    8700K
    Intel(R) UHD Graphics 630
    21.20.16.4860
    按照楼主的方法,破解两个DLL,翻车。
    关键性问题是 驱动安装之后还是感叹号,所以。。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-10-27 12:30:50 | 显示全部楼层
    这个方法只适用于安装正常,但播放报错,之前刚出的时候我就有研究过,我没有更改dll,我是更换了更高版本的DLL,也解决播放问题,但跑分会报错,aero也不行,后面发现更换dll也仅限于部分型号,多测试几个型号还是不行,对于楼主的这个方法不知道有没有做更大范围的测试!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:25
  • 签到天数: 51 天

    [LV.5]常住居民I

    发表于 2018-10-28 18:53:02 | 显示全部楼层
    Noime 发表于 2018-10-27 12:30
    这个方法只适用于安装正常,但播放报错,之前刚出的时候我就有研究过,我没有更改dll,我是更换了更高版本 ...

    都是牛人呀。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 09:28
  • 签到天数: 619 天

    [LV.9]以坛为家II

    发表于 2018-10-29 14:23:31 | 显示全部楼层
    谢谢分享,收藏一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-9-4 09:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-10-29 16:11:00 | 显示全部楼层
    8代桌面级核显可以不?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2018-10-29 16:53:52 | 显示全部楼层
    本帖最后由 h_f22 于 2018-10-29 17:19 编辑
    红毛樱木 发表于 2018-10-27 12:23
    8700K
    Intel(R) UHD Graphics 630
    21.20.16.4860

    很不幸,这个破解只适用于Kabylake和Kabylake-R,因为这两代CPU都有在windows 7下本身就可以跑的驱动(不是支持,意思是同版本驱动同时支持Kabylake和Skylake,但是windows 7下只能支持Skylake,windows10下可以都支持)。
    Coffee Lake的CPU在windows 7下我还没有找到可以用的驱动,如果能找到说不定也可以破解。但是暂时还没有。我在国外论坛上发帖子有人回称21.20.16.4678版驱动按照我的方法修改后可以驱动UHD630,你可以换这个版本试试,不过我没试过,所以未经证实。
    8700K很不幸属于Coffee Lake。不过话说回来桌面级的CPU对于Intel的集成核显要求不大吧,有独立显卡完全可以抛开集显。
    但是笔记本就不一样了,没有集显支持独显驱动都装不上。
    所以最头疼的应该是8750H的兄弟们,这个应该windows 7无解了。

    点评

    这么说来确实是这样子的。但是这类设备的ID,你有统计过吗?  详情 回复 发表于 2018-10-29 16:57
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-11-24 01:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2018-10-29 16:57:51 | 显示全部楼层
    h_f22 发表于 2018-10-29 16:53
    很不幸,这个破解只适用于Kabylake和Kabylake-R,因为这两代CPU都有在windows 7下本身就可以跑的驱动(不 ...

    这么说来确实是这样子的。但是这类设备的ID,你有统计过吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则