Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ptr-ptr/linkerpatch

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
21 Commits
 
 
 
 
 
 

Repository files navigation

linkerpatch

android N linker patch

android N以后,采用namespace对so加载进行隔离,详细:https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk

linker patch提供以下API绕过上述限制:

extern "C" void addHook(const char* src, const char* dst);

extern "C" void delHook(const char* src);

extern "C" void addHijack(const char* src, const char* dst)

extern "C" void delHijack(const char* src)

extern "C" void addTrampoline(const char* srcSo, const char* srcSym, const char* dstSo, const char* dstSym, const char* cond);

extern "C" void delTrampoline(const char* srcSo, const char* srcSym);

extern "C" void initLinkerPatch();

功能说明:

1、初始化调用initLinkerPatch后,可以突破路径和权限的访问限制(解决dlopen返回null);

2、addHook:用于替换namespace对dst进行加载(常见使用:动态链接其他namespace的so);如addHook("libUE4.so", "libxue4.so"), 游戏加载libUE4.so到某个namespace,addhook后再调用dlopen加载libxue4.so时,会使用libUE4.so的namespace进行加载。

3、addHijack::用于替换so进行加载;

4、addTrampoline:用于替换dlsym函数查找

About

android N linker patch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 89.7%
  • Makefile 5.7%
  • C 4.6%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.