找出 Tiles 的 Win10 ShellMenuHost/StartMenuHost 缓存数据关系

逆向工程 二进制格式 视窗 10 未知数据
2021-06-12 04:43:05

我有一个奇怪的错误导致这个废话:

https://filestore.community.support.microsoft.com/api/images/e86b24be-f278-4a53-9719-c5319596a6a2?upload=true

有很多愚蠢的“解决方案”a-la“关闭和打开”但它们都不起作用和/或相关,外壳应用程序只是拒绝为 Vivaldi 缓存图标。我通过检查缓存数据来确认它: %localappdata%\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\TempState\ 它包含 3 个二进制文件:

TileCache_125_3_PNGEncoded_Data.bin
TileCache_125_3_PNGEncoded_Header.bin
StartUnifiedTileModelCache.dat

对我们来说,只有TileCache_125_3_PNGEncoded_Data.binTileCache_125_3_PNGEncoded_Header.bin是相关的。

我知道的

[TileCache_125_3_PNGEncoded_Data.bin] 包含成块的原始二进制 PNG 数据,最小的块似乎是 1024b,0如果 PNG 数据小于块大小,则填充如果 PNG 数据大于块大小,则将其扩展 2 倍,即 1024 到 2048 倍变为 2 倍,依此类推。可能针对二进制读取进行了优化。提取所有 PNG 数据显示它缺少那个 Vivaldi 图标

[TileCache_125_3_PNGEncoded_Header.bin] 布局也相当简单,前 40 个字节是一些标头/元数据,偏移处的 4bytes 整数12描述了条目的数量,在我的情况下是 18,但应该是19在头部之后,有条目本身,18 个条目,每个 112 字节: 在此处输入图片说明

以红色突出显示为:[offset][all chunks size][padding size][height]x[width]

我不知道的事

我不知道以蓝色突出显示的数据,但我很确定它以某种方式描述了缓存条目和开始菜单磁贴之间的关系。我认为其中一些可能是 GUID,尤其是 16 字节长的 GUID,但是在注册表中快速搜索这些指南没有任何结果。

了解这种关系是如何工作的可以帮助我手动插入条目并解决这个问题。

或者我可以像布冯一样重新安装整个系统,是的。

0个回答
没有发现任何回复~