Verschleierung des Python-Bytecodes durch Interpreter-Mutation

Tatsächlich hat Dropbox es sehr gut gemacht, sie waren in der Lage, ihre in Python erstellte Desktop-Anwendung zu sichern. Ich habe viel recherchiert, aber es gibt keine bessere Lösung als die Verschleierung, die nicht sehr sicher ist, und am Ende wird Ihr Code irgendwo hochgeladen.

Ich habe mir eine Session von angehörtGiovanni Bajo (Der Gründer von PyInstaller) sagte, Dropbox mache das:

Bytecode-Scrambling durch Neukompilieren des CPython-Interpreters. Dadurch kann der Standard-CPython-Interpreter nur den neu kompilierten cpython-Interpreter ausführen.Alles, was Sie tun müssen, ist, die Zahlen unter dem zu mischendefine loadup 8.

Ich habe den Quellcode von Python noch nie durchgesehen, daher werde ich nicht behaupten, dass ich die obigen Wörter vollständig verstehe.

Ich muss die Stimme von Experten hören: Wie macht man so etwas? Und ob ich meine Anwendung nach der Neukompilierung mit den verfügbaren Tools wie PyInstaller packen kann?

Aktualisieren:

Ich habe einige Nachforschungen darüber angestellt, wie Dropbox diese Art der Verschleierung / Mutation durchführt, und dabei Folgendes festgestellt:

GemäßHagen Fritschtun sie es in zwei Stufen:

Sie verwenden die TEA-Verschlüsselung zusammen mit einem RNG, das von einigen Werten im Code-Objekt jedes Python-Moduls gesetzt wird. Sie passten den Interpreter entsprechend an

a) Entschlüsselt die Module und

b) Verhindert den Zugriff auf die entschlüsselten Code-Objekte.

Dies wäre der einfache Weg gewesen, Dropbox alles entschlüsseln zu lassen und die Module mit dem eingebauten Marshaller zu entleeren.

Ein weiterer Trick ist das manuelle Verwürfeln der Opcodes. Leider konnte dies nur halbautomatisch behoben werden, so dass sich ihre monoalphabetische Substitutions-Chiffre als ziemlich effektiv erwies, um einige Zeit zu gewinnen.

Ich möchte immer noch mehr Einsichten darüber, wie dies getan werden könnte. Außerdem weiß ich nicht, wie die Entschlüsselung in diesem Prozess abläuft. Ich möchte die Stimme aller Experten hier haben.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage