Alat ini hanyalah implementasi terbaru yang memecahkan lapisan enkripsi dan kebingungan yang diterapkan Dropbox pada interpreter Python yang dimodifikasi. Ini didasarkan pada pekerjaan yang dilakukan penulis, banyak bulan yang lalu dan juga pekerjaan publik yang dilakukan oleh orang lain. Untuk informasi lebih lanjut silakan lihat posting blog.
Rilis awal.
Kode ini diperbarui untuk meregenerasi database opcode menggunakan Python 3.7. Sekarang juga memeriksa versi Uncompyle6 yang diinstal (> = 3.5.x) sehingga memberikan kesalahan saat Uncompyle6 diinstal tetapi sangat ketinggalan zaman. Beberapa bug diperbaiki dalam pembuatan pemetaan opcode. Terima kasih kepada @slinkinone karena telah mengirimi saya email dan membantu saya men-debug beberapa masalah.
uncompyle6 diinstal. Anda dapat melakukan ini dengan: pip3 install uncompyle6
Jalankan skrip bash fetchdeps.sh yang disertakan. Ini akan mengambil kode sumber Python serta mengunduh versi terbaru dari Dropbox untuk Linux Tarball. Kode sumber Python hanya diperlukan jika seseorang ingin meregenerasi database Opcode.
Harap dicatat bahwa Python 3.7 adalah persyaratan untuk kedua panggilan berikut untuk bekerja karena perubahan dilakukan untuk >=3.8 jenis kode yang mendasari dll.
Jalankan yang berikut ini untuk membongkar, mendekripsi, dan mendekompilasi sebagian besar kode sumber Python Dropbox. Ini akan mengekstraksi ke direktori default yang out :
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
Yang akan menghasilkan sesuatu seperti berikut:
...
| ============================== | ======= | ======= |
| 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 . Untuk informasi lebih lanjut tentang ini, silakan lihat blogpost lagi. Modifikasi sesuka hati dan kemudian menggunakannya seperti ini untuk mengatur lingkungan dan menjalankan Dropbox. eval `python3 setenv.py`
~/.dropbox-dist/dropbox-lnx_64-71.4.108/dropbox