网站首页  软件下载  游戏下载  源码下载  词典软件  教程攻略

请输入您要查询的源码:

 

源码 byOpen(增强版dlfunctions库) v1.0
图标
分类 源码下载-软件开发-java源码-byOpen下载 java源码
语言 简体中文
大小 169KB
软件类型 国产软件
发布时间
用户评分 4
备案号
官方网址
软件授权 免费软件
操作系统 JAVA
厂商
下载
介绍

 byOpen是一个绕过移动端系统限制的增强版dlfunctions库。

byOpen特性:

支持App中加载和使用Android系统库接口(即使maps中还没有被加载也支持)。

Android 7以上dlopen, System.load都是被限制调用的,虽然目前网上有Nougat_dlfunctions等库通过从maps中找so库来绕过加载限制。

不过对于app中还没被加载到maps的so库,这种方式就不行了。

而byOpen不仅支持fake dlopen方式从maps加载,还可以将还没加载到maps的so库绕过系统限制强行加载进来使用,实现更加通用化得dlopen。

注:目前的实现方式理论上还是比较通用的,至少我这Android 10上测试ok,但还没完整详细测试过,是否使用请自行评估。

byOpen相关原理:

具体实现原理还是比较简单的,主要还是借鉴了一种绕过Android P对非SDK接口限制的简单方法的思想和实现方式。

虽然这篇文章中主要目的是为了绕过hide api,不过它里面使用的将自己假装成系统调用的方式,一样可以用到System.loadLibrary上去,让系统以为是系统自身在调用System.loadLibrary

从而绕过Android N的classloader-namespace限制,将系统/system/lib中任意so库加载到maps中,然后再通过fake dlopen的方式去dlsym。

byOpen接口用法:

相关静态库和接口在:dlopen.h

相关使用方式跟原生dlopen完全相同:

typedef by_char_t const* (*curl_version_t)();

by_pointer_t handle = by_dlopen("libcurl.so", BY_RTLD_LAZY);

if (handle)

{

by_pointer_t addr = by_dlsym(handle, "curl_version");

if (addr)

{

curl_version_t curl_version = (curl_version_t)addr;

by_print("curl_version: %s", curl_version());

}

by_dlclose(handle);

}

截图
随便看

 

网盟提供免费网站源码下载(asp源码,php源码,.net源码),源码动态,使用教程和源码评测;为站长推介有价值的源码,为开发者宣传源码作品。

 

Copyright © 2002-2024 cnnbu.com All Rights Reserved
更新时间:2025/4/7 11:40:21