A high-performance external memory read/write system for Android using a native socket server + client bridge.
This project demonstrates how to:
- Run a native executable (
server_arm,server_arm64, etc.) - Communicate with it from
libmem.so - Perform safe external memory read/write using
process_vm_readv / writev
The server_arm / server_arm64 is a standalone binary.
- Opens socket on
127.0.0.1:8080 - Waits for client request
- Reads/Writes memory of target process
int main() {
runServer();
}struct Request {
char package[64];
char lib[64];
uint64_t offset;
uint32_t mode; // 0 = READ, 1 = WRITE
uint32_t size;
uint8_t data[128];
};
struct Response {
uint32_t success;
uint8_t data[128];
};All read/write goes through:
runClientRaw(...)- Connect to server
- Send
Request - Receive
Response - Return data
Read<int>(0x80C5B0);Internally
Read -> runClientRaw -> socket -> server -> process_vm_readv
Write<int>(0x80C5B0, 999);Internally
Write -> runClientRaw -> socket -> server -> process_vm_writev
Inside server:
syscall(SYS_process_vm_readv, ...)
syscall(SYS_process_vm_writev, ...)Direct kernel-level memory access No injection needed External cheat method
Mem::GetPid("com.fingersoft.hillclimb");Mem::GetBase(pid, "libgame.so");Final Address
address = base + offset
Server is stored inside:
assets/server_arm64
assets/server_arm
Then extracted & executed:
extractAsset(...)
chmod 777
su -c ./server_lglRuns as daemon Auto-start via JNI
- External memory R/W (no injection)
- Multi ABI support
- Socket-based communication
- Works with root (su)
- Fast syscall-based memory access
- Root access (required)
- SELinux permissive:
setenforce 0- Aantik Mods
- External Memory Concept inspired by native Linux debugging
- Multi-threaded server
- Encryption (anti detection)
- Persistent socket (faster)
- Dynamic offset resolver
Educational purposes only. Use responsibly.
