# Ringzer0 - pre-training welcome
Welcome students - we are super excited to work with you in a few weeks, learning about mobile app reversing & r2frida. So that you come prepared and with peace of mind about your setup, we have provided a summary of requirements and expectations below. If you have any concerns, please reach out to us at r2frida-training@hexplo.it or via the r2frida discord channel (in the ringzer0 discord). Whether you are new to mobile security or are already a veteran, this training has you covered. Together we are ready to learn how to capitalize on the power of two strong independent tools (radare2 and Frida) combined.
We have an official ringzer0 channel for us all to use, if you have not done so, please join it: https://discord.gg/hCJYSgQJhe
## Virtual attendance
For those attending virtually, there is a recurring Zoom call each day:
https://ringzero-training.zoom.us/j/88698103265?pwd=aY8onxIIR0S5CC0JbJuxoK3m3km9LE.1
We'll be sure to share the recordings afterwards!
## In-person attendance
**IMPORTANT**: for those in person, we have secured a small space for us to continue in person as planned. This link provides information about how to get there: https://www.peerspace.com/invite/pid-H103YO2IC
### Address
> 5725 S. Valley View Blvd, Suite 7
> Las Vegas, NV, 89118
https://www.google.com/maps/place/5725+S+Valley+View+Blvd+Suite+7,+Las+Vegas,+NV+89118,+USA/@36.0857145,-115.190375,21z/data=!4m6!3m5!1s0x80c8c78439f8d841:0x5471c5c12f2d53ec!8m2!3d36.0857471!4d-115.1902932!16s%2Fg%2F11s1rm3k9r?entry=ttu
### Arrival Instructions
> Enter through the front of the building at door #7 (valley view side)—check-in at the front desk with the community manager.
### Arrival/Departure times
We will be there from 08:30am each morning, and the course will start at 09:00am PDT, ending promptly at 17:00pm PDT.
## Laptop Requirements
**Please ignore the warning (in the course description) about needing an X86 guest VM, you can absolutely do this training from an arm mac (or an arm Ubuntu Desktop VM if you prefer to keep things seggregated from your host).**
The following options are available:-
1. [**Linux/Mac laptop**] You can use your mac/linux laptop and can install the documented tools directly on to the laptop itself.
2. [**STUDENT-VM**] Bring a laptop that will be comfortable with running a virtual machine. We have pre-prepared an intel variant of the student VM (Ubuntu desktop) where the necessary tools are already in place. The host should have enough CPU and RAM to handle this. You can download it [here](https://drive.google.com/drive/folders/1D7O5TCz01I7QyTEfv5JwmPWX1klFXLUR). If you wish to create an arm based Ubuntu desktop VM, please bring an Ubuntu VM ready to go: [arm-desktop Ubuntu ISO](https://cdimage.ubuntu.com/jammy/daily-live/current/jammy-desktop-arm64.iso)
3. [**IN-BROWSER**] If for whatever reason your system is not suitable, you find it easier, or would just prefer to use it - you can use our in-browser training environment: https://kasm.r2frida.training. Here you will be able to connect directly to a pre-prepared session with all tools installed.
**If you need technical assitance during the setup, we can use Zoom and/or discord with screensharing as necessary to make sure you are supported and making progress.**
## Mobile Devices
Students are not expected to bring their own mobile devices for use within the training. Due to the complexities of different jailbreaks & roots, troubleshooting these issues is not feasible during the training. If students wish to bring their own devices (rooted/jailbroken) and follow along, then you may do so - just note that other than a few minutes here and there, we will not be able to guarantee any troubleshooting support.
Instead, you will be provided with a Virtual iOS & Android device thanks to our partnership with [Corellium](https://corellium.com). The device will come pre-prepared with Frida and the labs pre-installed. Corellium allows device snapshots similar to the way traditional VM software works so we can easily restore your device and revert the device if things get out of sorts. We will provide you with individual Corellium credentials that you may use for the duration of the training.
## Host software requirements
The following is a list of tools you'll require on your host if you want to have the lab setup there. You do not need these tools if you plan on using the in-browser solution or the VM. If you are going to run the VM, you will need VirtualBox/VMWare Fusion Pro (this is now free FYI), or similar.
- Android Studio - required to run a local Android Emulator (or at minimum the android SDK manager, virtual device manager, adb, etc.)
- VPN software that supports TAP, e.g. Tunnelblick or Viscosity on macOS (note: if using our vm then openvpn inside the vm works fine)
- **PLEASE DISABLE any EDR/Endpoint Protection software (e.g. Sentinel One, Crowdstrike, etc) as these may interfere with the use of Frida.**
- Your favourite terminal, e.g. iTerm/Terminux/Alacritty.
- radare2
- r2frida plugin
- r2ghidra plugin
- r2ghidra-sleigh plugin
- frida & frida-tools
## Virtual Machine
If you have issues with the VM or forget to download it ahead of time, we'll have a USB stick to share it locally for those that will be in person. Rest assured, we will take time to get everyone up and running before we proceed with any of the tasks or labs.
## Installing the software on your host (or in a VM)
If you wish to set up an ARM Ubuntu VM, then we suggest using an [arm-desktop Ubuntu VM](https://cdimage.ubuntu.com/jammy/daily-live/current/jammy-desktop-arm64.iso) (you will need Vmware or Parallels for this). Then you can install the following tools...
1. **Build Dependencies**
| Linux | Mac |
| -------- | -------- |
| `apt install git pkg-config build-essential python3-pip` | `xcode-select --install` |
2. **Misc Software**
* [VSCode](https://code.visualstudio.com/)/NeoVim/Sublime/etc.
3. JDK 17
| Linux | Mac |
| -------- | -------- |
| `apt install openjdk-17-jdk` | `brew install openjdk@17` |
4. **radare2**
```
git clone https://github.com/radareorg/radare2
cd radare2
sys/install.sh
```
5. **r2frida**
```
git clone https://github.com/nowsecure/r2frida
cd r2frida
make
make user-symstall
```
6. **r2ghidra**
```
r2pm -ci r2ghidra
r2pm -ci r2ghidra-sleigh
```
7. **Frida**
```
pip3 install frida frida-tools
```
8. **adb**
| Linux | Mac |
| -------- | -------- |
| `apt install android-tools-adb` | `brew cask install android-platform-tools` |
9. **Jadx**
```
git clone https://github.com/skylot/jadx
cd jadx
./gradlew dist
```
10. **Mitmproxy**
* Download it from https://downloads.mitmproxy.org
Or simply:
| Linux | Mac |
| -------- | -------- |
| `apt install mitmproxy ` | `brew install mitmproxy` |
11. **libimobiledevice**
| Linux | Mac |
| -------- | -------- |
| `apt install usbmuxd libimobiledevice6 libimobiledevice-utils` | `brew install libimobiledevice` |
## Next steps
Below are the items we still owe you, which you'll receive on the day:
1. Credentials for Corellium, our provider of virtual mobile devices
2. Credentials for https://kasm.r2frida.training in case you wish to use the virtual in-browser lab
3. Trainee google drive link