Dieses Tool ist nur die neueste Implementierung, die die Verschlüsselungs- und Verschleierungschichten, die Dropbox für ihren modifizierten Python -Dolmetscher anwendet, durchbricht. Es basiert auf Arbeit, die der Autor vor vielen, viele Monden sowie öffentliche Arbeiten von anderen geleistet hat. Weitere Informationen finden Sie im Blogpost.
Erstveröffentlichung.
Der Code wurde aktualisiert, um die Opcode -Datenbank mit Python 3.7 zu regenerieren. Es wird nun auch überprüft, ob die Version von Uncompyle6 installiert wird (> = 3.5.x), so dass es einen Fehler ergibt, wenn Uncompyle6 installiert ist, aber sehr veraltet ist. In der Erzeugung der Opcode -Zuordnung wurden mehrere Fehler behoben. Vielen Dank an @Slinkinone für die Entsendung von E-Mails und beim Debuggen einiger Probleme.
uncompyle6 installiert ist. Sie können dies mit: pip3 install uncompyle6
Führen Sie das mitgelieferte fetchdeps.sh Bash -Skript aus. Dadurch wird der Python -Quellcode abgerufen und die neueste Version der Dropbox für Linux -Tarball heruntergeladen. Der Python -Quellcode wird nur benötigt, wenn man die Opcode -Datenbank regenerieren möchte.
Bitte beachten Sie, dass Python 3.7 eine Voraussetzung für beide folgenden Aufrufe zur Arbeit ist, da Änderungen an >=3.8 zugrunde liegende Codetypen usw. vorgenommen wurden.
Führen Sie Folgendes aus, um den größten Teil des Dropbox -Python -Quellcodes zu entpacken, zu entschlüsseln und zu dekompilieren. Es wird in ein Standardverzeichnis extrahiert, das mit dem out heißt:
python3 unpacker.py --dropbox-zip `find . -name python-packages-37.zip`
find . -name python-packages-37.zip | xargs python3.7 gendb.py --python-dir tmp/Python-3.7.4/ --db opcode.db --dropbox-zip
python3 patchzip.py --dropbox-zip `find . -name python-packages-37.zip` --output-zip out.zip
mv out.zip ~/.dropbox-dist/dropbox-lnx_64-71.4.108/python-packages-37.zip
~/.dropbox-dist/dropbox-lnx_64-71.4.108/dropbox
python3 checkdb.py --db opcodemap.db
Das wird so etwas wie folgt hervorrufen:
...
| ============================== | ======= | ======= |
| OPCODE | PYTHON | DROPBOX |
| ============================== | ======= | ======= |
| POP_TOP | 1 | 24 |
| ROT_TWO | 2 | 1 |
| ROT_THREE | 3 | 83 |
| DUP_TOP | 4 | 66 |
| UNARY_POSITIVE | 10 | 77 |
...
setenv.py siehe. Weitere Informationen dazu finden Sie erneut im Blogpost. Ändern Sie nach Belieben und verwenden Sie sie dann so, um die Umgebung einzurichten und Dropbox auszuführen. eval `python3 setenv.py`
~/.dropbox-dist/dropbox-lnx_64-71.4.108/dropbox