A repository for experimenting with elf loading and in-place patching of android native libraries on non-android operating systems.

droidports:

A repository for experimenting with elf loading and in-place patching of android native libraries on non-android operating systems.

Disclaimers:


This repository contains a lot of incomplete, experimental and untested code, and behavior is not guaranteed to match specifications, specially when it comes to the fake JNI implementation.

PSVita ports are currently under heavy wip, and are known to be non-functional.

Corrections, fixes, issue reports and optimizations are always welcome.

Dependencies:


Varies on a port-by-port basis, but you're required to have at least zlib and OpenGL ES 1.x/2.x available.

Building and Deploying [example]:


We're going to use the "gmloader" port as an example, targetting the "linux" platform for HardFP ABI toolchains (e.g. linux-gnueabihf):

mkdir build-gmloader
cd build-gmloader
cmake -DCMAKE_TOOLCHAIN_FILE=~/your-toolchain-definitions.cmake -DCMAKE_BUILD_TYPE=Release -DPLATFORM=linux -DPORT=gmloader -DARMHF=ON
make -j$(($(nproc)+1))

Debugging:


When the loader is built with -DCMAKE_BUILD_TYPE=Debug, the 'so_load' function will dump object files that are loaded, these files can be loaded into gdb using a breakpoint trick - check out the provided debugging example.

License:


This is free software. The source files in this repository are released under the GPLv3 License, see the license file for more information.

Similar Resources

Programming language that compiles into a x86 ELF executable.

ocean Programming language that compiles into a x86 ELF executable. The main goal at the moment is to create a C compiler, which can atleast compile i

Jul 27, 2022

Remap ELF LOAD segments to huge pages

Quick start Not recommended as a production solution, but it's a very fast way to benchmark if your application benefits from remapping your text and

Jun 29, 2022

A utility to run ELF files in memory.

A utility to run ELF files in memory.

execelf - A utility to execute ELF files in memory. execelf is small utility for running ELF files in memory, without touching the disk! Installation

Jul 28, 2022

Volatile ELF payloads generator with Metasploit integrations for testing GNU/Linux ecosystems against low-level threats

Volatile ELF payloads generator with Metasploit integrations for testing GNU/Linux ecosystems against low-level threats

Revenant Intro This tool combines SCC runtime, rofi, Msfvenom, Ngrok and a dynamic template processor, offering an easy to use interface for compiling

Aug 10, 2022

Tool to convert ELF (S)hared (O)bject to Nintendo (R)elocatable (S)hared (O)bject

elf2rso Tool to convert ELF (S)hared (O)bject to Nintendo (R)elocatable (S)hared (O)bject Command Line Options -i or --input - It's the ELF File to be

Mar 13, 2022

POCO C++ Libraries are powerful cross-platform C++ libraries for building network

POCO C++ Libraries are powerful cross-platform C++ libraries for building network

The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.

Aug 15, 2022

A simple library that helps Android developers to execute JavaScript code from Android native side easily without using Webview.

AndroidJSModule A simple library that helps Android developers to execute JavaScript code from Android native side easily without using Webview. Insta

May 24, 2022

React Native polyfill for crypto.getRandomValues. Used in libraries like uuid.

react-native-random-values-jsi-helper React Native polyfill for crypto.getRandomValues. Used in libraries like uuid. Installation yarn add react-nativ

May 29, 2022

Cloud Native Data Plane (CNDP) is a collection of user space libraries to accelerate packet processing for cloud applications.

CNDP - Cloud Native Data Plane Overview Cloud Native Data Plane (CNDP) is a collection of userspace libraries for accelerating packet processing for c

Aug 8, 2022
Comments
  • Support for Deltarune 1.10?

    Support for Deltarune 1.10?

    Tried following the guide including in the release, but it didn't work. I suspect it's due to the newer version of the game. Please fix this as I want to look cool in front of my friends.

  • Patch config dir

    Patch config dir

    Each game/apk has its config saved to individual folders as in ~/.config/<apk>. We (well, I and the one other I discussed it with) think it would be cleaner if they were saved under a main gmloader dir as in ~/.config/gmloader/<apk> instead.

    If it works like I think it does, this patch does exactly that. (It seems to, anyway, but I have zero knowledge what I'm doing and so I can only hope this doesn't break something, somewhere else. But it does save config to the new directory, and even loads my old savegame if I move the file over so it shows promise, I think.)

    (I don't know what it's doing down there at 737, I only changed line 91.)

A template for experimenting with JUCE's hosting code

juce-wrapper This is a JUCE based plug-in that loads and wraps a single VST, VST3, or AU plug-in (in this case an instrument plug-in, which requires M

Dec 11, 2021
A native textfield that can be used in place of Flutter's TextField widget.
A native textfield that can be used in place of Flutter's TextField widget.

Better Textfield A native textfield that can be used in place of Flutter's TextField widget. Demo demo.mp4 Here are some screenshots of the demo app:

Jan 23, 2022
Easy Dump ELF libil2cpp.so from Android Process Memory

PAD (Process Android Dumper) This dumper is made for il2cpp game but you can use it in any app you want How To Use Run the process Open PADumper Put p

Jul 29, 2022
A place to collaborate on code for the Embedded.fm book club. Currently reading "STM32 ARM Programming for Embedded Systems".

Welcome to the Book Club Code site! This is a place for the Embedded.fm book club to collaborate and learn together. Repo Structure Guide Top-level fo

Jul 21, 2022
Obfuscate calls to imports by patching in stubs. ICO works on both X86 and X64 binaries.
Obfuscate calls to imports by patching in stubs. ICO works on both X86 and X64 binaries.

ICO adds a new section into the image, then begins building stubs for each import that uses a extremely basic routine to decrypt an RVA and places them into the section.

Jun 29, 2022
A simple PoC to demonstrate that is possible to write Non writable memory and execute Non executable memory on Windows

WindowsPermsPoC A simple PoC to demonstrate that is possible to write Non writable memory and execute Non executable memory on Windows You can build i

Jul 21, 2022
A build of sowm that takes the pain from patching away.

sowm-flexipatch A build of sowm that takes the pain from patching away. About Similar to the flexipatch builds made by bakkeby, sowm-flexipatch aims t

Jun 26, 2022
vmnet.framework support for rootless QEMU (without patching QEMU)

vde_vmnet: vmnet.framework support for rootless QEMU vde_vmnet provides vmnet.framework support for VDE applications such as QEMU. vde_vmnet does not

Jul 28, 2022
Sloth 🦥 is a coverage guided fuzzing framework for fuzzing Android Native libraries that makes use of libFuzzer and QEMU user-mode emulation
Sloth 🦥 is a coverage guided fuzzing framework for fuzzing Android Native libraries that makes use of libFuzzer and QEMU user-mode emulation

Sloth ?? Sloth is a fuzzing setup that makes use of libFuzzer and QEMU’s user-mode emulation (qemu/linux-user) on x86_64/aarch64 host to emulate aarch

Jul 26, 2022
Elven relativism -- relocation and execution of aarch64 ELF relocatable objects (REL)
Elven relativism -- relocation and execution of aarch64 ELF relocatable objects (REL)

elvenrel Elven Relativism -- relocation and execution of aarch64 ELF relocatable objects (REL) on Linux and macOS. Program loads a multitude of ELF RE

Nov 28, 2021