lookinsidethebox
1.0.0
このツールは、Dropboxが変更されたPythonインタープリターに適用される暗号化と難読化層を破る最新の実装にすぎません。それは、著者が他の人によって行われた公共事業と同様に、多くの月の前に何度も行った仕事に基づいています。詳細については、BlogPostをご覧ください。
初期リリース。
このコードは、Python 3.7を使用してOpCodeデータベースを再生するために更新されました。また、インストールされているuncompyle6のバージョン(> = 3.5.x)のバージョンをチェックして、uncompyle6がインストールされているが非常に時代遅れになったときにエラーが発生するようにします。オペコードマッピングの生成でいくつかのバグが修正されました。私に電子メールを送ってくれて、いくつかの問題のデバッグを手伝ってくれた@slinkinoneに感謝します。
uncompyle6がインストールされていることを確認してください。あなたはこれを行うことができます: pip3 install uncompyle6
付属のfetchdeps.sh bashスクリプトを実行します。これにより、Pythonソースコードが取得され、Linux Tarball用のDropboxの最新バージョンがダウンロードされます。 Pythonソースコードは、OpCodeデータベースを再生したい場合にのみ必要です。
Python 3.7は、変更が>=3.8基礎となるコードタイプなどに加えられたため、次の両方の動作呼び出しの両方の要件であることに注意してください。
以下を実行して、Dropbox Pythonソースコードのほとんどを開梱、復号化、および逆コンパイルします。 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
それは次のようなものをもたらします:
...
| ============================== | ======= | ======= |
| 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スクリプトを参照してください。これの詳細については、BlogPostをもう一度ご覧ください。自由に変更してから、このように使用して環境をセットアップし、Dropboxを実行します。 eval `python3 setenv.py`
~/.dropbox-dist/dropbox-lnx_64-71.4.108/dropbox