none
困扰了我数个昼夜的Windows 7 “幽灵现象”【仍未解决,待高人指点】 RRS feed

  • 问题

  •  

    【基本任务】

     

    Windows 7 旗舰版 中文简体版x64 的登录画面下部的“Windows 7 旗舰版”商标更换为个性化的标识。

     

    【基本过程】

     

    1)准备好一份350x50(像素)的带有透明属性的位图(Bitmap),此图记为“AAA”。

    2)将“Take Ownership”或“管理员取得所有权”注册表项文件(或同类工具)导入Windows注册表。

    3)对“C:\Windows\Branding\Basebrd”文件夹实行“Take Ownership”或“管理员取得所有权”,以实现对该目录的控制权。

    4)以管理员身份执行“Resource Hacker”或同类工具,打开“C:\Windows\Branding\Basebrd\zh-CN\basebrd.dll.mui”。

    5)用位图“AAA”来更换basebrd.dll.mui文件中的“位图-120”资源。

    6)保存“basebrd.dll.mui”。

     

    执行到这一步的结果是:无效,Windows登录画面下部的标识(下简称“登录标识”)没有被更换。—— 幽灵现象之一。

     

    …… 不知道是触发了什么操作 —— 可能是中途运行了一次Windows Update所触发的 —— 登录标识发生了变化,成了“AAA”。

     

    【接下来的任务】

     

    把“AAA”更新为“BBB”。

     

    【过程】

     

    同上。

     

    结果是:无效,登录标识仍为“AAA”。—— 幽灵现象之二。

     

    【到底是哪个文件起了作用?】

     

    删除“C:\Windows\Branding\Basebrd\basebrd.dll”文件(不是\zh-CN\basebrd.dll.mui),结果是:登录标识消失。

     

    然而,不论对“C:\Windows\Branding\Basebrd\ zh-CN”或“\en-US”文件夹及其里面的文件进行什么操作(包括重命名、删除),登录标识都不会发生变化;只有删除“C:\Windows\Branding\Basebrd\basebrd.dll”文件,登录标识才会消失,而一旦还原该文件,登录标识又出现,而且一定仍然是“AAA”。

     

    这样看来,登录标识只跟“C:\Windows\Branding\Basebrd\basebrd.dll”文件有关(这就与“基本过程”的原理相矛盾),接下来的事情,就更要命了:

     

    利用“干净的”(系统原本的)basebrd.dll文件替换“C:\Windows\Branding\Basebrd\basebrd.dll”,登录标识居然没变化,仍然是“AAA”;若删了该文件,登录标识就消失 —— 也就是说,只要有basebrd.dll文件(不论内部具体资源是什么),登录标识就一定是“AAA”;只要没有basebrd.dll文件,登录标识就没有。—— 幽灵现象之三。

     

    进一步“解剖”“C:\Windows\Branding\Basebrd\basebrd.dll”文件,利用“Resource Hacker”工具将该文件中的资源清空,登录标识消失。这样看来,得到一个结论:只要basebrd.dll存在且保留了资源格式,登录标识就一定是“AAA”;而如果basebrd.dll不存在或该文件中的资源格式清除,则登录标识就消失。

     

    综合上述现象,就有了一个猜想:这个Windows系统对“C:\Windows\Branding\Basebrd\basebrd.dll”的“完整性”有一个“定性”的判断机制,而不是“读取/解析/调用”机制。当Windows系统判断“C:\Windows\Branding\Basebrd\basebrd.dll”具有完整性的时候,它就会调取系统中“另外某个地方”所保留的“AAA”资源,否则就不调取。

     

    这样看来,就又必要把存放着“AAA”资源的“另外某个地方”找出来。遗憾的是, AAA”的位图文件被我一早就丢弃了,无法再次获得“AAA”的“特征码”。也就是说,如果能截取一段位图“AAA”的代码,可以利用全盘十六进制扫描工具,将“另外某个地方”找出来。

     

    那么,退而求其次,设想“C:\Windows\Branding\Basebrd\basebrd.dll”这个文件,在系统的某个地方有一处“影子”文件(或许就是存放着“AAA”资源的地方)。那么,搜索整个系统盘,只能搜索到“C:\Windows\Prefetch”和“C:\WinSXS”文件夹里面,有与“basebrd.dll”或“basebrd.dll.mui”有关的文件,将它们全部删除,并关闭Windows系统的“预读机制”。情况照旧,登录标识仍然为“AAA”。

     

    以上所讲述的,就是Windows 7 “幽灵现象”的全部内容。

     

    这个“幽灵现象”困扰了我数个昼夜,仍未破解。

     

    期盼各位大虾、高人,不吝赐教、指点迷津。

     

    非常感谢!

     

     

    2011年12月17日 15:12

