GSoC Ideas 2015
GSoC Ideas 2015
Proposed projects for Google Summer of Code 2015. All projects list the same possible mentors:
- Ole André Vadla Ravnås
- Karl Trygve Kalleberg
1. Make Android a first-class Frida citizen
Status: Completed (implemented by NowSecure)
Prerequisites: Vala, C
Scope:
- Package
frida-serverand run it as a system daemon or bundle a launcher app - Add an Android backend for USB device discovery and port forwarding (analogous to Frida’s iOS “Fruity” backend that integrates with iTunes’
usbmuxd) - Integrate with
adbor embedadb’s core to:- Enumerate connected Android devices and emit hotplug events
- Automatically forward ports as needed (eliminating manual
adb forwardsteps)
Expected results: Android package; automatic device discovery and port forwarding.
2. Add support for Android apps running in the ART VM
Prerequisites: JavaScript, C
Scope:
- Frida supported Dalvik at the time; ART support required extending the Dalvik-specific bits
- Existing Dalvik runtime JS: https://github.com/frida/frida-gum/blob/42b69917976f43ba3ec4297046b319970dc037dd/gum/gumscript-runtime-dalvik.js
- Add ART-specific implementation while exposing a unified API
- The existing
Dalvikmodule would become a deprecated alias until the next major release
Expected results: ART VM support with a unified API across both Dalvik and ART.
3. Port Stalker to ARM
Prerequisites: C, Assembly
Scope:
- Stalker is Frida’s code tracing engine based on dynamic recompilation; was x86-only
- ARM port would enable CryptoShark to run on mobile apps
- Reference: Anatomy of a code tracer
Expected results: Stalker able to trace code on ARM.
4. Port Stalker to ARM64
Prerequisites: C, Assembly
Scope:
- Same as ARM port, targeting 64-bit ARM architecture
- ARM64 port would enable CryptoShark on 64-bit mobile apps
- Reference: Anatomy of a code tracer
Expected results: Stalker able to trace code on ARM64.
5. Add support for spawning apps on Android: instrument from the first instruction
Status: Completed (implemented by NowSecure)
Prerequisites: Vala, C
Scope:
- Distinct from generic process spawn support (already present in Frida)
- Goal: instrument an Android app from the first instruction executed after Zygote forks to run the app
Expected results: API for spawning an Android app with instrumentation active from first instruction.
6. Package for major Linux distributions
Prerequisites: Python
Scope:
- Automate creation and publishing of packages for mainstream Linux distributions
- Packages published automatically by Frida’s buildbot
Expected results: Frida packages for major distributions, automatically published.
7. Port Frida to Windows Phone
Prerequisites: JavaScript, C, CLR
Scope:
- Frida supported Windows, macOS, Linux, iOS, Android, QNX — but not Windows Phone
- Required components:
- Injector to get Frida’s shared library into the target process
- Process spawn support
- JavaScript runtime that interacts with the CLR runtime dynamically (analogous to the Dalvik JS runtime)
- First two items expected to be simpler variants of the existing Windows backend
Expected results: Support for instrumenting Windows Phone apps.
8. Expose backtracer and symbol resolving API to JavaScript
Status: Completed (implemented by NowSecure)
Prerequisites: JavaScript, C
Scope:
- frida-gum had a Backtracer API and symbol resolving API not yet exposed to the JS runtime
- Symbol resolving needed adjustments for in-process injection context; Windows implementation relied on
DbgHelp.dllwhich was not always acceptable
Expected results: Backtracer and symbol resolving API available in the JavaScript runtime.