Skip to content

drozer Architecture

metall0id edited this page Nov 25, 2014 · 1 revision

drozer is a distributed system. It has two key components:

  • the Agent: a lightweight Android app, that runs on the device or emulator being used for testing; and
  • the Console: a command-line interface, running on your PC, which allows you to interact with the Dalvik VM through the Agent.

Since Version 2.0, drozer supports Infrastructure Mode, in which the Agent establishes a connection outwards to traverse firewalls and NAT. This allows more realistic attack scenarios to be created. This mode requires a Server:

  • the Server: provides a central point where consoles and agents can rendezvous, and routes sessions between them.

These components use the drozer Protocol to exchange data.

Design Principles

The drozer Agent is designed to represent an arbitrary, unprivileged application running on the Android device and, as such, only requests a single permission: the INTERNET permission. This permission is required because the agent needs to open socket connections to interact with the console or server.

drozer tries to avoid dependencies on external tools, such as ADB and AAPT, because these will only work with the device connected via USB.

drozer functionality should be implemented as modules, that make use of the reflection and class loading functionality of the agent to execute their tests. This allows the system to be extended, without requiring the Agent to be updated too frequently.

Components

Clone this wiki locally