Этот инструмент является лишь последней реализацией, которая разрушает слои шифрования и запутывания, которые Dropbox применяет к своему модифицированному интерпретатору Python. Это основано на работе, которую автор сделал много, много лун назад, а также общественную работу, выполненную другими. Для получения дополнительной информации, пожалуйста, смотрите блог.
Первоначальный выпуск.
Код был обновлен для восстановления базы данных OPCODE с использованием Python 3.7. Теперь он также проверяет на установленную версию Endpyle6 (> = 3.5.x), так что она дает ошибку, когда установлен Mendpyle6, но он очень устарел. Несколько ошибок были зафиксированы в генерации картирования OpCode. Спасибо @slinkinone за то, что он отправил мне электронные письма и помог мне отладки некоторых проблем.
uncompyle6 установлен. Вы можете сделать это с: pip3 install uncompyle6
Запустите прилагаемый сценарий bash fetchdeps.sh . Это принесет исходный код Python, а также загрузит последнюю версию Dropbox для Linux Tarball. Исходный код 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 . Для получения дополнительной информации об этом, пожалуйста, посмотрите снова блог. Измените AT Will, а затем используйте ее так, чтобы настроить среду и запустить Dropbox. eval `python3 setenv.py`
~/.dropbox-dist/dropbox-lnx_64-71.4.108/dropbox