WindySha / Poros

This is a dynamic instrumentation tool that can inject xposed module into any appliation on rooted Android devices.
Apache License 2.0
110 stars 31 forks source link

Poros

Poros is a dynamic instrumentation tool for android developers, reverse-engineers, similar in functionality to Frida. It utilizes the Xposed module to facilitate the injection of Java and Native codes on rooted Android devices.

Features

Usage

Two ways to use the tool:

  1. Use the executable binary file on MacOS, Linux or Windows;
  2. Use the shell file on MacOS or Linux;

    Using executable binary file

  3. Download the executable binary file on the github release page.
  4. Execute the command line file.

for example:

$ poros-Darwin-x86_64 -p com.android.settings -f ./xposed_module_sample.apk

use -h to get the help doc:

$ poros-Darwin-x86_64 -h
Usage: poros-Darwin-x86_64 [OPTIONS] --package-name <PACKAGE_NAME>

Options:
  -p, --package-name <PACKAGE_NAME>  target application's package name
  -f, --file-path <FILE_PATH>        path of the xposed plugin to inject
  -q, --quick                        whether use the quick mode
  -m, --non-ptrace                   whether use the non-ptrace mode
  -h, --help                         Print help
  -V, --version                      Print version

Using shell file

  1. Download the poros_shell_cmd.tar.gz file on the release page, and unzip it;
  2. Open terminal and change directory to the unzipped file path;
  3. Execute this command to inject the xposed module into the Settings Application:
    ./start.sh -p com.android.settings  -f ./xposed_module_sample.apk
  4. Use the -q parameter for a quicker injection. Use this parameter when injecting into the same app for the second time to enhance injection performance.

This is a xposed module sample project that contains the Java hook and native hook:
XposedModuleSample

Build

Two ways to build:

  1. Build the project using the github action.
  2. Build it locally:
    • Clone this project.
    • Change parameters ANDROID_NDK_HOME in file /core/build.sh to the android ndk directory.
    • Run the file build.sh to build this the whole project.
    • shell command file is in the output directory, the executable command line tool is the this directory: cli/target/release/poros, either can do the injection.

How it works

Android Root环境下动态注入Java和Native代码的实践

References

Licence

This project is licensed under the Apache License 2.0.