如何直接修改Google Chrome扩展程序文件? (的.crx)
我不确定这些扩展名是哪种语言,我认为是用Html,Javascript或JSON编写的。 据我所知,他们是压缩在.CRX文件。
可以直接修改Chrome扩展的html,js,json(或者他们使用的任何语言)?
我在谷歌search它,我发现这个:
Google Chrome扩展程序文件types是CRX。 它本质上是一种压缩格式。 因此,如果您想查看扩展后面的内容,脚本和代码,只需将文件types从“CRX”更改为“ZIP”即可。
解压缩文件,您将获得所有您需要的信息。 这样你可以看到胆量,学习如何自己写一个扩展,或者根据自己的需要进行修改。
然后,您可以使用Chrome的内部工具将其自动创build回CRX。 安装它只需点击一下。
下面列出了已安装的Chrome扩展程序目录:
-
复制您想要修改的扩展名的文件夹。 (根据扩展名命名,find扩展名的ID,转到
chrome://extensions/
)。 一旦复制,你必须删除_metadata文件夹。 -
从开发者模式下的
chrome://extensions
select加载解压后的扩展…并select复制的扩展文件夹,如果它包含一个由版本命名的子文件夹,select此版本文件夹,其中有一个清单文件,这个文件是必需的为Chrome。 -
进行更改,然后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头。
-
hexdump -C the_extension.crx | more
- 查看压缩文件开始的输出,这是ASCII字节“PK”。 在我尝试的样本中,PK的偏移量是0x132。 (从阅读CRX规范,我认为这个数字会因为不同的签名长度而在文件间有所不同。)这个数字就是我们在下一步使用的数字。
-
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的偏移量替代) - 现在解压缩刚创build的.zip文件。
- 摆弄解压目录中的文件,然后将未签名/解压缩的扩展安装到您的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
,我的Extensions
path是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文件。
- Google Chrome扩展程序中的网页抓取(JavaScript + Chrome API)
- JS的Chrome CPU Profile中“self”和“total”的区别
- 在Chrome中的ASP.NET获得一个奇怪的focus_change nikkomsgchannel错误
- 使用jQuery在焦点上select文本不工作在Safari和Chrome
- 有没有办法在谷歌浏览器中获取xpath?
- 使用后台页面的跨域XMLHttpRequest
- Chrome扩展程序“Window Resizer”的替代方法
- 将Google Chrome设置为Visual Studio中的debugging浏览器
- 错误显示“无法获取样式表文本(#):没有find给定ID的样式表”,这是什么意思?