Kann ich die Inhaltsprüfung für Chrome-Erweiterungen deaktivieren?

15

Google Chrome-Erweiterungen werden seit kurzer Zeit "inhaltsverifiziert", dh, andere Apps können sie nicht "hacken". Eine gute Sache, aber unglaublich nervig, weil ich sie die ganze Zeit hacke, um sie zu optimieren und zu verbessern.

Nahezu unmittelbar nach dem Speichern einer Erweiterungsdatei wird die Erweiterung deaktiviert und auf der Seite mit den lokalen Erweiterungen wird eine Meldung angezeigt:

Diese Erweiterung ist möglicherweise beschädigt

Kann ich diese Sicherheitsfunktion deaktivieren und weiter hacken? Ich möchte der Chef meines Browsers sein, nicht umgekehrt.

Es gibt eine Chromfahne ( extension-content-verification), aber wie die Beschreibung sagt:

Dies kann verwendet werden, um diese Funktion zu aktivieren, wenn sie ansonsten nicht aktiviert worden wäre, kann jedoch nicht zum Deaktivieren verwendet werden (da diese Einstellung durch Malware manipuliert werden kann).

Rudie
quelle
Sie können es von Google nicht deaktivieren. Sie können also nur die kanarische Version von Google Chrome verwenden, die für Entwickler wie Sie bestimmt ist.
Tomer
Ich möchte nicht auf Chrome entwickeln, aber einige Erweiterungen. Ich benutze Canary heute nicht zum Verchromen. Seltsam, es ist nicht deaktivierbar. Es ist neu. Irgendwie war das in den letzten 4 Jahren kein Problem?
Rudie
Es ist eine neue Funktion, die verhindern soll, dass bösartige Software ohne Wissen des Nutzers eine eigene Erweiterung in Chrome hinzufügt.
Tomer
Sie können versuchen, bestimmte URLs zu blockieren, die Chrome zum Abrufen der Hashes der Erweiterungen verwendet. (unter Verwendung eines HTTPS-Proxys)
Tomer
Das Hinzufügen chrome.google.comzu meinem hostsfunktioniert nicht = (Wahrscheinlich haben sie ein eigenes DNS-System oder so. Es gibt ein Flag, aber "[..] kann nicht zum Deaktivieren verwendet werden (da diese Einstellung durch Malware manipuliert werden kann)" Verdammt
Rudie

Antworten:

11

Es gibt eine vierte Möglichkeit, dieses Problem zu beheben und das Erkennungssystem vollständig zu umgehen. Da Sie erwähnen, dass Sie Ihre Erweiterungen hacken möchten, bedeutet dies, dass Sie über Kenntnisse in der Entwicklung von Erweiterungen verfügen. Es versteht sich auch, dass Erweiterungen von Natur aus Quellcode sind. Dies bedeutet, dass Sie die gesamte Quelle zum Spielen haben. Davon abgesehen ...

Die vierte Methode ist wie folgt relativ einfach:

  1. Suchen Sie die Erweiterung im Ordner "Erweiterungen" unter den Anwendungsdaten von Chrome
  2. Kopieren Sie den gesamten Ordner der Erweiterung und fügen Sie ihn an einer anderen Stelle ein
  3. Deaktivieren Sie die ursprüngliche Erweiterung in Chrome
  4. Benennen Sie den neu kopierten abcsoupname-Erweiterungsordner in MyNewExtension um
  5. Wechseln Sie in den Ordner MyNewExtension
  6. Löschen Sie _metadata
  7. Bearbeiten Sie manifest.json und entfernen Sie die Abschnitte key und update_url . Ändern Sie die Abschnitte name und short_name , um Verwechslungen mit der anderen deaktivierten Erweiterung zu vermeiden.
  8. Überprüfen und korrigieren Sie Ihre manifest.json auf jsonlint.com
  9. Gehen Sie zu den Einstellungen => Erweiterungen
  10. Aktivieren Sie den Entwicklermodus und dann "Unpacked Extension laden" für den neuen Ordner, den Sie gerade erstellt haben.
  11. Voila. Eine neue Version dieser Erweiterung unterliegt nicht der Inhaltskontrolle.

Sie können diese Erweiterung jetzt nach Ihren Wünschen bearbeiten, bearbeiten und verwalten. Sie müssen bei jeder Änderung im Erweiterungsbereich auf Neu laden klicken. Außerdem erhalten Sie keine Updates vom ursprünglichen Entwickler. Sie müssen also regelmäßig aktualisieren und einen Weg finden, um aktualisierte Änderungen in Ihrem separaten Erweiterungscode zusammenzuführen. Möglicherweise können Sie die update_url intakt lassen, sie löscht jedoch wahrscheinlich alle Änderungen, die Sie beim nächsten Update vornehmen. Deshalb schlage ich vor, es zu entfernen. Sie können jedoch gerne experimentieren.

Wenn Sie die ursprüngliche Erweiterung deaktiviert lassen, können Sie sie aktivieren und regelmäßig Updates für die Autorenversion erhalten. Sie können dann die Unterschiede zwischen Ihrer benutzerdefinierten Version und der Version des Autors vergleichen und alle erforderlichen Änderungen vornehmen. Ich kann diesen Update-Ansatz für Ihre neue benutzerdefinierte Erweiterung nur empfehlen. Wenn Sie update_url aktiviert lassen , werden Ihre Änderungen beim nächsten Update wahrscheinlich gelöscht (vorausgesetzt, dies funktioniert auch bei einer geänderten Erweiterung ordnungsgemäß). Da einige Erweiterungen nur selten aktualisiert werden, kann es sein, dass Sie erst Monate später feststellen, welche Änderungen Sie vorgenommen haben, wenn das nächste Update veröffentlicht wird.

Sie müssen diese Schritte auch für jede Erweiterung ausführen, an der Sie sie ändern möchten. Tatsächlich erstellen Sie eine brandneue Erweiterung unter Verwendung der Codebasis einer vorhandenen Erweiterung und versetzen diese Erweiterung dann in den Entwicklermodus.

Hinweis: Verwenden Sie TextEdit von Mac nicht zum Bearbeiten von JSON-Dateien. Andernfalls wird "durch" oder "ersetzt und die JSON-Syntaxprüfung wird nicht bestanden.

Commorancy
quelle
Dies wurde bereits erwähnt. Es ist eine anständige Lösung, aber ich möchte Updates erhalten. Stattdessen habe ich Fehler akzeptiert und ich fühle mich groß dabei. Vielen Dank für die Schritte =)
Rudie
1
Die Schwierigkeit ist, dass Sie die Erweiterung bearbeiten und Updates haben möchten. Das schließt sich gegenseitig aus. Wenn Sie eine Erweiterung bearbeiten, gehen beim Update möglicherweise alle Änderungen verloren, da Sie sich merken müssen, was Sie geändert haben. Dies kann schwierig sein, wenn es Monate später ist. Das Deaktivieren von Updates und das manuelle Zusammenführen von Änderungen ist die einzige Möglichkeit, dies zu verwalten.
Commorancy
Ein Update ist nur eine Zusammenführung mit meiner gehackten Version. Zusammenführungen können klug sein. Wenn nicht, ist es ein Zusammenführungskonflikt, den ich lösen kann. Stattdessen habe ich den paranoiden Ansatz gewählt und keine Contrib-Erweiterung verwendet, nur kopiert und gehackt, wie Sie sagen. Sehr späte Antwort, sorry.
Rudie
Das funktioniert nicht mehr. Wenn Ihre Erweiterung nicht im App Store verfügbar ist, wird sie deaktiviert und kann nicht erneut aktiviert werden, ohne sie zu entfernen und erneut hinzuzufügen.
Wolfish
Hallo Wolfish, das ist definitiv nicht wahr. Entwickler müssen in der Lage sein, Erweiterungen lokal auf ihrem System zu entwickeln. Aus diesem Grund bietet Chrome einen Entwicklermodus an. In Schritt 10 werden Sie feststellen, dass Sie den Entwicklermodus aktivieren müssen. Das ist der Schlüssel. Ohne aktivierten Dev-Modus können Sie keine externen Erweiterungen laden. Entwickler können keine Erweiterungen erstellen, indem sie gezwungen werden, sie zum Testen in den Store hochzuladen, wodurch auch unfertiger Code für die Öffentlichkeit zugänglich gemacht wird (was noch riskanter ist). Chrome fordert Sie jedoch sehr sorgfältig auf, den Dev-Modus bei jedem Neustart von Chrome zu deaktivieren.
Commorancy
6