答案

  • 首先對於 Windows 系統文件基於諸如此類二進制的修改, 是不受微軟支持的, 所以你這個問題在這裡恐難得到官方支持.

    下面的內容全部為個人建議:

    另外請謹慎使用 "管理员取得所有权" 等工具, 這類工具是建立在忽視系統權限細分的情況下, 試圖在所有地方都是用管理員權限, 這樣會帶來安全隱患.

    同時我注意到你對 C:\Windows\winsxs 文件進行了刪除操作, 這可能對以後的系統更新造成問題. 你可以在其他 Windows 7 系統或虛擬機中的 Windows 7 中以管理員身份運行命令提示符並執行命令

    fsutil hardlink list C:\Windows\Branding\Basebrd\zh-CN\basebrd.dll.mui

    通過這個命令你可以了解到 basebrd.dll.mui 是一個使用了硬鏈接的文件, 無論對於 Branding 目錄還是 winsxs 目錄下的 basebrd.dll.mui 文件的任何修改(權限, 所有者, 內容), 都會導致對應的另一個目錄的中的文件一併被修改, 因為它們本來就是一個文件. 之前對目錄 C:\Windows\Branding\Basebrd 的奪取所有權的操作是不必要的, 你只需對要修改的 basebrd.dll.mui 等文件修改其權限即可, 並且修改之前需要通過 icacls /save 或 cacls /s 備份其原有權限和所有者, 以便於以後還原.

    最後對於你所反映的問題, 可以參考一下下面這個帖子(須讀完該帖子)

    schtasks错误: 无法加载列资源。
    http://social.technet.microsoft.com/Forums/zh-CN/window7betacn/thread/0a4cce8f-65de-44c1-90c6-4ab3d7ab65f3/


    Folding@Home

    2011年12月18日 2:39

全部回复

  • 首先對於 Windows 系統文件基於諸如此類二進制的修改, 是不受微軟支持的, 所以你這個問題在這裡恐難得到官方支持.

    下面的內容全部為個人建議:

    另外請謹慎使用 "管理员取得所有权" 等工具, 這類工具是建立在忽視系統權限細分的情況下, 試圖在所有地方都是用管理員權限, 這樣會帶來安全隱患.

    同時我注意到你對 C:\Windows\winsxs 文件進行了刪除操作, 這可能對以後的系統更新造成問題. 你可以在其他 Windows 7 系統或虛擬機中的 Windows 7 中以管理員身份運行命令提示符並執行命令

    fsutil hardlink list C:\Windows\Branding\Basebrd\zh-CN\basebrd.dll.mui

    通過這個命令你可以了解到 basebrd.dll.mui 是一個使用了硬鏈接的文件, 無論對於 Branding 目錄還是 winsxs 目錄下的 basebrd.dll.mui 文件的任何修改(權限, 所有者, 內容), 都會導致對應的另一個目錄的中的文件一併被修改, 因為它們本來就是一個文件. 之前對目錄 C:\Windows\Branding\Basebrd 的奪取所有權的操作是不必要的, 你只需對要修改的 basebrd.dll.mui 等文件修改其權限即可, 並且修改之前需要通過 icacls /save 或 cacls /s 備份其原有權限和所有者, 以便於以後還原.

    最後對於你所反映的問題, 可以參考一下下面這個帖子(須讀完該帖子)

    schtasks错误: 无法加载列资源。
    http://social.technet.microsoft.com/Forums/zh-CN/window7betacn/thread/0a4cce8f-65de-44c1-90c6-4ab3d7ab65f3/


    Folding@Home

    2011年12月18日 2:39
  • 非常感谢repl大虾的指点!

    关于我所求解的“幽灵现象”,迄今为止,在众多技术论坛中,repl大虾的解答,是唯一触及问题实质并具有实际帮助作用的。repl大虾的解答颇具启发性,虽然没有直接地给出解决“幽灵现象”的做法,但仍足够令我将那个问题迅速破解。

    特向repl大虾表示感谢与敬意!

    2011年12月28日 10:14
  • 120、1120、2120都修改试一下。
    2015年3月22日 9:37