SkillAgentSearch skills...

NepAU

**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.

Install / Use

/learn @NepMods/NepAU
About this skill

Quality Score

0/100

Category

Design

Supported Platforms

Universal

README

🧠 NepAu

License Last Commit Release Issues Stars

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.


📦 Repository


✨ Features

  • 🧠 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

🏗️ Instructions

Include Only

This Project can be used by just including one file

#include "NepAU/includeOnly/NepAU.h

Source

This 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

🔧 Dependencies

| Component | Version | |---------------|-------------| | C++ Compiler | C++17+ | | Android NDK | r25+ | | Kernel (Linux)| ≥ 4.15 | | Unity IL2CPP | Supported | | libc / POSIX | Required |


🧰 Example Usage


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);
}

📘 API Overview

🔹 LibManager

| 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 |

🔹 NClass

| Method | Description | |--------|-------------| | method(name, paramCount) | Get method address | | field(name) | Get field accessor |

🔹 NField

| Method | Description | |--------|-------------| | offset() | Get offset of field | | getStatic(out) | Get static field value | | setStatic(value) | Set static field value |


📦 Releases

| Version | Date | Description | |---------|------------|--------------------| | v1.0.0 | 2025-07-25 | Initial public release |


🧪 Testing

Run inside your injected project or loader environment:

  • Dobby-based mods
  • Android shared object loaders
  • Unity IL2CPP hooks (e.g. ModMenu)

🙋 Contributing

We welcome contributions!

  1. 🍴 Fork the repo
  2. 🔧 Create a feature branch (feature/something)
  3. ✅ Commit your changes
  4. 🚀 Open a Pull Request

📜 Please ensure changes are clean and well-documented.


📄 License

This project is licensed under the MIT License.
See the LICENSE file for details.


🧠 Credits


📫 Contact

For issues or feature requests:
👉 Open an issue
Or email: nepmods@proton.me (example email, customize as needed)


Related Skills

View on GitHub
GitHub Stars7
CategoryDesign
Updated4mo ago
Forks3

Languages

C++

Security Score

82/100

Audited on Dec 4, 2025

No findings