NepAu (Native Lib for Auto-Update) is a runtime dynamic analysis library designed to interface with Unity IL2CPP binaries and native libraries (.so). Ideal for reverse engineering, modding, and automation, it provides an elegant and consistent interface to access classes, fields, methods, symbols, and patterns in memory.
- 📁 Repo Name:
NepAu - 🌐 URL: https://github.com/nepmods/NepAu
- 👤 Author: @nepmods / arjun
- 🧠 IL2CPP class/method/field accessor
- 🔍 Pattern scanning via memory range
- 📜 Symbol resolver with offset calculation
- 📚 Module metadata handling (
start,end,size) - 🔄 Dynamic loader with retry and fallback
- 🧪 Support for Unity & custom libraries
This Project can be used by just including one file
#include "NepAU/includeOnly/NepAU.hThis Project can also be used by building source file put this on your cmakelist/android.mk
NepAU/src/NepAu.cpp
#include "NepAU/src/NepAu.h| Component | Version |
|---|---|
| C++ Compiler | C++17+ |
| Android NDK | r25+ |
| Kernel (Linux) | ≥ 4.15 |
| Unity IL2CPP | Supported |
| libc / POSIX | Required |
LibManager manager("libil2cpp.so");
if (manager.loaded()) {
NClass playerClass = manager.get_class("PlayerControl");
Address killMethod = playerClass.method("MurderPlayer", 1);
NField nameField = playerClass.field("playerName");
uintptr_t offset = nameField.offset();
std::string playerName;
nameField.getStatic(&playerName);
LOGI("Kill method at: 0x%lx", (uintptr_t)killMethod);
LOGI("Name offset: %lx", offset);
}| Method | Description |
|---|---|
get_symbol(name) |
Resolve dlsym symbol to absolute address |
get_class(className) |
Get class in global namespace |
get_class(namespace, className) |
Get class in specific namespace |
get_pattern(pattern) |
Search memory for hex pattern |
loaded() |
Returns true if library is loaded |
is_unity() |
Returns if library type is Unity |
| Method | Description |
|---|---|
method(name, paramCount) |
Get method address |
field(name) |
Get field accessor |
| Method | Description |
|---|---|
offset() |
Get offset of field |
getStatic(out) |
Get static field value |
setStatic(value) |
Set static field value |
| Version | Date | Description |
|---|---|---|
v1.0.0 |
2025-07-25 | Initial public release |
Run inside your injected project or loader environment:
- Dobby-based mods
- Android shared object loaders
- Unity IL2CPP hooks (e.g. ModMenu)
We welcome contributions!
- 🍴 Fork the repo
- 🔧 Create a feature branch (
feature/something) - ✅ Commit your changes
- 🚀 Open a Pull Request
📜 Please ensure changes are clean and well-documented.
This project is licensed under the MIT License.
See the LICENSE file for details.
- Developed by @nepmods / arjun
- Inspired by IL2CPP reverse engineering community
- With appreciation to:
For issues or feature requests:
👉 Open an issue
Or email: [email protected] (example email, customize as needed)