如何直接修改Google Chrome扩展程序文件? (的.crx)

我不确定这些扩展名是哪种语言,我认为是用Html,Javascript或JSON编写的。 据我所知,他们是压缩在.CRX文件。

可以直接修改Chrome扩展的html,js,json(或者他们使用的任何语言)?

我在谷歌search它,我发现这个:

Google Chrome扩展程序文件types是CRX。 它本质上是一种压缩格式。 因此,如果您想查看扩展后面的内容,脚本和代码,只需将文件types从“CRX”更改为“ZIP”即可。

解压缩文件,您将获得所有您需要的信息。 这样你可以看到胆量,学习如何自己写一个扩展,或者根据自己的需要进行修改。

然后,您可以使用Chrome的内部工具将其自动创build回CRX。 安装它只需点击一下。

下面列出了已安装的Chrome扩展程序目录:

  1. 复制您想要修改的扩展名的文件夹。 (根据扩展名命名,find扩展名的ID,转到chrome://extensions/ )。 一旦复制,你必须删除_metadata文件夹。

  2. 开发者模式下的 chrome://extensionsselect加载解压后的扩展…并select复制的扩展文件夹,如果它包含一个由版本命名的子文件夹,select此版本文件夹,其中有一个清单文件,这个文件是必需的为Chrome。

  3. 进行更改,然后select重新加载并刷新页面以查看您的更改。


Chrome扩展程序目录

苹果电脑:

 /Users/username/Library/Application Support/Google/Chrome/Default/Extensions 

Windows 7的:

 C:\Users\username\AppData\Local\Google\Chrome\User Data\Default\Extensions 

Windows XP:

 C:\Documents and Settings\YourUserName\Local Settings\Application Data\Google\Chrome\User Data\Default 

Ubuntu 14.04:

 ~/.config/google-chrome/Default/Extensions/ 

一个签名的CRX文件有一个标题,会导致大多数/所有的解压缩文件。 这不是最简单的方法去做,但这里是如何从一个bash命令行。

基本的想法是find原始未签名的zip文件的起始位置,然后将CRX文件复制到一个zip文件,但不包括CRX头。

  1. hexdump -C the_extension.crx | more
  2. 查看压缩文件开始的输出,这是ASCII字节“PK”。 在我尝试的样本中,PK的偏移量是0x132。 (从阅读CRX规范,我认为这个数字会因为不同的签名长度而在文件间有所不同。)这个数字就是我们在下一步使用的数字。
  3. dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132 (对于skip参数, dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132一步find的偏移量替代)
  4. 现在解压缩刚创build的.zip文件。
  5. 摆弄解压目录中的文件,然后将未签名/解压缩的扩展安装到您的Chrome安装中,或重新打包,就像其他任何Chrome扩展一样。

我相信有一个更简洁的方法来做到这一点。 Bash专家,请提高我的答案。

请注意,一些压缩程序有麻烦解开CRX像sathish描述 – 如果是这样的话,尝试使用7-Zip – http://www.7-zip.org/

我已经阅读了其他的答案,发现重要的是要注意一些其他的事情:

1.)对于Mac用户:当你点击“加载解压后的扩展…”时,默认隐藏库文件夹,并且(即使显示隐藏文件选项在Mac上切换),它可能不会显示在Chrome浏览器的search窗口。

2.)包含扩展名的子文件夹是一个随机字母数字string,以扩展名ID命名,如果Developer标志设置为true,可以在Chrome的扩展页上find它。 (扩展页面右上方的checkbox)

(已经说过)我发现了这一点,而使一些Chrome主题(现在已经很久没有…:-P)

Chrome主题,扩展等仅仅是压缩文件。 获取7-zip或WinRar解压缩。 每个扩展/主题都有一个manifest.json文件。 在记事本中打开manifest.json文件。 那么,如果你知道编码,修改代码。 会有一些其他的文件。 如果你看清单文件,你可能会弄清楚是什么。 那么,你可以改变一切…

现在Chrome是多用户的,所以Extensions应该嵌套在操作系统用户configuration文件,然后Chrome用户configuration文件,我的第一个Chrome用户被称为Profile 1 ,我的Extensionspath是C:\Users\ username \AppData\Local\Google\Chrome\User Data\ Profile 1 \Extensions\

find你的导航到chrome://version/ (我用about:出于懒惰)。

注意Profile Path ,只需追加\Extensions\ ,你有你的。

希望这个带来这个信息在这个问题最新更多。

如果您已经安装了Chrome的可移植版本,或者将其安装在自定义目录中,那么在上述答案中引用的目录中将无法使用扩展。

尝试右键点击Chrome的快捷方式,并检查“目标”目录。 从那里,导航到上面的一个目录,你应该能够看到User Data文件夹,然后可以使用上面提到的答案

.CRX文件就像.ZIP文件,只需更改扩展名并右键单击>解压缩文件即可完成。

一旦你已经提取文件 – >修改它们并添加到压缩文件并将扩展名更改回.crx。

其他方法 – >打开Chrome – >设置 – >扩展 – >启用开发者选项 – >加载解压后的扩展(修改解压缩的文件文件夹),然后点击打包扩展。

资源

可以修改.CRX扩展的代码,因为它是一个简单的.zip压缩文件。 你可以下载扩展,提取它的源代码,修改它(testing和debugging,因为它在你身边),并打包回.CRX文件。

我googled出这个工具,只需下载.CRX扩展名,并提取源代码,它为我工作: http ://crxextractor.com

它所做的一切就是parsing.CRX文件格式并提取包含源代码的实际.zip文件。