HCZHONG / AndroidPtraceInject

Android Ptrace Inject for all ABIs and all APIs. Help you inject Shared Library on Android.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android Ptrace Inject

中文可以参考我的注释内容进行理解
我写的注释相对来说比较全面了

How to build

  • Make sure you have CMake and Ninja in your PATH

  • Edit CMakeLists.txt. Set ANDROID_NDK and CMAKE_TOOLCHAIN_FILE for yourself.

  • If your OS is Windows, read build.sh and make it to be a build.bat.

    Also, don't forget to change CMAKE_RUNTIME_OUTPUT_DIRECTORY and CMAKE_LIBRARY_OUTPUT_DIRECTORY in Windows styles.

  • If you want to build all ABIs, u can annotation ANDROID_ABI on CMakeLists.txt, and run build.sh

    git clone https://github.com/SsageParuders/AndroidPtraceInject.git
    cd AndroidPtraceInject
    mkdir build
    chmod +x build.sh
    ./build.sh
  • Or you can don't run build.sh and don't annotation ANDROID_ABI on CMakeLists.txt.

    git clone https://github.com/SsageParuders/AndroidPtraceInject.git
    cd AndroidPtraceInject
    mkdir build
    cd build
    cmake .. -G Ninja
    cmake --build .

How to use

# Here are the parameters of the Inject command line tool:
#   Some parameters are optional.
#   -p process 's pid <-- optional
#   -n process 's package name <-- optional
#   -f whether to start App <-- optional
#   ---- //  /data/local/tmp/Inject -f -n XXX <-- error
#   ---- //  cd /data/local/tmp && ./Inject -f -n XXX <-- right
#   -so so path for injection <-- mandatory
#   -symbols specify a symbol in so <-- optional
# For examples:
cd /data/local/tmp && ./Inject -f -n bin.mt.plus -so /data/local/tmp/libHook.so -symbols hello

TODO LIST

Finished

  • First Inject Succeeded

  • Handle Parameter

  • Handle SELinux

  • Handle Libs

  • Succeed Inject for arm64-v8a

  • Succeed Inject for Android 9 and Android 11

  • Adapt to all Android versions

  • Succeed Inject for x86

Future

  • Fix bugs for armeabi-v7a

  • Adapt to the ABIs of each device, such as armeabi-v7a and x86_64

Credits

Adrill By mustime

SharkInject By bigGreenPeople

androidinject By mergerly

TinyInjector By shunix

About

Android Ptrace Inject for all ABIs and all APIs. Help you inject Shared Library on Android.

License:MIT License


Languages

Language:C 84.5%Language:CMake 7.9%Language:C++ 4.4%Language:Shell 3.3%