SO文件的加固方法、装置、电子设备和存储介质制造方法及图纸

技术编号:26478889 阅读:56 留言:0更新日期:2020-11-25 19:23
本发明专利技术公开了SO文件的加固方法、装置、电子设备和存储介质。所述方法包括:获取待加固的SO文件;基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件;其中,所述预置的SO文件包括防攻击逻辑。该技术方案的有益效果在于,对于众多待加固的SO文件,只需要预置一个或多个保护防攻击逻辑的SO文件,通过SO文件的融合实现加固,提供了一种可独立于开发过程外的SO文件保护手段,并且实现起来较为便捷,也能够起到不错的保护效果。

【技术实现步骤摘要】
SO文件的加固方法、装置、电子设备和存储介质
本专利技术涉及信息安全领域,具体涉及SO文件的加固方法、装置、电子设备和存储介质。
技术介绍
SO文件是指.so格式的动态链接库文件,在安卓应用程序中得到了广泛的应用,也因此成为了安卓应用程序破解过程中的重点关注对象,因此如何对SO文件进行保护是需要解决的问题,如果开发者既需要关注SO文件所需要实现的功能,又需要考虑如何对其进行保护,无疑增加了开发成本,然而如果以独立的过程实现对SO文件的保护,如何给出一种保护效果好的保护方案又是新的挑战。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的SO文件的加固方法、装置、电子设备和存储介质。依据本专利技术的一个方面,提供了一种动态链接库SO文件的加固方法,包括:获取待加固的SO文件;基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件;其中,所述预置的SO文件包括防攻击逻辑。可选地,所述基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件包括:对所述待加固的SO文件和预置的SO文件分别进行解析,基于解析结果对指定类型的段进行合并。可选地,所述解析结果包括如下的一种或多种信息:SO文件的加载地址、SO文件的ELF头信息、SO的段表信息、SO文件中各段的起始地址、SO文件中各段的大小。可选地,所述指定类型的段包括:PT_LOAD类型的段;所述对指定类型的段进行合并包括:将从所述预置的SO文件中解析出的类型为PT_LOAD的段表信息,添加到从所述待加固的SO文件中解析出的段表信息中,得到新段表信息。可选地,所述指定类型的段包括:与动态链接相关的段。可选地,所述与动态链接相关的段包括:与符号表对应的段以及与字符串表对应的段;所述对指定类型的段进行合并包括:去除重复的符号和字符串。可选地,所述去除重复的符号和字符串包括:若待加固的SO文件中存在JNI_Onload,则将其名称进行替换并保存该JNI_Onload的地址,以使所述加固后的SO文件在被加载后,根据所述防攻击逻辑调用保存的该JNI_Onload的地址。可选地,所述与动态链接相关的段包括:与重定位表对应的段;所述对指定类型的段进行合并包括:对重定位表的偏移量进行修正,以及对待加固的SO文件的重定位表进行加密;所述防攻击逻辑用于在所述加固后的SO文件被加载后,对加密后的重定位表进行解密。可选地,所述加密和所述解密的密钥是根据包含所述加固后的SO文件的应用的包名和/或签名文件的MD5值生成的;所述防攻击逻辑还用于防止获取应用包名和/或签名文件的接口被hook。可选地,所述将所述待加固的SO文件与预置的SO文件进行融合还包括:根据合并后的段生成新的相关段;将生成新的相关段以及合并后的段,合并在一个新PT_LOAD段。可选地,所述将所述待加固的SO文件与预置的SO文件进行融合还包括:抹去所述待加固的SO文件的ELF头信息和段表信息,以如下顺序将信息写入目标SO文件中,得到加固后的SO文件:新ELF头信息、新段表信息、空字节、待加固的SO文件以及预置的SO文件的全部内容、新PT_LOAD段、新节区头和节区。依据本专利技术的另一方面,提供了一种动态链接库SO文件的加固装置,包括:获取单元,适于获取待加固的SO文件;融合单元,适于基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件;其中,所述预置的SO文件包括防攻击逻辑。可选地,所述融合单元,适于对所述待加固的SO文件和预置的SO文件分别进行解析,基于解析结果对指定类型的段进行合并。可选地,所述解析结果包括如下的一种或多种信息:SO文件的加载地址、SO文件的ELF头信息、SO的段表信息、SO文件中各段的起始地址、SO文件中各段的大小。可选地,所述指定类型的段包括:PT_LOAD类型的段;所述融合单元,适于将从所述预置的SO文件中解析出的类型为PT_LOAD的段表信息,添加到从所述待加固的SO文件中解析出的段表信息中,得到新段表信息。可选地,所述指定类型的段包括:与动态链接相关的段。可选地,所述与动态链接相关的段包括:与符号表对应的段以及与字符串表对应的段;所述融合单元,适于去除重复的符号和字符串。可选地,所述融合单元,适于若待加固的SO文件中存在JNI_Onload,则将其名称进行替换并保存该JNI_Onload的地址,以使所述加固后的SO文件在被加载后,根据所述防攻击逻辑调用保存的该JNI_Onload的地址。可选地,所述与动态链接相关的段包括:与重定位表对应的段;所述融合单元,适于对重定位表的偏移量进行修正,以及对待加固的SO文件的重定位表进行加密;所述防攻击逻辑用于在所述加固后的SO文件被加载后,对加密后的重定位表进行解密。可选地,所述加密和所述解密的密钥是根据包含所述加固后的SO文件的应用的包名和/或签名文件的MD5值生成的;所述防攻击逻辑还用于防止获取应用包名和/或签名文件的接口被hook。可选地,所述融合单元,适于根据合并后的段生成新的相关段;将生成新的相关段以及合并后的段,合并在一个新PT_LOAD段。可选地,所述融合单元,适于抹去所述待加固的SO文件的ELF头信息和段表信息,以如下顺序将信息写入目标SO文件中,得到加固后的SO文件:新ELF头信息、新段表信息、空字节、待加固的SO文件以及预置的SO文件的全部内容、新PT_LOAD段、新节区头和节区。依据本专利技术的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。依据本专利技术的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。由上述可知,本专利技术的技术方案,在获取到待加固的SO文件后,基于SO文件的动态视图,将待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件;其中,预置的SO文件包括防攻击逻辑。该技术方案的有益效果在于,对于众多待加固的SO文件,只需要预置一个或多个保护防攻击逻辑的SO文件,通过SO文件的融合实现加固,提供了一种可独立于开发过程外的SO文件保护手段,并且实现起来较为便捷,也能够起到不错的保护效果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他本文档来自技高网...

