Navigation

    云、贵、川、渝IT人的圈子
    • Register
    • Login
    • Search
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 招聘
    • 活动
    • 项目

    绕过移动端系统限制的dlopen库byOpen

    开源推荐
    1
    1
    18
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • kaichu497
      kaichu497 last edited by

      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上去直接调用。

      项目地址: http://swizi.open.global/

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      玻
      U
      A
      大
      A
      青
      黑
      低
      天
      白
      快
      爱
      白
      美
      此
      荒
      为
      哭
      柳
      无
      真
      紫

      社群
      昆明网页设计交流吧
      友情链接
      • Funtask
      • Funtask 社区
      • SUWIS
      • 云南北大青鸟
      ©2019-2020 滇ICP备20006698号