不久前,谷歌浏览器扩展程序都经过了“内容验证”,这意味着其他应用程序无法“破解”它们。这是一件好事,但却非常烦人,因为我一直在破解它们,以进行调整和改进。
保存扩展文件后几乎立即禁用该扩展,并在本地扩展页面上显示一条消息:
此扩展可能已损坏
有什么方法可以禁用此“安全”功能并继续黑客攻击?我想成为浏览器的主人,而不是相反。
有一个 chrome 标志(extension-content-verification
),但正如描述所说:
如果此功能无法打开,则可以使用它来打开此功能,但不能使用它来关闭它(因为此设置可能被恶意软件篡改)。
答案1
还有第四种方法可以解决这个问题并完全避开检测系统。既然你提到你想破解你的扩展,这意味着你对扩展开发有一定的了解。还应该理解,扩展本质上是源代码。这意味着你可以摆弄整个源代码。话虽如此……
第四种方法比较简单,具体如下:
- 在 Chrome 的应用程序数据下的扩展文件夹中找到该扩展程序
- 复制整个扩展文件夹并将其粘贴到其他地方
- 在 Chrome 中禁用原始扩展程序
- 将新复制的 abcsoupname 扩展文件夹重命名为 MyNewExtension
- 更改为 MyNewExtension 文件夹
- 删除 _metadata
- 编辑 manifest.json 并删除钥匙和更新网址部分。更改姓名和简称部分以避免与其他禁用的扩展混淆。
- 验证并更正您的 manifest.jsonjsonlint.com
- 转到设置=>扩展
- 启用开发者模式,然后在刚刚创建的新文件夹上“加载解压的扩展”。
- 瞧瞧。此扩展的新版本不受内容控制。
现在,您可以根据需要编辑、操作和管理此扩展。每次进行更改时,都需要单击扩展区域中的“重新加载”。此外,您不会收到原始开发人员的更新。因此,您需要定期更新,并想办法将更新的更改合并到单独的扩展代码中。您可以离开更新网址完整无损,但它可能会抹去您在下次更新时所做的任何更改。这就是我建议删除它的原因。不过,请随意尝试。
通过禁用原始扩展,您可以启用它并定期接收作者版本的更新。然后,您可以比较自定义版本和作者版本之间的差异,并合并任何必要的更改。我强烈建议您对新的自定义扩展采用这种更新方法。如果您选择保留更新网址激活后,它很可能会在下次更新时清除您的更改(假设这在经过修改的扩展上也能正常工作)。由于某些扩展不经常更新,因此几个月后,当下一次更新发布时,您可能会手忙脚乱地确定您更改了什么。
您还需要对要修改的任何扩展执行这些步骤。实际上,您正在使用现有扩展的代码库创建一个全新的扩展,然后将此扩展置于开发者模式。
注意,不要使用 Mac 的 TextEdit 来编辑 json 文件,否则它会将 " 替换为“ 或 ”,并导致 json 语法检查失败。
答案2
由于 Google 不允许您以任何方式禁用扩展内容验证功能,因此您可能的解决方法基本上是:
- 使用 Chrome 的金丝雀版,它允许您编辑扩展程序并添加自己的扩展程序,而不会出现任何警告
- 将扩展目录复制到其他地方,删除该
_metadata
文件夹并在开发者模式下加载它。这种解决方法的缺点是每次打开 chrome 时都会看到一条消息,要求您禁用该扩展。(因为它处于开发者模式) 阻止 Chrome 获取扩展程序的哈希值,这样它就无法验证其内容。此解决方法的缺点是您可能无法下载\更新其他扩展程序。
去做这个:
- 将此行添加
127.0.0.1 clients2.googleusercontent.com
到您的hosts
文件中(通常在C:\Windows\System32\drivers\etc
) - 清除 chrome 的 DNS 缓存或等待几分钟
- 关闭 Chrome 并对扩展程序进行一些更改
_metadata
从扩展目录(存储原始哈希值)中删除该文件夹- 重新启动 Chrome
- 将此行添加
您也可以使用 HTTPS 代理服务器来仅阻止相关请求,但这太过黑客行为。