Da Sie in Google die Funktion zur Überprüfung von Erweiterungsinhalten in keiner Weise deaktivieren können, können Sie die folgenden Probleme umgehen:

  1. Verwenden Sie die kanarische Version von Chrome, mit der Sie Erweiterungen bearbeiten und Ihre eigenen Erweiterungen ohne Warnung hinzufügen können
  2. Kopieren Sie das Erweiterungsverzeichnis an eine andere Stelle, löschen Sie den _metadataOrdner und laden Sie ihn im Entwicklermodus. Der Nachteil dieser Problemumgehung besteht darin, dass jedes Mal, wenn Sie Chrome öffnen, eine Meldung angezeigt wird, in der Sie aufgefordert werden, die Erweiterung zu deaktivieren. (weil es im Entwicklermodus ist)
  3. Verhindern Sie, dass Chrome die Hashes der Erweiterung abruft, sodass der Inhalt nicht überprüft werden kann. Der Nachteil dieser Problemumgehung besteht darin, dass Sie andere Erweiterungen möglicherweise nicht herunterladen oder aktualisieren können.

    Um dies zu tun:

    1. Fügen Sie die Zeile 127.0.0.1 clients2.googleusercontent.comin Ihre hostsDatei ein (normalerweise unter C:\Windows\System32\drivers\etc)
    2. Leeren Sie den DNS-Cache von Chrome oder warten Sie einige Minuten
    3. Schließen Sie Chrome und nehmen Sie einige Änderungen an der Erweiterung vor
    4. Löschen Sie den _metadataOrdner aus dem Verzeichnis der Erweiterung (in dem die ursprünglichen Hashes gespeichert sind).
    5. Starten Sie Chrome neu

