Prerequisites

Emulating Android inside a Windows VM (Android VM within a Windows VM) is difficult to achieve, and so we recommend emulating Android directly on your host machine.

For the purposes of these labs, we will be assuming that you are using a Windows host. However, there is no reason this content should not also work on other host OS'es.

At the end of the day, any Android emulator that allows root access can likely be made to work as a reversing sandbox. However, we are only providing an image for Android Device Emulator (ADE) and Virtualbox (VBOX).

Which emulation environment should I choose?

It comes down to preference! Any Android emulator that allows you to act as root will suffice. Virtual Box, Android Device Emulator, Nox, Genymotion will all work.

For me, ADE is a way better emulation environment. It looks better, runs smoother, and uses less system resources. However, if you already have another emulator up and running you are welcome to use that.

System Prerequisites

These prerequisites are required regardless of emulation environment.

  • Python 3+ and pip installed, available from your PATH. (Verify this by opening a command prompt and typing python --version and pip .. you should see a version of 3 or higher.)

  • Install frida-tools as per these instructions. We recommend using pip as in: pip install frida-tools

  • You must have adb installed and in your path. If you don't, follow the instructions here under "Microsoft Windows ADB Setup". ( Verify this is installed by opening a command prompt and typing adb )

  • We are going to be using jadx-gui for static analysis. Jadx requires Java Runtime Environment 8. However, it has a download available that includes it. Check the releases page here or download version 1.1.0 from this link.

Lab Kit

This lab kit includes: the PhotoVault APK version we used in this lab, frida scripts, and sample data.

Video Walkthrough: Environment Setup

This video covers the following topics:

  • Installing frida-tools on the host machine.

  • Obtaining the appropriate frida-server from the github releases page.

  • Pushing frida-server to the device and making it executable.

  • Running frida-server in a way that does not halt everything when you close your ADB session.

See also [1] Lab setup and initial app exploration for non-video based instructions!