Releases: Qwanwin/AndrolineHook
Releases · Qwanwin/AndrolineHook
v0.4.0
📦 Overall Update
⚡ Efficiency
- Pattern scanning now utilizes the Boyer-Moore algorithm for significantly faster performance.
- Optimized for applications with large library address spaces.
🔧 New Features
- Added ptrace fallback to allow memory operations even under strict SELinux environments.
- Implemented
manualElfOpento handledlopenfailures manually and improve stability.
🔗 Compatibility
- Explicit support for 32-bit and 64-bit architectures (ARM/ARM64).
- Improved compatibility across various Android versions and devices.
🔐 Security
- Stricter input validation.
- Enhanced logging to simplify debugging and reduce potential errors.
🎯 Flexibility
- Supports library filtering during pattern scanning.
- Manual ELF loading provides greater control for developers in managing library processing.
⚠️ ELF Relocation
-
manualElfOpencurrently does not handle symbol relocation or library initialization (e.g..init_array). -
If needed, developers should:
- Parse the
.dynamicsection. - Handle relocations such as
DT_RELorDT_RELA.
- Parse the
v0.3.0
Androline v0.3.0
Release Date: May 28, 2025
Welcome to Androline v0.3.0! 🚀 This native Android development library provides powerful tools for memory manipulation, scanning, and library patching with safety and efficiency. This release introduces new features, performance improvements, and bug fixes to enhance your Android development experience.
What's New
- String Obfuscation: Encrypt sensitive strings (library names, offsets, hex) using XOR to protect against static analysis. (#12)
- Thread Safety: Added
std::mutexfor memory operations and caching, ensuring safety in multi-threaded environments. (#15) - Memory Region Caching: Optimized scanning with
/proc/self/mapscaching to reduce I/O overhead. (#18) - Original Bytes Storage: Support for saving and restoring original bytes for reversible memory patching. (#20)
- Robust Library Loading: Implemented
robustDlopenwith fallback to full library paths usingfindLibraryPath. (#22) - Unique Module Logging: Per-module logging tags (
Androline,AndroWriteData,AndroUtils,AndroHook,AndroScanner) for easier debugging via logcat. (#25) - Library Path Search: Search for library paths in system directories like
/system/lib64/and/data/app/. (#23) - Multi-Architecture Support: Full compatibility with
arm64-v8a,armeabi-v7a, andx86usingPRIxPTRandSCNxPTR. (#28)
Improvements
- Enhanced hex string validation and error handling across all modules. (#19)
- Optimized macros in
AndroHook.hppfor flexible and secure patching. (#21) - Improved internal documentation with informative logging for debugging. (#26)
Notes
- Ensure NDK version 24.0.8215888 and CMake 3.22.1 for build compatibility.
- Tested on Android API 21 and above.
- See CONTRIBUTING.md for contribution guidelines and README.md for usage instructions.
Usage Example
#include "AndroHook.hpp"
#include "AndroWriteData.hpp"
const char* targetLibName = OBFUSCATE("libtarget.so");
std::string libPath = Androline::Memory::findLibraryPath(targetLibName);
void* handle = Androline::Memory::robustDlopen(targetLibName, RTLD_LAZY);
ANDROHOOK("0x1234", "9090"); // Patch memory
std::vector<uintptr_t> results = ANDROHOOK_SCAN("\xDE\xAD\xBE\xEF", "xxxx");v0.2.0
AndroHook v0.2.0
What's New
- New pattern scanning system
- Improved memory operations
- Enhanced symbol resolution
- Better library handling
- Added AndroScanner.hpp
Improvements
- Enhanced security features
- Better error handling
- Improved performance
- Added multiple library paths support
- Memory protection system upgrade
Bug Fix
- Fixed memory leaks
- Resolved pattern matching issues
- Fixed symbol resolution errors
- Corrected path handling
Preview
- New System Scanning
ANDROHOOK_SCAN(pattern, mask)
ANDROHOOK_SCAN_HEX(pattern)- Improvement Memory Operations
ANDROHOOK_READ(address, length)
ANDROHOOK_WRITE(address, data)- Upgrade Symbol Resolve
ANDROHOOK_RESOLVE(lib, sym)- DLopen System improvement
ANDROHOOK_DLOPEN(lib, flags)v0.1.0
Changelog v0.1.0
Features
- Initial release of AndrolineHook library
- Memory hooking and patching functionality for Android applications
- Library detection system
- Offset modification capabilities
- Original byte restoration feature
Core Features
- Runtime memory manipulation
- Dynamic library loading support
- Memory address patching
- Hook installation and management
- Memory protection handling
Notes
- First stable release
- Production-ready implementation
- Open for community contributions
- MIT licensed software