Sie können auch einen HTTPS-Proxyserver verwenden, um nur die relevanten Anforderungen zu blockieren. Dies wäre jedoch zu schwierig.

Tomer
quelle
1. scheint etwas zu tun =) aber jetzt kann ich keine Erweiterungen herunterladen, und es ist immer noch blockiert. Versuch # 2.Mehr morgen.
Rudie
Sagt es immer noch, dass es beschädigt ist? Versuchen Sie, den _metadataOrdner zu löschen, in dem die Hashes von Google gespeichert sind.
Tomer
Das funktioniert, aber jetzt kann ich keine anderen Erweiterungen herunterladen ... Warum wird nicht nur von heruntergeladen chrome.google.com, sondern es wird eine andere Domain überprüft? Müssen das immer schwer machen. Ich denke nicht, dass ein HTTPS-Proxy möglich ist. Sie haben wahrscheinlich den MITM-Ansatz abgedeckt. (2) ist wohl die beste lösung, ich habe sowieso schon ein paar dev ext am laufen. Keine Updates = (Danke!
Rudie
Okay, aber ich glaube nicht, dass sie wirklich etwas gegen MITM unternehmen können, wenn Sie Ihrem Computer anweisen, Ihrer eigenen Zertifizierungsstelle zu vertrauen. vielleicht probier mal mitmproxy oder so.
Tomer