Chrome 如何从谷歌浏览器中解压resources.pak?

nhaq1z21  于 2023-01-15  发布在  Go
关注(0)|答案(4)|浏览(447)

有一堆有趣的文件可以通过chrome://resources/*使用谷歌浏览器访问。
在Linux上,内容在/opt/google/chrome/resources.pak中。我知道我可以从http://chromium.googlecode.com/svn/trunk/中获得整个源代码,但我想解压resource.pak文件。
file resources.pak报告只是垃圾。
需要说明的是,问题不在于 * 从何处获取这些资源 ,而在于 * resources.pak文件格式是什么以及如何解压缩它?

bgtovc5b

bgtovc5b1#

摘自https://groups.google.com/a/chromium.org/forum/?fromgroups =#!主题/chromium-dev/agGjTt 4Dmcw
4字节版本号
4字节资源数量
1字节编码
对于每个资源:
2字节资源ID
文件中的4字节资源偏移量
结尾处有一个额外的资源条目,ID 0给出了最后一个资源的结尾(本质上是文件的长度)
这个python模块可以解压缩和重新压缩文件:
grit-i18n读取data_pack.py

ecr0jaav

ecr0jaav2#

chrome-pak-customizer(MrU在上面的评论中指出)似乎可以很好地解压缩Chrome的.pak文件。如果你在Windows上,你可以从releases页面下载并解压缩chrome-pak.7z。然后将.pak文件放到unpack.bat脚本中解压缩它。
对于其他平台,您似乎需要从源代码构建工具。

7nbnzgx9

7nbnzgx93#

我发现resource. pak V5有了新的格式:

struct header {
    // 5 is the latest version
    uint32_t version;
    // 0 = BINARY, 1 = UTF8, 2 = UTF16
    uint8_t encoding;
    // 3 bytes padding
    uint8_t padding[3];
    uint16_t resource_count;
    uint16_t alias_count;
};

然后是resource_countresource s和alias_countalias es。
x一个一个一个一个x一个一个二个x
其中,uint32_t = 4字节,uint16_t = 2字节,uint8_t = 1,均为从小到大的整数。
源代码位于https://github.com/chromium/chromium/blob/master/ui/base/resource/data_pack.cc

lzfw57am

lzfw57am4#

chromium中的python文件可能会有所帮助。https://source.chromium.org/chromium/chromium/src/+/main:tools/grit/pak_util.py
您需要下载整个目录,然后运行它。
示例:

pak_util.py extract resources.pak -o /tmp/rescources.out/

相关问题