The invention discloses a method and a device for compiling a dynamic link library SO file of a Android installation package. The method comprises the following steps: read SO SO file to compile equipment in memory; for at least one of the specified section in the SO file, locate the specified starting address section; according to the starting address of the specified section to the location, access to the information stored in the specified section. The technical scheme of the addressable memory, the code segment accurately to obtain data and information, and access to the data needed, which can be used for further development and strengthening, high efficiency and good practicability.
【技术实现步骤摘要】
一种编译安卓安装包的动态链接库SO文件的方法和装置
本专利技术涉及计算机
,具体涉及一种编译安卓安装包的动态链接库SO文件的方法和装置。
技术介绍
随着技术的不断发展,安卓应用程序在开发过程中往往不再单纯依赖于JAVA开发环境,也逐渐利用JAVA的JNI(JavaNativeInterface,JAVA本地接口)机制,开发一些在其他语言环境下编写的文件,例如,动态链接库SO、DLL文件等。这些文件可以通过JNI机制被安卓系统调用,实现更多功能。但也因为如此,对这些文件的加固是开发者们不断探求的过程,而在加固过程中,往往要对原SO文件进行编译,获取其中的一些信息,如何准确、快速地获取到需要的信息是亟待解决的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的编译安卓安装包的动态链接库SO文件的方法和装置。依据本专利技术的一个方面,提供了一种编译安卓安装包的动态链接库SO文件的方法,包括:读取SO文件到SO文件编译设备的内存中;对所述SO文件中的至少一个指定节,定位指定节的起始地址;根据定位到的指定节的起始地址,获取该指定节存储的数据信息。可选地,所述定位指定节的起始地址包括:获取所述SO文件的起始地址;计算所述指定节在所述SO文件中的文件偏移;将所述指定节在所述SO文件中的文件偏移与所述SO文件的起始地址之和作为指定节的起始地址。可选地,所述计算所述指定节在所述SO文件中的文件偏移包括:获取所述SO文件的起始虚拟地址;获取所述指定节的起始虚拟地址;将所述指定节的起始虚拟地址与所述SO文件的起始虚拟地址作差 ...
【技术保护点】
一种编译安卓安装包的动态链接库SO文件的方法,其中,该方法包括:读取SO文件到SO文件编译设备的内存中;对所述SO文件中的至少一个指定节,定位指定节的起始地址;根据定位到的指定节的起始地址,获取该指定节存储的数据信息。
【技术特征摘要】
1.一种编译安卓安装包的动态链接库SO文件的方法,其中,该方法包括:读取SO文件到SO文件编译设备的内存中;对所述SO文件中的至少一个指定节,定位指定节的起始地址;根据定位到的指定节的起始地址,获取该指定节存储的数据信息。2.如权利要求1所述的方法,其中,所述定位指定节的起始地址包括:获取所述SO文件的起始地址;计算所述指定节在所述SO文件中的文件偏移;将所述指定节在所述SO文件中的文件偏移与所述SO文件的起始地址之和作为指定节的起始地址。3.如权利要求2所述的方法,其中,所述计算所述指定节在所述SO文件中的文件偏移包括:获取所述SO文件的起始虚拟地址;获取所述指定节的起始虚拟地址;将所述指定节的起始虚拟地址与所述SO文件的起始虚拟地址作差,所得的差再与所述SO文件的起始地址求和,将所得的和作为所述指定节在所述SO文件中的文件偏移。4.如权利要求3所述的方法,其中,所述获取所述SO文件的起始虚拟地址包括:从所述SO文件编译设备的SO文件编译器中读取所述SO文件的起始虚拟地址。5.如权利要求3所述的方法,其中,所述获取所述指定节的起始虚拟地址包括:解析所述SO文件的dynamic段;从所述dynamic段查找出与所述指定节对应的Elf32_Dyn项;从与所述指定节对应的Elf32_Dyn项中读取d_ptr的值,将其作为所述指定节的...
【专利技术属性】
技术研发人员:吴乐,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。