绕过移动端系统限制的dlopen库byOpen
-
byOpen是一个绕过移动端系统限制的增强版dlfunctions库。支持App中加载和使用Android系统库接口(即使maps中还没有被加载也支持)。Android 7以上dlopen, System.load都是被限制调用的,虽然目前网上有Nougat_dlfunctions等库通过从maps中找so库来绕过加载限制。不过对于app中还没被加载到maps的so库,这种方式就不行了。
而byOpen不仅支持fake dlopen方式从maps加载,还可以将还没加载到maps的so库绕过系统限制强行加载进来使用,实现更加通用化得dlopen。
具体实现原理主要还是借鉴了一种绕过Android P对非SDK接口限制的简单方法的思想和实现方式。
byOpen参考了实现,并且做了一些小改进:不在/proc/self/maps中的系统库,也能绕过限制强行加载进来使用;除了从.dynsym中检索符号,还支持从.symtab中检索符号,参考:Enhanced_dlfunctions,也修复了里面的一些bug;整个dlopen过程只有一次malloc分配,省去整个符号表的内存分配和copy;兼容原始dlopen,如果是低版本android系统,没有限制,还是会优先切到原生dlopen上去直接调用。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