All Projects → anvilventures → Lookinsidethebox

anvilventures / Lookinsidethebox

Licence: other
Breaks the encryption and obfuscation layers that Dropbox applies to their modified Python interpreter.

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Lookinsidethebox

Fishchat
Hook WeChat.app on non-jailbroken devices.
Stars: ✭ 1,139 (+1323.75%)
Mutual labels:  reverse-engineering
Rhea
A Mac status bar app for quickly sharing files and links.
Stars: ✭ 73 (-8.75%)
Mutual labels:  dropbox
Ida gel
A collection of IDA loaders for various game console ELF's. (PS3, PSVita, WiiU)
Stars: ✭ 76 (-5%)
Mutual labels:  reverse-engineering
Pmd Red
Decompilation of Pokémon Mystery Dungeon: Red Rescue Team
Stars: ✭ 65 (-18.75%)
Mutual labels:  reverse-engineering
D2s Format
Diablo II Save File Format (.d2s format)
Stars: ✭ 71 (-11.25%)
Mutual labels:  reverse-engineering
Markdownxiaoshujiang
markdownxiaoshujiang
Stars: ✭ 1,188 (+1385%)
Mutual labels:  dropbox
Chimay Red
Mikrotik RouterOS (6.x < 6.38.5) exploit kit. Reverse engineered from the "Vault 7" WikiLeaks publication.
Stars: ✭ 63 (-21.25%)
Mutual labels:  reverse-engineering
Open Desk Lamp Firmware
Open source firmware for the xiaomi desk lamp
Stars: ✭ 78 (-2.5%)
Mutual labels:  reverse-engineering
App Peid
PEiD detects most common packers, cryptors and compilers for PE files.
Stars: ✭ 72 (-10%)
Mutual labels:  reverse-engineering
Icsref
A tool for reverse engineering industrial control systems binaries.
Stars: ✭ 75 (-6.25%)
Mutual labels:  reverse-engineering
Flysystem Dropbox
Flysystem Adapter for Dropbox [ABANDONED] replacement: https://packagist.org/packages/spatie/flysystem-dropbox
Stars: ✭ 67 (-16.25%)
Mutual labels:  dropbox
Entityframework Reverse Poco Generator Ui
A simple UI to allow you to easily select which tables you want the EntityFramework Reverse POCO Code First Generator to use.
Stars: ✭ 69 (-13.75%)
Mutual labels:  reverse-engineering
Arcore Patch
Attempt to get ARCore Preview 2 running on unsupported devices
Stars: ✭ 74 (-7.5%)
Mutual labels:  reverse-engineering
Stratatools
Stratasys EEPROM tool
Stars: ✭ 65 (-18.75%)
Mutual labels:  reverse-engineering
Pokepinball
Disassembly of Pokémon Pinball
Stars: ✭ 77 (-3.75%)
Mutual labels:  reverse-engineering
Cyberduck
Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
Stars: ✭ 1,080 (+1250%)
Mutual labels:  dropbox
Dainsleif
⚡️ A simple model cheat for CSGO a.k.a. Counter-Strike: Global Offensive.
Stars: ✭ 74 (-7.5%)
Mutual labels:  reverse-engineering
Slides
won't maintain
Stars: ✭ 79 (-1.25%)
Mutual labels:  reverse-engineering
Botw Re Notes
Reverse engineering notes and tools for The Legend of Zelda: Breath of the Wild
Stars: ✭ 78 (-2.5%)
Mutual labels:  reverse-engineering
Rms Runtime Mobile Security
Runtime Mobile Security (RMS) 📱🔥 - is a powerful web interface that helps you to manipulate Android and iOS Apps at Runtime
Stars: ✭ 1,194 (+1392.5%)
Mutual labels:  reverse-engineering

Look inside the box

This tool is just the latest implementation that breaks the encryption and obfuscation layers that Dropbox applies to their modified Python interpreter. It's based on work the author did many, many moons ago as well as public work done by others. For more information please see the blogpost.

Updates

May, 2019

Initial release.

October, 2019

The code was updated to regenerate the opcode database using Python 3.7. It now also checks for the version of uncompyle6 being installed (>= 3.5.x) such that it gives an error when uncompyle6 is installed but is very outdated. Several bugs were fixed in the generation of the opcode mapping. Thanks to @slinkinone for sending me e-mails and helping me out with debugging some of the issues.

Requirements

  • Have a recent Python 3.x installation for the unpacking.
  • Make sure that uncompyle6 is installed. You can do this with:
pip3 install uncompyle6
  • For regenerating the opcode database make sure that the Python version installed is 3.7. Please note that there's already a version of this opcode database mapping included so it shouldn't be necessary to rerun it.

Usage

  • Run the included fetchdeps.sh bash script. This will fetch the Python source code as well as download the latest version of the Dropbox for Linux tarball. The Python source code is only needed if one wants to regenerate the opcode database.

  • Please note that Python 3.7 is a requirement for BOTH of the following calls to work as changes were made to >=3.8 underlying code types etc.

  • Execute the following to unpack, decrypt and decompile most of the Dropbox Python source code. It will extract to a default directory named out:

python3 unpacker.py --dropbox-zip `find . -name python-packages-37.zip`
  • To regenerate the opcode mapping database use something like this.
find . -name python-packages-37.zip | xargs python3.7 gendb.py --python-dir tmp/Python-3.7.4/ --db opcode.db --dropbox-zip
  • To patch the ZIP file in the Dropbox distribution and rewrite the pyc files such that the SHA-256 hashes in there are known SHA-256 hashes use the following to rewrite and inject code into the 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
  • To dump the contents of the opcode mapping run the following.
python3 checkdb.py --db opcodemap.db

That will yield something like the following:

...
| ============================== | ======= | ======= |
| OPCODE                         |  PYTHON | DROPBOX |
| ============================== | ======= | ======= |
| POP_TOP                        |       1 |      24 |
| ROT_TWO                        |       2 |       1 |
| ROT_THREE                      |       3 |      83 |
| DUP_TOP                        |       4 |      66 |
| UNARY_POSITIVE                 |      10 |      77 |
...
  • To set the environment variables to enable hidden Dropbox functionality see the setenv.py script. For more information on this please see the blogpost again. Modify at will and then use it like this to setup the environment and run dropbox.
eval `python3 setenv.py`
~/.dropbox-dist/dropbox-lnx_64-71.4.108/dropbox
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].