5 ms·
The README mentions that some Dropbox source code is included, though I don't see it in the repo? We include Dropbox's Python 2.5 bytecode Dropbox is pretty
by biofunsf 8y ago
The README mentions that some Dropbox source code is included, though I don't see it in the repo?
We include Dropbox's Python 2.5 bytecode
Dropbox is pretty well known for building their desktop clients in Python. I recall they're stuck on Python 2 and use some obfuscation and opcode remapping with a custom interpreter so its a little hard to decompile but still possible. Would love to see what this decompiler can generate for them though.
- loeg 8y ago> I recall they're stuck on Python 2 and use some obfuscation and opcode remapping with a custom interpreter so its a little hard to decompile but still possible. https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one-of-the-largest-python-3-migrations-ever/ https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one... Currently (custom) Python 3.5, I guess.
- gizmo385 8y agoAm I missing the details in their blog post or do they detail the customizations that they've made to Python 3.5 to suit their purposes?
- loeg 8y agoI also don't see any details of their Python 3.x customization in that blog post.
- sametmax 8y agoYes, they hired Guido after all, and sponsor mypy to help with the migration as well.
- deckar01 8y ago> There are also customized Python interpreters, notably Dropbox, which use their own magic and encrypt bytcode. With the exception of the Dropbox's old Python 2.5 interpreter this kind of thing is not handled.
- tyingq 8y agoHere's the original presentation back when they decompiled it: https://www.usenix.org/conference/woot13/workshop-program/presentation/kholia https://www.usenix.org/conference/woot13/workshop-program/pr... And the paper: https://www.usenix.org/system/files/conference/woot13/woot13-kholia.pdf https://www.usenix.org/system/files/conference/woot13/woot13... Basically, dropbox remapped the op codes to different values and shipped rc4 encrypted pyc files with a custom python binary that had the key inside it.