【技术保护点】
1.一种动态链接库SO文件的加固方法,包括:/n获取待加固的SO文件;/n基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件;/n其中,所述预置的SO文件包括防攻击逻辑。/n

【技术特征摘要】
1.一种动态链接库SO文件的加固方法,包括:
获取待加固的SO文件;
基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件;
其中,所述预置的SO文件包括防攻击逻辑。


2.如权利要求1所述的方法,其中,所述基于SO文件的动态视图,将所述待加固的SO文件与预置的SO文件进行融合,得到加固后的SO文件包括:
对所述待加固的SO文件和预置的SO文件分别进行解析,基于解析结果对指定类型的段进行合并。


3.如权利要求2所述的方法,其中,所述解析结果包括如下的一种或多种信息:
SO文件的加载地址、SO文件的ELF头信息、SO的段表信息、SO文件中各段的起始地址、SO文件中各段的大小。


4.如权利要求2所述的方法,其中,所述指定类型的段包括:PT_LOAD类型的段;
所述对指定类型的段进行合并包括:将从所述预置的SO文件中解析出的类型为PT_LOAD的段表信息,添加到从所述待加固的SO文件中解析出的段表信息中,得到新段表信息。


5.一种动态链接库SO文件的加固装置,包括:
获取单元,适于获取待加固的SO文件;
融合单元,适于基于SO文件的动态视图...

【专利技术属性】
技术研发人员:李鹤仙曹阳
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1