Home

Awesome

Android-Native-Import-Hide

A library for hiding and retrieving imports in ELF binaries.

Features

Build and Installation

Compatible Compilers

Clone the repository:

git clone https://github.com/reveny/Android-Native-Import-Hide.git
cd Android-Native-Import-Hide

To include the library in your project, add the following line to your source code:

#include "HideImport.hpp"

Usage

Here is a simple example demonstrating how to use the library and make sure to include HideImport.cpp in the source file list:

Using HI_GET

#include <stdio.h>
#include "HideImport.hpp"

int main() {
    HI_FUNCTION_POINTER(my_malloc, void*, size_t size) = HI_GET("libc.so", "malloc");

    void *testMemory = my_malloc(20);
    printf("my_malloc test returned: %p\n", testMemory);
    free(testMemory);

    return 0;
}

Using HI_CALL

#include <stdio.h>
#include "HideImport.hpp"

int main() {
    void *testMemory2 = HI_CALL("libc.so", malloc, void*, size_t)(15);
    printf("malloc test 2 returned: %p\n", testMemory2);
    free(testMemory2);

    return 0;
}

Using HI_SAFE

#include <stdio.h>
#include "HideImport.hpp"

int main() {
    void *testMemory2 = HI_CALL_SAFE("libc.so", malloc, void*, size_t)(15);
    printf("malloc test 2 returned: %p\n", testMemory2);
    free(testMemory2);

    return 0;
}

The SAFE version will check if the function is hooked before calling. If the function happens to be hooked, the call will not be executed and return NULL.

Single Header Library

A single header version of the library is available for convenience. Simply include single_header/HideImport.hpp in your project.

Preview

Disassembly without string encryption: <br> Preview

Disassembly with string encryption: <br> Preview

Credits

Special thanks to:

Contact

Feel free to reach out via:

License

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