Skip to content

Releases: Qwanwin/AndrolineHook

v0.4.0

16 Jun 10:14
4b89140

Choose a tag to compare

📦 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 manualElfOpen to handle dlopen failures 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

  • manualElfOpen currently does not handle symbol relocation or library initialization (e.g. .init_array).

  • If needed, developers should:

    • Parse the .dynamic section.
    • Handle relocations such as DT_REL or DT_RELA.

v0.3.0

28 May 10:01
98e0b06

Choose a tag to compare

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::mutex for memory operations and caching, ensuring safety in multi-threaded environments. (#15)
  • Memory Region Caching: Optimized scanning with /proc/self/maps caching 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 robustDlopen with fallback to full library paths using findLibraryPath. (#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, and x86 using PRIxPTR and SCNxPTR. (#28)

Improvements

  • Enhanced hex string validation and error handling across all modules. (#19)
  • Optimized macros in AndroHook.hpp for 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

19 May 17:24
9988077

Choose a tag to compare

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

  1. New System Scanning
ANDROHOOK_SCAN(pattern, mask)
ANDROHOOK_SCAN_HEX(pattern)
  1. Improvement Memory Operations
ANDROHOOK_READ(address, length)
ANDROHOOK_WRITE(address, data)
  1. Upgrade Symbol Resolve
ANDROHOOK_RESOLVE(lib, sym)
  1. DLopen System improvement
ANDROHOOK_DLOPEN(lib, flags)

v0.1.0

17 May 21:25
fd936e8

Choose a tag to compare

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