我可以禁用 Chrome 的扩展内容验证吗?

Rud*_*die 25 google-chrome google-chrome-extensions

不久之后,谷歌浏览器扩展程序是“内容验证”的,这意味着其他应用程序无法“破解”它们。这是一件好事,但非常烦人,因为我一直在修改它们,以进行调整和改进。

几乎在保存扩展文件后,扩展将被禁用,并且在本地扩展页面上显示一条消息:

此扩展程序可能已损坏

有没有办法可以禁用此“安全”功能并继续进行黑客攻击?我想成为浏览器的老大,而不是相反。

有一个镀铬标志 ( extension-content-verification),但正如描述所说:

如果它本来不会被打开,则可用于打开此功能,但不能用于将其关闭(因为此设置可能会被恶意软件篡改)。

Com*_*ncy 20

还有第四种方法可以管理这个问题并完全避免检测系统。既然你提到你想破解你的扩展,这意味着你对扩展开发有一些了解。还应理解,扩展本质上是源代码。这意味着您可以处理整个源代码。话虽如此...

第四种方法比较简单如下:

  1. 在 Chrome 的应用程序数据下的 Extensions 文件夹中找到该扩展程序
  2. 复制整个扩展的文件夹并将其粘贴到其他地方
  3. 在 Chrome 中禁用原始扩展
  4. 将新复制的 abcsoupname 扩展文件夹重命名为 MyNewExtension
  5. 更改为 MyNewExtension 文件夹
  6. 删除_metadata
  7. 编辑 manifest.json 并删除keyupdate_url部分。更改nameshort_name部分以避免与其他禁用的扩展混淆。
  8. jsonlint.com 上验证并更正您的 manifest.json
  9. 转到设置=>扩展
  10. 在您刚刚创建的新文件夹上启用开发人员模式,然后“加载未打包的扩展”。
  11. 瞧。此扩展的新版本不受内容控制。

您现在可以根据需要编辑、操作和管理此扩展程序。每当您进行更改时,您都需要从扩展区域单击重新加载。此外,您不会收到来自原始开发人员的更新。因此,您需要定期更新并找出将更新的更改合并到单独的扩展代码中的方法。您可以保持update_url不变,但它可能会清除您在下次更新时所做的任何更改。这就是为什么我建议删除它。不过,请随意尝试。

通过禁用原始扩展,这将允许您启用它并定期接收作者版本的更新。然后,您可以比较自定义版本和作者版本之间的差异,并合并任何必要的更改。我强烈推荐这种更新方法用于您的新自定义扩展。如果您选择让update_url 保持活动状态,它可能会在下次更新时清除您的更改(假设这甚至可以在修改后的扩展程序上正常工作)。由于某些扩展不经常更新,这可能会让您在几个月后发布下一个更新时争先恐后地确定您更改了什么。

您还需要在要修改它的任何扩展上执行这些步骤。实际上,您正在使用现有扩展的代码库创建一个全新的扩展,然后将此扩展置于开发人员模式。

注意,不要使用 Mac 的 TextEdit 来编辑 json 文件,否则它会用“或”替换“或”并导致 json 语法检查失败。

  • 困难在于您想要编辑扩展并进行更新。这是互相排斥的。如果您编辑扩展程序,则更新后您可能会丢失所有更改,而必须记住更改的内容。如果是几个月后,这可能会很困难。禁用更新并手动合并更改是管理此问题的唯一可行方法。 (2认同)

Tom*_*mer 8

由于 Google 不允许您以任何方式禁用扩展内容验证功能,因此您可能的解决方法基本上是:

  1. 使用 Chrome 的 Canary 版,它可以让您编辑扩展程序并添加自己的扩展程序,而不会发出任何警告
  2. 将扩展目录复制到其他地方,删除_metadata文件夹并在开发人员模式下加载它。此解决方法的缺点是每次打开 chrome 时,您都会看到一条消息,要求您禁用该扩展程序。(因为是开发者模式)
  3. 阻止 Chrome 获取扩展程序的哈希值,使其无法验证其内容。此解决方法的缺点是您可能无法下载\更新其他扩展。

    去做这个:

    1. 将该行添加127.0.0.1 clients2.googleusercontent.com到您的hosts文件中(通常在C:\Windows\System32\drivers\etc
    2. 清除chrome的DNS缓存或等待几分钟
    3. 关闭 Chrome 并对扩展程序进行一些更改
    4. 删除 _metadata从扩展的目录中文件夹(存储原始哈希)
    5. 重新启动 Chrome

您也可以使用 HTTPS 代理服务器来仅阻止相关请求,但这太麻烦了。