ZMemory
                                
                                 ZMemory copied to clipboard
                                
                                    ZMemory copied to clipboard
                            
                            
                            
                        a C++ library / template for patching process memory on unix systems (including android).
ZMemory

Development progress
- 
[X] Basic memory process API (find PID, regions, write and read memory) 
- 
[X] Basic offset HEX patches 
- 
[ ] In-memory value search (simple types, byte arrays) 
- 
[ ] Advanced memory pattern-scanning search 
Usage example
This example patches a method replace values from true to false, example apk from Il2Cpp Exploitation POC is used.
#include <unistd.h>
#include "include/ZMemory.h"
using namespace ZMemory;
int main() {
    pid_t pid;
    long long base;
    printf("Waiting for target process...\n");
    while (1) {
         pid = find_pid("com.Acessor.Il2CppPOC");
         if (pid) {
             printf("Process found, PID: %d\n", pid);
             base = find_library_base(pid, "libil2cpp.so");
             ZPatch patch = ZPatch(pid, base+0x524EA4, "00 00 A0 E3 1E FF 2F E1");
             if (patch.toggle())  
                  printf("Memory patched sucessfully\n");
             else 
                   printf("Failed to patch PID %d\n", pid);
             return 0;
         }
         sleep(1);
    }
}