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

时间:2010-02-12 07:00:58

标签: google-chrome

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

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

10 个答案:

答案 0 :(得分:106)

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

  1. 复制您要修改的扩展程序的文件夹。 (根据扩展ID命名,要查找扩展的ID,请转到chrome://extensions/)。复制后,您必须删除_metadata文件夹。

  2. 开发者模式中的chrome://extensions选择加载解压缩的扩展程序并选择您复制的扩展程序文件夹,如果它包含子文件夹,则为按版本命名,选择此版本文件夹,其中有一个清单文件,此文件是Chrome所必需的。

  3. 进行更改,然后选择重新加载并刷新扩展程序的页面以查看更改。


  4. Chrome扩展目录

    的Mac:

    /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/
    

答案 1 :(得分:84)

我在谷歌搜索过,我发现了这个:

  

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

     

解压缩文件,您将获得所需的所有信息。通过这种方式,您可以查看内容,了解如何自行编写扩展,或根据自己的需要进行修改。

     

然后,您可以使用Chrome的内部工具将其打包回来,该工具会自动将文件重新创建回CRX。安装它只需要点击一下。

答案 2 :(得分:44)

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

基本思路是找到原始未签名zipfile开始的位置,然后将CRX文件复制到zip文件,但不包括CRX标题。

  1. hexdump -C the_extension.crx | more
  2. 在输出中查找zip文件的开头,即ASCII字节“PK”。在我尝试的样本中,PK位于偏移量0x132。 (通过阅读CRX规范,我认为由于签名长度不同,这个数字因文件而异。)这个数字是我们将在下一步中使用的。
  3. dd if=the_extension.crx of=the_extension.zip bs=1 skip=0x132(对于skip参数,请替换您在上一步中找到的偏移量。)
  4. 现在解压缩刚刚创建的.zip。
  5. 解压缩解压缩目录中的文件,然后将未签名/解压缩的扩展程序安装到Chrome安装中,或者像重置任何其他Chrome扩展程序一样重新打包。
  6. 我确信有一种更简洁的方法可以做到这一点。 Bash专家,请改进我的答案。

答案 3 :(得分:9)

请注意,某些zip程序无法解压缩像描述的sathish这样的CRX - 如果是这种情况,请尝试使用7-Zip - http://www.7-zip.org/

答案 4 :(得分:2)

(已经说过)我在制作一些Chrome主题时发现了这一点(现在已经很久了...... :-P)

Chrome主题,扩展程序等只是压缩文件。获取7-zipWinRar以解压缩。每个扩展/主题都有一个manifest.json文件。在记事本中打开manifest.json文件。然后,如果您知道编码,请修改代码。还会有一些其他文件。如果您查看清单文件,您可能能够找出它的用途。然后,你可以改变一切......

答案 5 :(得分:2)

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

1。)对于Mac用户:当您单击“加载解压缩的扩展名...”时,默认情况下隐藏库文件夹(即使在Mac上切换显示隐藏文件选项),它可能不会显示在Chrome的取景器窗口。

2.。)包含扩展名的子文件夹是一个以扩展程序ID命名的随机字母数字字符串,如果Developer标志设置为true,可以在Chrome的扩展页面上找到该字符串。 (扩展页面上的右上角的复选框)

答案 6 :(得分:1)

.CRX文件类似.ZIP文件,只需更改扩展名并右键单击>提取文件,你就完成了。

提取文件后 - >修改它们并添加到zip并将扩展名更改回.crx。

其他方式 - >打开Chrome - >设置 - >扩展程序 - >启用开发者选项 - >加载解压扩展(修改后的解压文件夹),然后单击包扩展。

Source

答案 7 :(得分:1)

现在Chrome是多用户的,因此Extensions应嵌套在操作系统用户个人资料下,然后是Chrome用户个人资料,我的第一个Chrome用户名为Profile 1,我的Extensions路径为{ {1}} C:\Users\ username \AppData\Local\Google\Chrome\User Data\ Profile 1

找到你的导航到\Extensions\(我懒惰地使用chrome://version/)。

注意about:,只需追加Profile Path,就可以了。{/ p>

希望这会使这个问题的信息更新。

答案 8 :(得分:0)

如果您已安装便携版Chrome,或将其安装在自定义目录中,则扩展将无法在上述答案中引用的目录中使用。

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

答案 9 :(得分:0)

可以修改.CRX扩展名的代码,因为它是一个简单的.zip存档。您可以下载扩展程序,解压缩它的源代码,修改它(在它旁边测试和调试它),然后打包回.CRX文件。

我搜索了这个工具,只需下载.CRX扩展名并提取源代码,它对我有用:http://crxextractor.com

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