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.
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.
This lab kit includes: the PhotoVault APK version we used in this lab, frida scripts, and sample data.
Android Frida Lab.7z
Download Lab Kit
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.