日常使用谷歌内核的浏览器时,经常会安装各种插件,提升使用体验。
本人在工作中使用到远程桌面,无法联网,但可以将文件复制进去,需要用到插件时就需要下载 crx 格式的文件拷进去安装。
chrome 应用商店只允许在线安装扩展,无法直接下载 crx 文件。而网络上的各种第三方的应用商店,要么插件版本老旧,要么就是要关注公众号,要么广告满天飞,实在无法忍受。
chrome 应用商店对我来说有两个缺点,一个是无法直连需要魔法,另一个则是不提供下载 crx 插件。
仔细研究一番,发现实际上 chrome 应用商店是提供 crx 文件的,只是浏览器不会显式的下载,而是后台下载自动安装,可以通过抓包查看网络请求,得到 crx 文件的 url。
接下来讲解如何获取 crx 文件。
分析过程
以下载 JSON Viewer Pro 插件为例:
F12 打开开发者工具切换到网络(NetWork),再点击页面上的 "添加至 Chrome" 按钮,此时发现网络中的这几条请求没有与插件有任何联系。
- 既然在浏览器中无法查看到与插件有关的网络请求,那么只能使用抓包工具来尝试一下了。
打开 Fiddler ,选择菜单上的 Tools - Options - HTTPS,打开 https 请求的设置项,勾选捕获 https 请求和解密 https 流量。
- 然后点击清除按钮清除所有请求。
- 此时点击 chrome 应用商店的 "添加至 Chrome" 按钮,360 浏览器会提示是否添加,此时捕获到的网络请求仍无有价值的信息。
- 点击添加按钮,可以发现
/service/update2/crx
开头的请求 url 中包含一串 id (eifflpmocdbdmepbjaopkkhbfmdgijcc
),与当前插件页面的 url 上的地址中的 id 一致。
直接访问此地址 clients2.google.com/service/upd...
发现浏览器会提示是否添加该程序。
将该地址粘贴到下载工具中,即可下载到 crx 文件。
结论
通过抓包可以获取 crx 文件的 url,通过替换 url 上的插件 id ,即可下载不同插件的 crx 文件。同时 url 上的参数包括系统类型、系统位数、浏览器版本等信息,或许传递不同参数下载到的 crx 文件有差异,无法完全通用。
大家可以抓一次包获取自己浏览器安装插件时的网络请求,之后就可以替换不同的插件 id 下载各种插件。