Frida-Labs
→ View on GitHubAI Summary: Frida-Labs is a repository designed to facilitate learning Frida for Android through a series of structured challenges, ranging from basic setup to intermediate-level tasks. The primary use case is to help users grasp the fundamentals of using Frida by engaging with practical scenarios that involve hooking methods, changing variable values, and native function invocation. Notable features include a variety of challenges, organized solutions, and an emphasis on understanding Frida scripts, making it an ideal starting point for beginners.
README
This repository contains a series of challenges designed for learning Frida for Android. These are not like hardcore Capture The Flag (CTF) applications but will help you to start with Frida and its commonly used APIs. If you are entirely new to Frida, this is the perfect repository to get started. I have organized the challenges in a way that covers everything from the basics to an intermediate level.
These challenges have flags but that’s not the primary goal here. You can easily get the flags using other methods. But the goal of these challenges is to equip you with the fundamentals, helping you to use Frida and understand the Frida scripts written by others. While doing these challenges, try to obtain the flag through many ways as possible using frida. I will be updating this repository with new challenges whenever I find something interesting.
All the APKs are inside the directories, and the solutions are also provided in the solution directory. If you are not familiar with the setup and have like zero idea about Frida, you can go through the first solution.
If you find this series useful please share :)
Challenges Overview
- Challenge 0x1 : Frida setup, Hooking a method
- Challenge 0x2 : Calling a static method
- Challenge 0x3 : Changing the value of a variable
- Challenge 0x4 : Creating a class instance
- Challenge 0x5 : Invoking methods on an existing instance
- Challenge 0x6 : Invoking a method with an object argument
- Challenge 0x7 : Hooking the constructor
- Challenge 0x8 : Introduction to native hooking
- Challenge 0x9 : Changing the return value of a native function
- Challenge 0xA : Calling a native function
- Challenge 0xB : Patching instructions using X86Writer and ARM64Writer