LAMDA logo

LAMDA

by firerpa

LAMDA is an Android reverse engineering & automation framework designed to reduce the time and effort spent on security analysis and application testing. It provides programmatic interfaces to replace manual operations, focusing on distributed management of devices in various network environments.

View on GitHub

Last updated: N/A

What is LAMDA?

LAMDA is an auxiliary framework for reverse engineering and automation, designed to reduce the time and trivial problems of security analysis and application testers. It replaces a large number of manual operations with programmatic interfaces. It is not a single-function framework. It allows for programming control of mobile phones, remote operation of devices, and management of devices in various network environments.

How to use LAMDA?

To use LAMDA, you need a rooted Android device or emulator. Install the client-side Python library and the server-side component on the device. Configure the device according to the provided instructions, including time zone, accessibility, and network settings. Then, use the Python client to connect to the device and utilize the various APIs for automation, reverse engineering, and network analysis.

Key features of LAMDA

  • Zero dependencies, only root required

  • Easy setup of root certificates for MITM

  • Frida-based internal Java interface exposure

  • Near commercial-grade quality and stability, ARM/X86 support

  • Mobile network proxy

  • Partial uiautomator2 compatibility

  • Device status/resource consumption reading

  • System configuration/property reading and modification

  • Interface layout inspection

  • Wireless connection of built-in root-enabled WIFI ADB

  • Custom startup configuration support

  • Simulator and real machine support, cloud phone/headless development board, redroid (ARM only)

  • Android 6.0 - 13 support

  • WSA (Windows Subsystem for Android™️) support

  • UDP proxy support (socks5 UDP mode)

  • OpenVPN and proxy coexistence support

  • Magisk boot self-start support

  • Encapsulated a large number of commonly used interfaces, only need to write Python

  • Completely networked, detached from USB data cables/USB hubs, etc. entities

  • Large file upload download

  • Greatly reduce the threshold and time cost on trivial matters

  • Get/replay the most recent Activity in the system

  • Wake up the Activity of the application

  • Can use ssh to log in to the device terminal

  • As long as there is a network, you can connect to any device running LAMDA anywhere

  • Run shell commands in the foreground and background, grant and revoke application permissions, etc.

  • Built-in http/socks5 proxy, can set the proxy for the system/specified application

  • Built-in frida 15.x, IDA 7.5 server and other tools

  • Built-in crontab scheduled tasks

  • Built-in Python3.9 and some commonly used modules

  • Built-in OpenVPN to achieve global/non-global VPN

  • WIFI remote desktop (web)

  • WEB side file upload and download

  • UI automation, automated operation through interfaces

Use cases of LAMDA

  • Automated application testing

  • Mobile security analysis

  • Remote device control and management

  • Network traffic analysis and manipulation

  • Bypassing anti-detection mechanisms

  • Mobile proxy server

  • UI automation

  • Data collection

FAQ from LAMDA

What are the basic requirements for running LAMDA?

A rooted Android device or emulator with at least 2GB of RAM and 1GB of free storage space is required. Magisk Hide and Frida-server must be disabled before starting LAMDA.

How do I install LAMDA?

Install the client-side Python library using pip and the server-side component on the Android device using ADB. You can either use the Magisk module or manually install the server-side files.

How do I connect to a device using LAMDA?

Use the lamda.client library in Python to create a Device object, providing the IP address of the device. If a certificate is used, provide the path to the certificate file.

How do I set up a system proxy using LAMDA?

Create a GproxyProfile object, configure the proxy type, host, and port, and then call the start_gproxy method on the Device object.

How do I use Frida with LAMDA?

Connect to the built-in Frida instance using the device.frida attribute. Use the -H parameter with Frida command-line tools, specifying the device's IP address and port.