Dropbox App Macos



Question or issue on macOS:

In Windows the Dropbox client uses python25.dll and the MS C runtime libraries (msvcp71.dll, etc). On OS X the Python code is compiled bytecode (pyc).

Download

My guess is they are using a common library they have written then just have to use different hooks for the different platforms.

Macos

What method of development is this? It clearly isn’t IronPython or PyObjC. This paradigm is so appealing to me, but my CS foo and Google foo are failing me.

How to solve this problem?

Macos

Solution no. 1:

Nov 20, 2020 This wikiHow will teach you how to use the Dropbox app on a Mac. The first thing you'll need to do is install the Dropbox app if you haven't already (we'll show you how below). Then you can start backing up your files, sharing them with others, and accessing them when you're on-the-go, all of which we've also covered below.

Access your Dropbox account in the Google Files app to browse files stored on your Chromebook and your Dropbox account i App for Windows 10 in S mode Installation, functionality, and information on the Dropbox desktop application for Windows 10 in S mode, also known as Connecting through a proxy server Most workplaces provide internet through. The Dropbox desktop application is available for Windows, Mac, and Linux operating systems. (Visit this article instead if you are running Windows 10 in S mode). Once installed, you’ll have the Dropbox desktop app, Dropbox in your taskbar (Windows) or menu bar (Mac), and a Dropbox folder on your computer.

Download

Dropbox uses a combination of wxPython and PyObjC on the Mac (less wxPython in the 0.8 series). It looks like they’ve built a bit of a UI abstraction layer but nothing overwhelming—i.e., they’re doing their cross-platform app the right way.

They include their own Python mainly because the versions of Python included on the Mac vary by OS version (and Dropbox supports back to 10.4 IIRC); also, they’ve customized the Python interpreter a bit to improve threading and I/O behavior.

(I do not work for Dropbox or have any inside knowledge; all I did was read their forums and examine the filenames in site-packages.zip in the Dropbox app bundle.)

Solution no. 2:

For WINDOWS, Dropbox have employed a module similar to py2exe to package all their .py scripts, required libraries, resources etc into the distribution that you have mentioned above (.exe, library.zip, MS C runtime library and python25.dll) so that they can be run without requiring Python installation. Here’s a sample code of how you can achieve this with py2exe.

Dropbox

Please see the tutorial here for more explanation.

PS: the number of files in the distribution can be controlled using the options parameter as shown in the above example.

Solution no. 3:

These guys reverse engineered Dropbox client code

http://www.openwall.com/presentations/WOOT13-Security-Analysis-of-Dropbox/
https://github.com/kholia/dedrop

Dropbox App Macos Download

Solution no. 4:

Indeed they do bundle their own Python 2.5.4 interpreter found at /Applications/Dropbox.app/Contents/MacOS/python. Poking around in /Applications/Dropbox.app/Contents/Resources/lib/python2.5/lib-dynload it looks to be bundled by PyObjC.

I’m no authority on this, but it seems it is exactly as you suggest in the OP:


My guess is they are using a common
library they have written then just
have to use different hooks for the
different platforms

Solution no. 5:

Python25.dll is probably not their application code, it is a dll containing a copy of the python interpreter which can be called from within a windows application. Those pyc files are probably there in some form on windows, but they might be in an archive or obfuscated.

Python is included in OS/X, so it would be possible for them to execute those pyc file without shipping a python, but would not be surprised if they have there own python version lurking in the app bundle.

I don’t know how dropbox builds there distributions, but there are several tools to bundle python apps into executable packages. Take a look at py2exe, py2app, and or cx_freeze.

Solution no. 6:

Recently I published an article on reversing the dropbox client on windows. It is available on slideshare.

In short,
On Windows dropbox uses py2exe. py2exe embeds the python dll as a resource within the executable. The compiled python source files aka pyc files are stored as a zip archive appended to the end of the executable (which is called an overlay).

Extracting the zip archive will give you the pyc files, but that is not the end of the story.
The pyc files are encrypted and not decompilable. They are decrypted only when they are loaded by the embedded python interpreter.

However there is a way to not bother too much about the encryption algorithm used. We can
directly grab decrypted code objects from memory letting dropbox do the decryption for us.

Hope this helps!

Shake. Drag. Drop.

Using Dropover couldn't be simpler: Just shake your cursor and drop whatever you are dragging onto the shelf.

Then simply navigate stress-free to your destination and move all items at once when ready.

Works with any content

Drag various kind of items onto the shelf, from files, including folders, documents, images, URL's, text snippets to even web images from your favorite browser.

Dropbox App Macos Download

Quickly access individual items

Display the items from the shelf as a stack for quick access of individual files.
With multi-select support, you can even select individual files and perform actions (e.g. move to new shelf or remove from current).

Minimal user interface with previews of dragged content, only there when you need it.

Dropbox Paper Mac App

Create as many shelves as you want. Great if you have multiple destinations.

Append files to an existing shelf. Gathering items from various locations has never been easier!

Dropbox App For Windows 10

Share extension

Dropbox App Macos Os

Use the share extension to quickly create a new shelf with contents shared from other applications. Simply select 'Add to Dropover' in the share menu and a new shelf will be created with the shared content.