【技术实现步骤摘要】
一种加壳动态链接库加载方法及装置
本专利技术涉及计算机应用
,特别涉及一种加壳动态链接库加载方法及装置。
技术介绍
动态链接库(so,sharedobject)是linux系统中一种常见的可执行代码的二进制格式,相比较静态链接库来说,有节省空间,运行时能够动态申请并调用等特点。Android系统本质上属于linux系统的一种,在Android系统的发展过程中,CPU架构由最早的armeabi不断发展出armeabi-v7a,arm64-v8a,x86,x86_64等平台,然而,各个平台所支持的指令集架构不尽相同,基于此,动态链接库需要适配不同平台的指令集架构,也就是动态链接库需要与平台的指令集架构相匹配,才能够被该平台内运行的应用程序所加载。相关技术中,Android系统中的应用程序加载动态链接库时,需要预先将编译好的动态链接库存放在Android系统指定的目标目录下,使得在应用程序运行时能够在目标目录下查找到与指令集架构相匹配的动态链接库进行加载。然而,动态链接库存在容易被逆向而暴露核心代码的安全隐患,因此,在开发动态链接库的过程中通常会利用特定的算法进行 ...
【技术保护点】
1.一种加壳动态链接库加载方法,其特征在于,所述方法包括:基于应用程序的动态链接库的加载请求,确定所述应用程序所运行平台的指令集架构;在预设文件目录下查找与所述指令集架构相匹配的加壳动态链接库;对所述加壳动态链接库进行解壳,以使所述应用程序加载解壳后得到的动态链接库。
【技术特征摘要】
1.一种加壳动态链接库加载方法,其特征在于,所述方法包括:基于应用程序的动态链接库的加载请求,确定所述应用程序所运行平台的指令集架构;在预设文件目录下查找与所述指令集架构相匹配的加壳动态链接库;对所述加壳动态链接库进行解壳,以使所述应用程序加载解壳后得到的动态链接库。2.如权利要求1所述的方法,其特征在于,所述基于应用程序的动态链接库的加载请求,确定所述应用程序所运行平台的指令集架构,包括:响应于所述应用程序的动态链接库的加载请求,调用目标目录下接口动态链接库的接口,得到返回值;根据所述返回值确定所述应用程序所运行平台的指令集架构。3.如权利要求1所述的方法,其特征在于,所述方法还包括:分别预先对与各个平台的指令集架构相匹配的动态链接库进行加壳处理,得到预定扩展名的加壳动态链接库;将所得到的加壳动态链接库存放在所述预设文件目录下。4.如权利要求2所述的方法,其特征在于,所述方法还包括:编写JNI接口,在编译所述JNI接口的过程中,分别加入用...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。