V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nothingistrue
V2EX  ›  Windows

Windows 11 22H2 08 累积更新(KB5029263)破坏了 ExplorerPatcher 进而导致系统不可用。

  •  
  •   nothingistrue · 261 天前 · 5436 次点击
    这是一个创建于 261 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨晚自动更新 KB5029263 ,今天起来 ExplorerPatcher 和 explorer.exe 均陷入无限重启状态。必须不停右键任务栏,才能触发 ExplorerPatcher 的自动退出机制。随后尝试了卸载 KB5029263 和昨晚更新中所有能卸载的,不起作用。无奈只能先卸载了 ExplorerPatcher 。

    详细情况可另见: https://github.com/valinet/ExplorerPatcher/issues/1802

    KB5029263 只是一个累积补丁更新,不是年度版本,这原本是不应该动基础 API 。现在这样搞,以为这每个补丁星期二,都有可能产生严重的兼容性问题,这谁还敢自动更新。

    不论你以前是否支持自动更新,从现在开始应该禁止 Win 11 的自动更新。如果有机会的话,还是别用 Win11 这个垃圾或。

    第 1 条附言  ·  261 天前
    禁用 Windows 11 自动更新更新的方法,包含家庭版也可以用的方法: https://pureinfotech.com/disable-automatic-updates-windows-11/
    第 2 条附言  ·  261 天前

    关于第三方侵入式工具的好坏,随人而定,但有必要先给外人说明一下 ExplorerPatcher 是什么。

    ExplorerPatcher 是一款定制 Win11 开始菜单、任务栏、右键菜单的工具,其更为人知的作用是:将 Win 11 的 开始菜单、任务栏、右键菜单,恢复到 Win 10的习惯。

    这是一种 侵入式工具,但同时也是 被动使用 Win 11 的老Windows 人员 的必备工具。

    70 条回复    2023-09-21 09:51:52 +08:00
    Himmel
        1
    Himmel  
       261 天前
    win11 有个版本更新了以后打开文件管理器就卡住,点另存为直接就卡到崩溃,无奈只能重装,这系统简直是让所有用户给他测试
    bugmakerxs
        2
    bugmakerxs  
       261 天前
    印度佬瞎搞啊
    Jirajine
        3
    Jirajine  
       261 天前   ❤️ 12
    你给系统程序打补丁,这显然依赖特定版本具体实现而非公开 API ,自然不会有任何兼容性保证。
    当然你对 Win11 系统垃圾的评价十分正确,一个屎上雕花雕了几十年的屎山,又要缝合广告和云服务。这就是某果能把内存卖上金条价格的底气。
    marc2017
        4
    marc2017  
       261 天前
    每每看到这种吐槽帖我就会感叹一下之前退回 win10 的决定是多么正确。
    surrenal
        5
    surrenal  
       261 天前
    这个是预览更新? 没打开预览版的 会被推送不?
    nothingistrue
        6
    nothingistrue  
    OP
       261 天前   ❤️ 1
    @surrenal #5 补丁星期二的常规补丁。
    Carlgao
        7
    Carlgao  
       261 天前
    昨天电脑重启后任务栏那一条全都不见了,很多按键也没反应,折腾了半天回退最新的更新才恢复正常。
    电脑版本是 win11 dev ,这版本一旦选了之后还不能切换成 beta 或者正式版,除非重装系统。
    唉,电脑免费给巨硬做测试机了。
    flyqie
        8
    flyqie  
       261 天前 via Android   ❤️ 1
    看来坚守 win10 是正确的。。。
    surrenal
        9
    surrenal  
       261 天前
    @nothingistrue 再咨询一下,这个是电脑装了 explorerPatcher 才会导致 explorer 无限重启吗?没有安装 explorerPatcher 的 PC 就没问题了是吧?
    Rayx
        10
    Rayx  
       261 天前
    之前一个累积更新也是出现了这种情况,后来没办法我只好把 ExplorerPatcher 卸载了。现在转用了 StartAllBack,也基本能满足我需求了,而且不会出现这种大问题。(可能是商业软件更新比较及时,或者对系统改动没有 EP 那么多)
    Shatyuka
        11
    Shatyuka  
       261 天前 via iPhone   ❤️ 10
    都 hook 系统了还想要保证稳定性
    iold
        12
    iold  
       261 天前 via iPhone   ❤️ 4
    是不是说反了,难道不是 explorer patcher 破坏了 explorer 吗
    codehz
        13
    codehz  
       261 天前 via iPhone
    @surrenal 那肯定啊
    explorerpatcher 不是日常被更新打爆(
    cy18
        14
    cy18  
       261 天前
    https://github.com/valinet/ExplorerPatcher/issues/1802 ,这里有不少解决方法。
    我直接把注册表里“IsUndockedAssetAvailable”项删掉,重启就可以了。
    hez2010
        15
    hez2010  
       261 天前 via Android   ❤️ 1
    explorer 的 api 从来都是 undocumeted 的,自然也就不存在任何的兼容性保证。
    rezero
        16
    rezero  
       261 天前 via Android
    早上更新了 win10 的 h08 两个补丁,然后现在进桌面就卡死
    liantian
        17
    liantian  
       261 天前 via iPhone
    真就是微软原罪论,苹果无罪论呗…
    EVANGELIONAir
        18
    EVANGELIONAir  
       261 天前   ❤️ 2
    "不论你以前是否支持自动更新,从现在开始应该禁止 Win 11 的自动更新。如果有机会的话,还是别用 Win11 这个垃圾或。"

    我是真的不懂,为什么有人觉得魔改 explore 的程序是绝对正确的,系统自己的 explore 就是错误的
    v2xiaolang
        19
    v2xiaolang  
       261 天前
    @rezero 不是吧 我看到了 还没更新 你这么一说 更不敢更新了
    rezero
        20
    rezero  
       261 天前 via Android
    @v2xiaolang 我除了更新了三个补丁外,啥都没弄,然后就进桌面卡死、登录界面卡死……我现在想把这三个补丁卸载了都没办法,折腾了 3.4 个小时了已经,真是艹了
    rezero
        21
    rezero  
       261 天前 via Android
    三个补丁分别是:kb5029244 、kb5029649 、kb5029688
    ccc008
        22
    ccc008  
       261 天前
    是不是说反了,难道不是 explorer patcher 破坏了 explorer 吗 +1
    kokutou
        23
    kokutou  
       261 天前 via Android
    早就不用这个 ep 了,很不稳定,4k 双屏的时候更不稳定。。。
    这种依赖打补丁的,微软凭什么要兼容呢
    F1reman
        24
    F1reman  
       261 天前
    @EVANGELIONAir #18 因为有一群人 win8 是屎 win10 是屎 win11 是屎 唯有自己 win7 是哪哪都好
    NessajCN
        25
    NessajCN  
       261 天前   ❤️ 6
    也是替巨硬感慨,果然天狗一无所有
    为了兼容性妥协了那么多换来一句「更新会产生严重兼容问题必须禁止更新」
    某果从来不鸟什么兼容性跟不上版本的别上架了爱用用不用滚
    结果就是所有开发者和用户都习惯了跟紧版本出兼容问题了喷应用而不是系统
    lightionight
        26
    lightionight  
       261 天前
    ![ ](//i.imgur.com/DQqIamT.png)
    瑟瑟发抖
    nothingistrue
        27
    nothingistrue  
    OP
       261 天前
    @Shatyuka #11
    @iold #12
    @NessajCN #25

    也不知道是门槛低了,还是被敏捷滚动更新给弄糊了,大小版本,或者说升级跟补丁的区别都不认识了。Win10/11 的年度版本,代号 22H2 这种,才是功能升级版本。日常自动升级的,只是补丁,微软甚至连小版本号都没给它弄,就只有一个 KBxxxxxxx 编号。
    nothingistrue
        28
    nothingistrue  
    OP
       261 天前   ❤️ 1
    @iold #12
    @ccc008 #22
    首先,win11 的 explorer 要是能用,哪还有 explorer patcher 的事。 其次 explorer patcher 这是用户自己对 explorer 的自定义,不是破坏。
    NessajCN
        29
    NessajCN  
       261 天前
    @nothingistrue 所以微软说过补丁不改系统程序了吗
    nothingistrue
        30
    nothingistrue  
    OP
       261 天前
    @Shatyuka @iold @NessajCN @iold @ccc008 看完前面的回复后,最后集中说一下,Windows Update ,不是 Windows Auto Update 。22H2 这种年度版本的更新是需要用户手动触发的。自动更新的,只是补丁更新(用程序员的术语叫做 BUG 修复),不应该产生兼容性问题。

    正因为是补丁更新,不管是个人版还是企业版(现在叫做 LTS 版),都有必要开启自动更新。但如果你在自动更新里面参杂了版本手动升级才可能有的东西,那还自动更新,不是胆子大就是无脑。
    ztxcccc
        31
    ztxcccc  
       261 天前
    @nothingistrue #27 explorer patcher 这种三方软件坏了你不应该去找它的开发者么,和微软的补丁更新有什么关系
    ccc008
        32
    ccc008  
       261 天前
    @nothingistrue 用第三方 patch ,导致系统不稳定真骂不到 win 头上。我说一个我经历的案例:买的笔记本自带 win11 系统,我更换了无线网卡,用了 ax210 。然后我手动卸载了原始驱动,准备安装最新驱动。结果 win11 会自作聪明的加载一个 win 系统自带的 netwtw10.sys 驱动,然后循环蓝屏。
    ztxcccc
        33
    ztxcccc  
       261 天前
    @nothingistrue #30 explorer patcher 和一般的应用软件是一回事吗?和 windows 兼容性有什么关系
    NessajCN
        34
    NessajCN  
       261 天前   ❤️ 2
    @nothingistrue 所以你回答一下呀,补丁修 bug 要不要改程序咯
    微软自家的 explorer, 他能不能在补丁里修改二进制文件呢
    现在它补丁改完了,explorer 也正常跑了,它在哪个点做错了嘛
    至于你这个基于它原版 explorer 魔改的程序,因为它改了原版你就喷它,是不是你的期望是它每次改自己系统程序都必须把所有的第三方魔改都测一遍确认兼容性 ok 才能发?
    terence4444
        35
    terence4444  
       261 天前 via iPhone
    我之前也碰到过两次更新后 Explorer 无限重启。可以开机时 Ctrl Alt Del 把 explorer 杀掉然后装一个新版本的 Explorer Patcher 应该就好了。
    cdswyda
        36
    cdswyda  
       261 天前   ❤️ 1
    还以为 ExplorerPatcher 是啥系统组件,搜了下是又不是。 那这么说是不是 ExplorerPatcher 的问题呢?
    xxxCasperxxx
        37
    xxxCasperxxx  
       261 天前
    打开电脑第一件事就是看有没有更新,看了这么多年抱怨更新出问题的我算是看明白了,基本上全都是装了莫名其妙的非必要的第三方程序的。

    要让我选择不更新还是放弃这种没什么实用意义的程序,那我当然是选后者。
    Abbeyok
        38
    Abbeyok  
       261 天前
    印度人乱搞!系统自动更新了之后,explorer.exe 无限重启,进安全模式也一样,只能用修复模式,卸载掉更新!然后就用软件把自动更新干掉了!
    OwenY
        39
    OwenY  
       261 天前
    目前最好用的还是 win10 专业版
    nothingistrue
        40
    nothingistrue  
    OP
       261 天前
    @cdswyda #36 兼容性的问题要 ExplorerPatcher 自己背。在日常自动更新中改基础 API ,原本是应该在年度版本升级中改的(这个是手动的),这锅是微软的。
    zictos
        41
    zictos  
       261 天前
    @flyqie #8
    @OwenY #39
    win10 不会哪天自动升级到 win11 吧,有点担心,不知道要不要禁用升级。网上都说不会,刚才自动更新里面提示了可以升级到 win11 ,我选择了“暂时继续使用 win10”
    nothingistrue
        42
    nothingistrue  
    OP
       261 天前
    @NessajCN #34 Win11 年度版本(打开你的系统信息,里面有版本号,当前是 22H2 ),是手动触发而非自动更新的,再次提醒你一下啥是大版本更新。

    软件开发是有过程的,不是你一句「我要改 BUG 」就能随时随心搞升级的。如果你对这个「过程」不了解,那再对话下去就没啥意义了。
    deplivesb
        43
    deplivesb  
       261 天前   ❤️ 1
    系统官方更新,破坏了第三方的 hook ,好家伙,不知道的还以为 Windows 是谁的产品了。
    NessajCN
        44
    NessajCN  
       261 天前
    @nothingistrue 我已经说第三遍了,你只要回答我一个简单的问题,微软发布的「补丁」到底能不能改它自己的系统程序。能 或 不能,二元选择。
    ambition117
        45
    ambition117  
       261 天前 via iPhone
    凭什么不能动 undocumented API
    clorischan
        46
    clorischan  
       261 天前   ❤️ 3
    nothingistrue
        47
    nothingistrue  
    OP
       261 天前
    @zictos #41 win10 到 win11 已经不是跨版本,而是跨商品了,显然是不能自动安装的。但是可以通过自动下载、不断提醒、引导你误操作等各种措施,来变相强制你「手动」升级。我们通常所说的 IOS 、Android 的强制更新,指的其实是后者。

    但现在讨论的不是这个版本升级,而是版本内部的补丁更新,与之类比的是 Android 的安全更新补丁( IOS 那边我没注意过有没有这样的补丁)。对于今天微软这种行为,类比到 Android 上,相当于 Google 在月度安全补丁里面,做了「最低安装目标级别提高到 23 」这种变更。
    ShadowPower
        48
    ShadowPower  
       261 天前
    微软不会保证 [未公开 API] 稳定,市面上任何软件都是这样。
    公开 API (即:记录在开发文档中的)都保证内核大版本不变时,它的行为不变。

    你说的问题不是 Windows 的问题,而是 ExplorerPatcher 的问题。


    考虑下面的情况:

    你在程序内部写了一个结构体,只在内部逻辑中使用,不暴露任何 API 。整个结构体的大小是 12 。
    有一次更新给结构体增加了新的属性,现在结构体大小变成 16 了。
    这个结构体装在一个数组里,用来存储一些配置信息。

    有人给你的程序写了个外挂,用来修改你未公开的配置项。这个配置项放在数组第三项第一个属性中,长度为 4 字节。
    代码逻辑是:先读取你的进程一处固定内存地址(是个指针),读取里面存储的地址,并在这个地址上加上 12*2 ,然后修改这个位置之后 4 字节的数据。
    但因为你更新了程序,真正要改的数据其实在 16*2 的位置。

    然后你的程序崩溃了。因为改变了一个本来不应该改的数据。

    有人说你写的程序太烂了,理由是“这原本是不应该动基础 API”。但你只是给你的结构体多加了一个属性罢了,而且这个结构体完全没暴露给用户。

    你觉得,他说的合理吗?
    zictos
        49
    zictos  
       261 天前
    @nothingistrue #47 我上回的一加强制升级就不是误操作,真的是强制升级,而且我应该关闭了 wifi 状态下自动下载和开发者选项里的系统更新的。而且这个是直接从安卓 11 升级到安卓 13 。
    https://www.v2ex.com/t/958901
    hez2010
        50
    hez2010  
       261 天前
    @nothingistrue 然而根本就不是「最低安装目标级别提高到 23 」这种变更。

    你要知道各种 explorer patcher 插件的原理:注入他们自己的 dll 到 explorer.exe 进程中,替换掉某个内存地址上的函数指针指向他们插件自己的函数来实现自动自定义逻辑,然后这个内存地址还是通过各种逆向工具 dump 出来的。

    explorer 自己往自己某个私有类型里加了个私有函数自己用,结果因为这样使得你的插件应该 hack 的地址偏移变了导致崩溃,这总不能是 explorer 的问题吧?
    hez2010
        51
    hez2010  
       261 天前   ❤️ 1
    @hez2010 况且,explorer 从来都没有 API 让你修改成旧风格的开始菜单,不管是公开的还是私有的 API 都没有,要做这件事只能劫持 explorer 的内存地址。

    做个简单的不准确的解释的话就是,假设你点击开始菜单的时候 explorer.exe 会执行一个内部的 `OpenStartMenu` 函数打开开始菜单,现在 Explorer Patcher 想要把开始菜单换成他们自己做的旧风格的开始菜单,那怎么做呢?

    于是 Explorer Patcher 的开发者通过逆向工具找到这个内部的 `OpenStartMenu` 函数的地址,比如说是这个地址是 `A`,然后他们写一个 dll 在 explorer 启动的时候注入到 explorer 进程里,这个 dll 被 explorer 成功加载之后就会给地址 `A` 插入一条跳转指令使得只要代码执行到 `A` 这里就会跳转到他们自己做的打开开始菜单的函数地址上。这样当你点击开始菜单的时候,explorer 想要执行 `OpenStartMenu` 函数但是被 patcher 的 dll 篡改掉了,于是执行了 patcher 自己的函数,实现了打开旧风格的开始菜单。

    那现在 explorer 因为一些原因,比如修复安全漏洞等等,加了一些代码恰好使得重新编译之后 `OpenStartMenu` 函数的地址变了,这可并没有修改任何的 API ,结果 patcher 仍然是按照以前的 `A` 地址进行篡改,这样必然会导致别的什么东西被改掉了,于是使得正常的 explorer 崩溃了。

    这难道是 explorer 自己的问题?
    NoOneNoBody
        52
    NoOneNoBody  
       261 天前
    win7 时代用过魔改的美化工具,然后某次更新系统蓝屏崩了,之后至今都没敢随意装这些魔改工具
    GrayXu
        53
    GrayXu  
       261 天前
    @EVANGELIONAir #18 +1 ,魔改了当然得承担不稳定的后顾
    yyysuo
        54
    yyysuo  
       261 天前
    @nothingistrue 你自己编造了一些微软公司开发中不存在的概念、标准、要求,然后拿这些东西来吐槽,这明显是不对的,你还是好好理解一下 46 楼的图吧。
    fox0001
        55
    fox0001  
       261 天前
    因为 ExplorerPatcher 不能用了,只能接受 Win11 的任务栏,并使用 CLaunch 实现自定义菜单
    ikas
        56
    ikas  
       261 天前
    只怪微软不是苹果
    kekeyu
        57
    kekeyu  
       260 天前 via iPhone
    妈蛋,原来是系统更新的锅,我还以为是公司的监控软件问题,直接把系统重装了。微软真实害人不浅啊
    hanqian
        58
    hanqian  
       260 天前
    看了一下幸亏 StartAllBack 还能用。。
    其实我压根就不想用这些魔改工具,但有一天遇到原生开始菜单弹出延迟的问题,没办法只能用了
    AvilCore
        59
    AvilCore  
       260 天前 via Android
    微软至今为止仍然不让把 win11 任务栏拖到左右侧是真的狗逼,谁没事儿喜欢牺牲稳定性 dll 注入 explorer 呢
    EdwardSherlock
        60
    EdwardSherlock  
       260 天前
    @Carlgao win11 dev 想回到正式版 除了重装系统外 只能等到正式版号高于 dev 版了 我看再过段时间 估计 win12 要出了
    icyalala
        61
    icyalala  
       260 天前
    用了公开 API ,更新系统出了问题这怪系统。
    你都用了私有 API 来乱改,更新完了还把系统搞崩了,这还能反过来怪系统?

    甭管什么侵入不侵入,习惯不习惯,这开发人员基础常识总不能丢吧。。
    mmdsun
        62
    mmdsun  
       260 天前 via iPhone
    脑路新奇

    软件应该主动适配系统,到你这里反过来变成系统适配软件了。看前几期已知问题吧,微软明确表示 ExplorerPatcher 会有兼容性问题。
    mmdsun
        63
    mmdsun  
       260 天前 via iPhone
    @Jirajine 微软预览版每周大量更新,要是真是屎山,改都改不动,更别提现在拿 rust 重写内核了。显然不是屎山代码
    Jirajine
        64
    Jirajine  
       260 天前
    @mmdsun 一个 2023 年还不支持 i18n 的系统,不是屎山是什么。你装个英文版系统,中文都能显示不正常。(不要说什么改地区、语言包之类的,系统不能正确处理其他语言,不同语言还需要不同镜像)
    一个新装的 Windows 打开 event viewer 都能看到一大堆错误,整个系统根本没有测试覆盖,dead code 太多。
    endy
        65
    endy  
       260 天前
    是的,注册表删除那个注册信息重启就可以了,不用重新安装
    cyp0633
        66
    cyp0633  
       258 天前
    KB5029336 可能有类似的效果,敬请 v 友注意
    rezero
        67
    rezero  
       257 天前
    更新一下我之前说是 WIN10 更新导致卡死的问题,搞坏了 3 台电脑,终于把原因找到了:
    卡巴斯基 21.3 和火绒在 win10 最新版本的情况下,会导致卡死,详情: https://bbs.kafan.cn/thread-2259186-1-1.html
    rezero
        68
    rezero  
       257 天前
    解决办法就是如果出现问题,进安全模式卸载火绒或者卡巴两者其一即可
    nothingistrue
        69
    nothingistrue  
    OP
       235 天前
    一个月后发现,自动更新仍在继续运行,编辑注册表禁用自动更新的方式,失效了。也特么沙雕了,既然微软都干了补丁里面喂屎的行为,自然也会干忽略「禁用自动更新」的行为。
    nothingistrue
        70
    nothingistrue  
    OP
       219 天前
    最新不让更新的方法请参见: /t/975019 。注册表修改的方法不要用了,毫无效果,并且还会导致想更新也更新不了——但是还会提示重启。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2894 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:43 · PVG 22:43 · LAX 07:43 · JFK 10:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.