CN104392181A - So文件的保护方法、装置及安卓安装包的加固方法和系统 - Google Patents

So文件的保护方法、装置及安卓安装包的加固方法和系统 Download PDF

Info

Publication number
CN104392181A
CN104392181A CN201410659762.2A CN201410659762A CN104392181A CN 104392181 A CN104392181 A CN 104392181A CN 201410659762 A CN201410659762 A CN 201410659762A CN 104392181 A CN104392181 A CN 104392181A
Authority
CN
China
Prior art keywords
file
installation kit
code
android installation
android
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410659762.2A
Other languages
English (en)
Inventor
施华国
刘敦俊
杨新权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410659762.2A priority Critical patent/CN104392181A/zh
Publication of CN104392181A publication Critical patent/CN104392181A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种SO文件的保护方法、装置及安卓安装包的加固方法和系统。其中,SO文件的保护方法包括:将待保护的SO文件作为代码数据写入壳程序文件中;对所述壳程序文件中的所述SO文件进行加保护处理。本发明提供的技术方案通过对SO文件的加壳处理和加保护处理,实现了对SO文件的多重保护,并进一步通过将安卓安装包的重要代码存入SO文件,以该被保护的SO文件为保护对象,实现了对安卓安装包的加固保护,可以有效阻止恶意程序对SO文件的反汇编分析,提高SO文件的内容的安全等级,进而提高安卓安装包的安全等级。

Description

SO文件的保护方法、装置及安卓安装包的加固方法和系统
技术领域
本发明涉及数据安全领域,具体涉及SO文件的保护方法、装置及安卓安装包的加固方法和系统。
背景技术
安卓平台发展迅速,已经逐渐成为了移动终端的最普及的操作系统,与其他终端操作系统相比,开放式的安卓系统为应用开发者提供了更多的功能接口,这些功能接口在提高了系统的可扩展性,但同时也为恶意软件提供了便利。针对安卓系统的木马等恶意软件可以通过伪装的方式保存在安卓安装包中,骗取用户安装并授予一定的权限,之后通过滥用权限在后台执行一些特定行为,包括窃取用户隐私、骗取资费等行为;不仅如此,对于一些正常的安卓系统应用,也存在通过非法拷贝、逆向工程、反编译、调试、破解、二次打包、内存截取等手段来威胁安卓系统的安全,不仅危害了使用者,也给正常应用开发者造成严重的损害。
目前市面上针对安卓安装包的保护主要是基于对dex文件的保护,一般是通过对dex文件进行加密和混淆等处理手段来实现,在安卓安装包运行时再动态解密,还原内容。但是由于dex文件的反编译难度较低,很容易被反编译工具轻易逆向,导致该类方案始终无法完全解决安卓安装包面临的安全问题,开发者们也一直在寻求更有效的解决方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的SO文件的保护方法、装置及安卓安装包的加固方法和系统。
依据本发明的一个方面,提供了一种SO文件的保护方法,该方法包括:
将待保护的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理。
可选地,所述对所述壳程序文件中的所述SO文件进行加保护处理包括如下中的一种或多种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
可选地,所述去掉所述SO文件中的部分信息包括:
去掉部分或全部头部信息。
可选地,所述对所述SO文件进行分段加密处理包括:
对所述SO文件的数据节和代码节分别进行加密。
可选地,所述对所述SO文件进行代码混淆处理包括:
在所述SO文件的代码中填充控制量代码得到扩充后的第一代码;
采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。
可选地,对所述SO文件进行反调试处理包括:
将可用于反调试的点插入到所述SO文件进行代码混淆后的代码中。
可选地,所述壳程序文件中包含能够对加保护处理后的SO文件进行解密处理的代码。
可选地,该方法进一步包括:
对所述壳程序文件进行加密处理。
根据本发明的另一个方面,提供了一种安卓安装包的加固方法,该方法包括:
将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
对所述SO文件采用如上任一项所述的方法进行保护;
将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
可选地,所述对安卓安装包实现加密保护的代码为:对安卓安装包中的dex文件进行加密保护的代码,或者,安卓安装包中的dex文件核心代码。
可选地,该方法进一步包括:
根据所述SO文件的相关信息,修改所述壳程序文件中的相关配置信息。
可选地,所述修改所述壳程序文件中的相关配置信息包括:
修改所述壳程序文件中的如下参数中的一种或多种:校验码、SHA1签名和文件长度的信息。
可选地,该方法进一步包括:
根据包含SO文件的所述壳程序文件的文件信息,修改所述安卓安装包中的全局配置文件。
可选地,该方法包括:
接收用户上传的需要进行加固保护的安卓安装包;其中,所述对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
对所述SO文件采用如权利要求1-8中任一项所述的方法进行保护;
将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包供所述用户下载。
根据本发明的一个方面,提供了一种SO文件的保护装置,该装置包括:
写入单元,适于将待保护的SO文件作为代码数据写入壳程序文件中;
保护处理单元,适于对壳程序文件中的SO文件进行加保护处理。
可选地,所述保护处理单元,适于去掉所述SO文件中的部分信息;和/或,适于对所述SO文件进行分段加密处理;和/或,适于对所述SO文件进行代码混淆处理;和/或,适于对所述SO文件进行反调试处理。
可选地,所述保护处理单元,适于去掉所述SO文件的部分或者全部头部信息。
可选地,所述保护处理单元,适于对所述SO文件的数据节和代码节分别进行加密。
可选地,所述保护处理单元,适于在所述SO文件的代码中填充控制量代码得到扩充后的第一代码;并适于采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。
可选地,所述保护处理单元,适于将可用于反调试的点插入到所述SO文件进行代码混淆后的代码中。
可选地,所述壳程序文件中包含能够对所述保护处理单元加保护处理后的SO文件进行解密处理的代码。
可选地,所述保护处理单元,进一步适于对所述壳程序文件进行加密处理。
根据本发明的另一个方面,提供了一种安卓安装包的加固系统,该系统包括:保存处理模块、第一打包模块和如上述任一项所述的SO文件的保护装置;
保存处理模块,适于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
SO文件的保护装置,适于对所述SO文件进行保护处理;
第一打包模块,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
可选地,所述保存处理模块,适于将对安卓安装包中的dex文件进行加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中,或者,将安卓安装包中的dex文件核心代码保存到所述安卓安装包的lib目录下的SO文件中。
可选地,该系统进一步包括:
修改模块,适于根据所述SO文件的相关信息,修改所述壳程序文件中的相关配置信息。
可选地,所述修改模块,适于根据所述SO文件的相关信息,修改所述壳程序文件中的校验码、SHA1签名和文件长度的信息中的一种或多种。
可选地,所述修改模块,进一步适于根据包含SO文件的所述壳程序文件的文件信息,修改所述安卓安装包中的全局配置文件。
根据本发明的又一个方面,提供了一种安卓安装包的加固系统,该系统包括:接收模块、第二打包模块、下载接口模块和如上述任一项所述的SO文件的保护装置;
接收模块,适于接收用户上传的需要进行加固保护的安卓安装包;其中,所述对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
SO文件的保护装置,适于对所述SO文件进行保护处理;
第二打包模块,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包;
下载接口模块,适于供用户下载所述重新打包生成加固安装包。
上述技术方案通过对SO文件的加壳处理和加保护处理,实现了对SO文件的多重保护,并进一步通过将安卓安装包的重要代码存入SO文件,以该被保护的SO文件为保护对象,实现了对安卓安装包的加固保护,可以有效阻止恶意程序对SO文件的反汇编分析,提高SO文件的内容的安全等级,进而提高安卓安装包的安全等级,保护开发者和使用者的利益。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种SO文件的保护方法的流程图;
图2示出了根据本发明另一个实施例的一种SO文件的保护方法的流程图;
图3示出了根据本发明一个实施例的一种安卓安装包的加固方法的流程图;
图4示出了根据本发明另一个实施例的一种安卓安装包的加固方法的流程图;
图5示出了根据本发明一个实施例的一种SO文件的保护装置的示意图;
图6示出了根据本发明一个实施例的一种安卓安装包的加固系统的示意图;
图7示出了根据本发明另一个实施例的一种安卓安装包的加固系统的示意图;
图8示出了根据本发明又一个实施例的一种安卓安装包的加固系统的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种SO文件的保护方法的流程图。本申请中所述的SO文件是指linux下的库文件,后缀为.so,因此得名。SO文件是ELF格式的动态链接库文件,该类文件在程序运行需要的时候才动态加载到程序中,支持程序的运行。如图1所示,该方法包括:
步骤S110,将待保护的SO文件作为代码数据写入壳程序文件中。
本步骤是对SO文件进行加壳的过程,即将SO文件写入壳程序文件中的指定位置,在加载运行SO文件时,壳程序文件会先于SO文件运行,取得优先权,保护SO文件不被非法修改或反编译。
步骤S120,对壳程序文件中的SO文件进行加保护处理。
本步骤对加壳后的SO文件进一步加固。
可见,图1所示的方法通过对SO文件的加壳处理和加保护处理,实现了对SO文件的多重保护,可以有效阻止恶意程序对SO文件的反汇编分析,提高SO文件的内容的安全等级。
在本发明的一个实施例中,图1所示方法的步骤S120中对壳程序文件中的SO文件进行加保护处理可以是如下的一种或多种处理方式:
去掉SO文件中的部分信息;
对SO文件进行分段加密处理;
对SO文件进行代码混淆处理;
对SO文件进行反调试处理。
在上述实施例中,去掉SO文件中的部分信息会导致SO文件信息缺失,即使有人对SO文件进行恶意解密或反编译,也无法得到完整的SO文件,很难做到静态工具分析;在本发明的一些实施例中会去掉SO文件中的部分或全部头部信息。
在上述实施例中,对SO文件进行分段加密处理可以是:对SO文件的数据节和代码节分别进行加密,增加解密难度。
在上述实施例中,对SO文件进行代码混淆处理是不改变代码逻辑的情况下,在SO文件的代码中增加无用代码,或者对SO文件的代码进行重命名,使反编译后的源代码难以看懂,增加反编译后代码分析的难度;在本发明的一些实施例中,对SO文件进行代码混淆处理可以包括:
步骤S121,在SO文件的代码中填充控制量代码得到扩充后的第一代码。
本步骤对SO文件的代码空间进行了扩充。
步骤S122,采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。
本步骤中,从第一代码中提取出的控制量以外的代码是SO文件的有效代码,随机化处理后,有效代码的顺序被打乱,其中插入的跳转指令代码是无效代码,不会影响程序的正常执行,无效代码将打乱的有效代码扩充为另一段代码,并将该段代码会填到源代码的代码空间内,由于代码空间在步骤S121中被扩充,因此扩充后的代码与代码空间是相匹配的。
在上述实施例中,对SO文件进行反调试是一个重要的保护功能,其反调试处理可以是:将可用于反调试的点插入到SO文件进行代码混淆后的代码中;代码混淆后,反调试的点就不容易找到,这样能给破解者进行调试的时候造成很多困扰,增加破解难度。
在本发明的一个实施例中,图1所示的方法中的壳程序文件中包含能够对加保护处理后的SO文件进行解密处理的代码。在加载运行SO文件时,壳程序文件会先于SO文件运行,取得优先权,对加保护处理后的SO文件进行解密处理,使得SO文件的源代码恢复为完整的、代码排序正常的、无加密的、可完全还原的代码,进而在解壳后可以正常的加载运行。
图2示出了根据本发明另一个实施例的一种SO文件的保护方法的流程图。如图2所示,该方法包括:
步骤S210,将待保护的SO文件作为代码数据写入壳程序文件中。
步骤S220,对壳程序文件中的SO文件进行加保护处理。
上述的步骤S210和步骤S220与图1所示方法的步骤S110和步骤S120相同,在此不再赘述。
步骤S230,对壳程序文件进行加密处理。
本步骤在SO文件进行加壳和加保护处理后,又进一步对包裹SO文件的壳文件进行加密,将SO文件的保护方案进一步加固。
图3示出了根据本发明一个实施例的一种安卓安装包的加固方法的流程图。如图3所示,该方法包括:
步骤S310,将对安卓安装包实现加密保护的代码保存到安卓安装包的lib目录下的SO文件中。
在安卓系统上,一个可以安装、运行的应用,需要打包成安卓安装包,即APK(Android application package file)文件格式。安卓安装包其实是ZIP文件格式,但后缀名被修改成.apk,可以通过Unzip等工具解压看到其内部文件结构,如表1所示:
表1
文件名 说明
META-INF\ 证书文件
res\ 资源文件
assets\ 额外资源文件
resources.arsc 二进制资源文件
classes.dex .源码资源文件
AndroidManifest.xml 全局配置文件
lib\ 附加组件
其中,META-INF目录下一般有MANIFEST.MF和以.RSA、.SF结尾的文件,这些文件记录了其它目录文件的证书签名,Android系统在安装APK安装包的时候会逐个检查APK内部各文件是否与本目录记录的证书签名一致,如果不一致,则认为文件已被篡改,拒绝该APK的安装和运行。
res目录存放的是安卓应用所使用的图片资源和界面的布局等文件。
assets目录下存放的是安卓应用所使用的额外资源和配置文件,如TXT或HTML说明文档、字体文件和图片资源。
resources.arsc文件是经过编译后的资源文件。
class.dex文件是Java源码编译后生成的Java字节码文件,.dex是DalvikExecutable(Dalvik虚拟机可执行文件)的缩写。
AndroidManifest.xml文件是安卓安装包的全局描述文件,该文件记录了应用的包名、版本号、权限、引用的库文件、模块入口、类等信息。lib目录是JNI(Java Native Interface)库文件,一般在armeabi子文件夹中存放一些SO文件。而图3所示方法的本步骤S310就是将实现加密保护的代码保存到该lib目录的SO文件中。
步骤S320,对该SO文件采用SO文件的保护方法进行保护。
本步骤中所采用的SO文件的保护方法是指:如上文图1或图2所示的方法,在此不再赘述。
步骤S330,将进行保护后的SO文件和安卓安装包的其他部分重新打包生成加固安装包。
可见,图3所示的方法通过将对安卓安装包实现加密保护的代码存入SO文件中,并对该SO文件进行如图1或图2所示的多重保护,实现了对安卓安装包的加固保护,提高安卓安装包的安全系数,增加逆向难度,防止安卓应用所使用的密钥体系等关键信息的泄露。
由前文可知,dex文件为安卓安装包的可执行文件,为了防止安卓安装包被篡写,目前市面上针对安卓安装包的保护主要是基于对dex的保护,但是由于dex很容易被反编译,而相对于dex文件,SO文件的反编译难度较高,因此,在本发明的一个实施例中,要将关于dex文件的重要代码写入SO文件中,该代码可以是对dex文件进行加密保护的代码,也可以是dex文件自身的一段核心代码。
在本发明的一个实施例中,图3所示的方法进一步包括:
步骤S340,根据SO文件的相关信息,修改壳程序文件中的相关配置信息。在本实施例中,修改壳程序文件中的相关配置信息可以是:修改壳程序文件中的校验码、SHA1签名和文件长度的信息中的一种或多种。
在本发明的一个实施例中,图3所示的方法进一步包括:步骤S350,根据包含SO文件的壳程序文件的文件信息,修改安卓安装包中的全局配置文件。该全局配置文件即上文中介绍的AndroidManifest.xml文件,记录了应用的包名、版本号、权限、引用的库文件、模块入口、类等信息,当安卓安装包中放入包含SO文件的壳程序文件时,全局配置文件随之改变,修改后的全局配置文件覆盖原全局配置文件。
图4示出了根据本发明另一个实施例的一种安卓安装包的加固方法的流程图。如图4所示,该方法包括:
步骤S410,接收用户上传的需要进行加固保护的安卓安装包。
本步骤中,对安卓安装包实现加密保护的代码保存到安卓安装包的lib目录下的SO文件中。在本发明的一个实施例中,该对安卓安装包实现加密保护的代码可以是:对安卓安装包中的dex文件进行加密保护的代码,或者,安卓安装包中的dex文件核心代码。
步骤S420,对SO文件采用SO文件的保护方法进行保护。
本步骤中所采用的SO文件的保护方法是指如上文图1或图2所示的方法,在此不再赘述。
步骤S430,将进行保护后的SO文件和安卓安装包的其他部分重新打包生成加固安装包供所述用户下载。
可见,图4所示的方法通过对用户上传的安卓安装包的SO文件的多重保护,实现了对安卓安装包的加固保护,建立了对安卓安装包进行加固保护的平台,当用户的安卓安装包的SO文件中保存有重要代码时,需要对该SO动态链接库进行保护和加固,本方案满足用户需求。
图5示出了根据本发明一个实施例的一种SO文件的保护装置的示意图。如图5所示,该SO文件的保护装置500包括:
写入单元510,适于将待保护的SO文件作为代码数据写入壳程序文件中。
本单元执行了对SO文件进行加壳的过程,即将SO文件写入壳程序文件中的指定位置,在加载运行SO文件时,壳程序文件会先于SO文件运行,取得优先权,保护SO文件不被非法修改或反编译。
保护处理单元520,适于对壳程序文件中的SO文件进行加保护处理。
本单元对加壳后的SO文件进一步加固。
可见,图5所示的SO文件的保护装置500通过写入单元510对SO文件的加壳处理和保护处理单元520对SO文件的加保护处理,实现了SO文件的多重保护,可以有效阻止恶意程序对SO文件的反汇编分析,提高SO文件的内容的安全等级。
在本发明的一个实施例中,图5所示的SO文件的保护装置500的保护处理单元520,适于去掉SO文件中的部分信息;和/或,适于对SO文件进行分段加密处理;和/或,适于对SO文件进行代码混淆处理;和/或,适于对SO文件进行反调试处理。
在上述实施例中,去掉SO文件中的部分信息会导致SO文件信息缺失,即使有人对SO文件进行恶意解密或反编译,也无法得到完整的SO文件,很难做到静态工具分析;在本发明的一些实施例中,图5所示装置的保护处理单元520适于去掉SO文件中的部分或全部头部信息。
在上述实施例中,对SO文件进行分段加密处理可以是:对SO文件的数据节和代码节分别进行加密,增加解密难度。
在上述实施例中,对SO文件进行代码混淆处理是不改变代码逻辑的情况下,在SO文件的代码中增加无用代码,或者对SO文件的代码进行重命名,使反编译后的源代码难以看懂,增加反编译后代码分析的难度;在本发明的一些实施例中,图5所示装置的保护处理单元520,适于在SO文件的代码中填充控制量代码得到扩充后的第一代码;并适于采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。该过程首先对SO文件的代码空间进行了扩充,其次,从第一代码中提取出的控制量以外的代码是SO文件的有效代码,随机化处理后,有效代码的顺序被打乱,其中插入的跳转指令代码是无效代码,不会影响程序的正常执行,无效代码将打乱的有效代码扩充为另一段代码,并将该段代码会填到源代码的代码空间内,由于代码空间之前已被扩充,因此扩充后的代码与代码空间是相匹配的。
在上述实施例中,对SO文件进行反调试是一个重要的保护功能,图5所示装置的保护处理单元520的反调试处理可以是:将可用于反调试的点插入到SO文件进行代码混淆后的代码中;代码混淆后,反调试的点就不容易找到,这样能给破解者进行调试的时候造成很多困扰,增加破解难度。
在本发明的一个实施例中,图5所示方案所述的壳程序文件中包含能够对保护处理单元520加保护处理后的SO文件进行解密处理的代码。在加载运行SO文件时,壳程序文件会先于SO文件运行,取得优先权,对加保护处理后的SO文件进行解密处理,使得SO文件的源代码恢复为完整的、代码排序正常的、无加密的、可完全还原的代码,进而在解壳后可以正常的加载运行。
在本发明的一个实施例中,图5所示的SO文件的保护装置500的保护处理单元520,进一步适于对壳程序文件进行加密处理。本装置在对SO文件进行加壳和加保护处理后,又进一步对包裹SO文件的壳文件进行加密,将SO文件的保护方案进一步加固。
图6示出了根据本发明一个实施例的一种安卓安装包的加固系统的示意图。如图6所示,该安卓安装包的加固系统600包括:
保存处理模块610,适于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中。
安卓安装包的内部文件结构,如表1所示,在此不再赘述。
SO文件的保护装置620,适于对所述SO文件进行保护处理。SO文件的保护装置620具体可以是图5中的SO文件的保护装置500。
本模块所采用的SO文件的保护装置是指如图5所示的SO文件的保护装置500,在此不再赘述。
第一打包模块630,适于将进行保护后的SO文件和安卓安装包的其他部分重新打包生成加固安装包。
可见,图6所示的安卓安装包的加固系统600通过保存处理模块610将对安卓安装包实现加密保护的代码存入SO文件中,并通过SO文件的保护装置620对该SO文件进行如图1或图2所示的多重保护,实现了对安卓安装包的加固保护,提高安卓安装包的安全系数,增加逆向难度,防止安卓应用所使用的密钥体系等关键信息的泄露。
由前文可知,dex文件为安卓安装包的可执行文件,为了防止安卓安装包被篡写,目前市面上针对安卓安装包的保护主要是基于对dex的保护,但是由于dex很容易被反编译,而相对于dex文件,SO文件的反编译难度较高,因此,在本发明的一个实施例中,图6所示系统的保存处理模块610,适于将对安卓安装包中的dex文件进行加密保护的代码保存到安卓安装包的lib目录下的SO文件中,或者,将安卓安装包中的dex文件自身的一段核心代码保存到安卓安装包的lib目录下的SO文件中。
图7示出了根据本发明另一个实施例的一种安卓安装包的加固系统的示意图。如图7所示,该安卓安装包的加固系统700包括:
保存处理模块710,适于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中。
SO文件的保护装置720,适于对所述SO文件采用SO文件的保护装置进行保护。
第一打包模块730,适于将进行保护后的SO文件和安卓安装包的其他部分重新打包生成加固安装包。
本实施例中,保存处理模块710、SO文件的保护装置720和第一打包模块730分别与保存处理模块610、SO文件的保护装置620和第一打包模块630相同,在此不再赘述。
修改模块740,适于根据包含SO文件的壳程序文件的文件信息,修改安卓安装包中的全局配置文件。
当安卓安装包中放入包含SO文件的壳程序文件时,全局配置文件随之改变,修改模块740修改后的全局配置文件覆盖原全局配置文件。
在本发明的一个实施例中,图7所示的安卓安装包的加固系统700的修改模块740,进一步适于根据SO文件的相关信息,修改壳程序文件中的相关配置信息。
在本发明的一个实施例中,图7所示的安卓安装包的加固系统700的修改模块740,适于根据SO文件的相关信息,修改壳程序文件中的校验码、SHA1签名和文件长度的信息中的一种或多种。
图8示出了根据本发明又一个实施例的一种安卓安装包的加固系统的示意图。如图8所示,该安卓安装包的加固系统800包括:
接收模块810,适于接收用户上传的需要进行加固保护的安卓安装包。
其中,对安卓安装包实现加密保护的代码保存到安卓安装包的lib目录下的SO文件中。
SO文件的保护装置820,适于对SO文件采用SO文件的保护装置进行保护。SO文件的保护装置820具体可以是图5中的SO文件的保护装置500,在此不再赘述。
第二打包模块830,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
下载接口模块840,适于供用户下载所述重新打包生成加固安装包。
可见,图8所示的安卓软件安装包的加固系统800通过接收模块810和SO文件的保护装置820对用户上传的安卓安装包的SO文件的多重保护,实现了对安卓安装包的加固保护,建立了对安卓安装包进行加固保护的平台,当开发者的安卓安装包的SO文件中保存有重要代码时,有对该SO动态链接库进行保护和加固的需求,本方案满足用户需求。
综上所述,本发明的技术方案通过对SO文件的加壳和加保护处理,实现了对SO文件的保护,并进一步通过对安卓安装包中的SO文件的保护,实现了对安卓安装包的加固保护。与现有技术相比,本方案将安卓安装包的保护从以可执行文件为对象转为以SO文件为对象,由于SO文件相对于可执行文件具有更高的安全系数,因此,本方案的实施将会极大地提高安卓安装包的信息安全等级,防止安卓软件包被轻易逆向,保护开发者及使用者的利益。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的SO文件的保护装置及安卓安装包的加固系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种SO文件的保护方法,该方法包括:
将待保护的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理。
A2、如A1所述的方法,其中,所述对所述壳程序文件中的所述SO文件进行加保护处理包括如下中的一种或多种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
A3、如A2所述的方法,其中,所述去掉所述SO文件中的部分信息包括:
去掉部分或全部头部信息。
A4、如A2所述的方法,其中,所述对所述SO文件进行分段加密处理包括:
对所述SO文件的数据节和代码节分别进行加密。
A5、如A2所述的方法,其中,所述对所述SO文件进行代码混淆处理包括:
在所述SO文件的代码中填充控制量代码得到扩充后的第一代码;
采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。
A6、如A2所述的方法,其中,对所述SO文件进行反调试处理包括:
将可用于反调试的点插入到所述SO文件进行代码混淆后的代码中。
A7、如A1-A6中任一项所述的方法,其中,
所述壳程序文件中包含能够对加保护处理后的SO文件进行解密处理的代码。
A8、如A1-A6中任一项所述的方法,其中,该方法进一步包括:
对所述壳程序文件进行加密处理。
本发明还公开了B9、一种安卓安装包的加固方法,该方法包括:
将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
对所述SO文件采用如A1-A8中任一项所述的方法进行保护;
将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
B10、如B9所述的方法,其中,
所述对安卓安装包实现加密保护的代码为:对安卓安装包中的dex文件进行加密保护的代码,或者,安卓安装包中的dex文件核心代码。
B11、如B9所述的方法,其中,该方法进一步包括:
根据所述SO文件的相关信息,修改所述壳程序文件中的相关配置信息。
B12、如B11所述的方法,其中,所述修改所述壳程序文件中的相关配置信息包括:
修改所述壳程序文件中的如下参数中的一种或多种:校验码、SHA1签名和文件长度的信息。
B13、如B9所述的方法,其中,该方法进一步包括:
根据包含SO文件的所述壳程序文件的文件信息,修改所述安卓安装包中的全局配置文件。
本发明还公开了C14、一种安卓安装包的加固方法,该方法包括:
接收用户上传的需要进行加固保护的安卓安装包;其中,所述对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
对所述SO文件采用如A1-A8中任一项所述的方法进行保护;
将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包供所述用户下载。
本发明还公开了D15、一种SO文件的保护装置,该装置包括:
写入单元,适于将待保护的SO文件作为代码数据写入壳程序文件中;
保护处理单元,适于对壳程序文件中的SO文件进行加保护处理。
D16、如D15所述的装置,其中,
所述保护处理单元,适于去掉所述SO文件中的部分信息;和/或,适于对所述SO文件进行分段加密处理;和/或,适于对所述SO文件进行代码混淆处理;和/或,适于对所述SO文件进行反调试处理。
D17、如D16所述的装置,其中,
所述保护处理单元,适于去掉所述SO文件的部分或者全部头部信息。
D18、如D16所述的装置,其中,
所述保护处理单元,适于对所述SO文件的数据节和代码节分别进行加密。
D19、如D16所述的装置,其中,
所述保护处理单元,适于在所述SO文件的代码中填充控制量代码得到扩充后的第一代码;并适于采用指定代码混淆工具从第一代码中提取出控制量以外的代码,对提取出的代码的顺序进行随机化处理,并在其中插入跳转指令代码,以保证程序能够正常执行。
D20、如D16所述的装置,其中,
所述保护处理单元,适于将可用于反调试的点插入到所述SO文件进行代码混淆后的代码中。
D21、如D15-D20中任一项所述的装置,其中,
所述壳程序文件中包含能够对所述保护处理单元加保护处理后的SO文件进行解密处理的代码。
D22、如D15-D20中任一项所述的方法,其中,
所述保护处理单元,进一步适于对所述壳程序文件进行加密处理。
本发明还公开E23、一种安卓安装包的加固系统,其中,该系统包括:保存处理模块、第一打包模块和如D15-D22中任一项所述的SO文件的保护装置;
保存处理模块,适于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
SO文件的保护装置,适于对所述SO文件进行保护处理;
第一打包模块,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
E24、如E23所述的系统,其中,
所述保存处理模块,适于将对安卓安装包中的dex文件进行加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中,或者,将安卓安装包中的dex文件核心代码保存到所述安卓安装包的lib目录下的SO文件中。
E25、如E23所述的系统,其中,该系统进一步包括:
修改模块,适于根据所述SO文件的相关信息,修改所述壳程序文件中的相关配置信息。
E26、如E25所述的系统,其中,
所述修改模块,适于根据所述SO文件的相关信息,修改所述壳程序文件中的校验码、SHA1签名和文件长度的信息中的一种或多种。
E27、如E23所述的系统,其中,
所述修改模块,进一步适于根据包含SO文件的所述壳程序文件的文件信息,修改所述安卓安装包中的全局配置文件。
F28、一种安卓安装包的加固系统,该系统包括:接收模块、第二打包模块、下载接口模块和如权利要求D15-D22中任一项所述的SO文件的保护装置;
接收模块,适于接收用户上传的需要进行加固保护的安卓安装包;其中,所述对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
SO文件的保护装置,适于对所述SO文件进行保护处理;
第二打包模块,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包;
下载接口模块,适于供用户下载所述重新打包生成加固安装包。

Claims (10)

1.一种SO文件的保护方法,其中,该方法包括:
将待保护的SO文件作为代码数据写入壳程序文件中;
对所述壳程序文件中的所述SO文件进行加保护处理。
2.如权利要求1所述的方法,其中,所述对所述壳程序文件中的所述SO文件进行加保护处理包括如下中的一种或多种:
去掉所述SO文件中的部分信息;
对所述SO文件进行分段加密处理;
对所述SO文件进行代码混淆处理;
对所述SO文件进行反调试处理。
3.一种安卓安装包的加固方法,其中,该方法包括:
将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
对所述SO文件采用如权利要求1-2中任一项所述的方法进行保护;
将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
4.如权利要求3所述的方法,其中,
所述对安卓安装包实现加密保护的代码为:对安卓安装包中的dex文件进行加密保护的代码,或者,安卓安装包中的dex文件核心代码。
5.一种安卓安装包的加固方法,其中,该方法包括:
接收用户上传的需要进行加固保护的安卓安装包;其中,所述对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
对所述SO文件采用如权利要求1-2中任一项所述的方法进行保护;
将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包供所述用户下载。
6.一种SO文件的保护装置,其中,该装置包括:
写入单元,适于将待保护的SO文件作为代码数据写入壳程序文件中;
保护处理单元,适于对壳程序文件中的SO文件进行加保护处理。
7.如权利要求6所述的装置,其中,
所述保护处理单元,适于去掉所述SO文件中的部分信息;和/或,适于对所述SO文件进行分段加密处理;和/或,适于对所述SO文件进行代码混淆处理;和/或,适于对所述SO文件进行反调试处理。
8.一种安卓安装包的加固系统,其中,该系统包括:保存处理模块、第一打包模块和如权利要求6-7中任一项所述的SO文件的保护装置;
保存处理模块,适于将对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
SO文件的保护装置,适于对所述SO文件进行保护处理;
第一打包模块,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包。
9.如权利要求8所述的系统,其中,
所述保存处理模块,适于将对安卓安装包中的dex文件进行加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中,或者,将安卓安装包中的dex文件核心代码保存到所述安卓安装包的lib目录下的SO文件中。
10.一种安卓安装包的加固系统,其中,该系统包括:接收模块、第二打包模块、下载接口模块和如权利要求6-7中任一项所述的SO文件的保护装置;
接收模块,适于接收用户上传的需要进行加固保护的安卓安装包;其中,所述对安卓安装包实现加密保护的代码保存到所述安卓安装包的lib目录下的SO文件中;
SO文件的保护装置,适于对所述SO文件进行保护处理;
第二打包模块,适于将进行保护后的SO文件和所述安卓安装包的其他部分重新打包生成加固安装包;
下载接口模块,适于供用户下载所述重新打包生成加固安装包。
CN201410659762.2A 2014-11-18 2014-11-18 So文件的保护方法、装置及安卓安装包的加固方法和系统 Pending CN104392181A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410659762.2A CN104392181A (zh) 2014-11-18 2014-11-18 So文件的保护方法、装置及安卓安装包的加固方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410659762.2A CN104392181A (zh) 2014-11-18 2014-11-18 So文件的保护方法、装置及安卓安装包的加固方法和系统

Publications (1)

Publication Number Publication Date
CN104392181A true CN104392181A (zh) 2015-03-04

Family

ID=52610083

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410659762.2A Pending CN104392181A (zh) 2014-11-18 2014-11-18 So文件的保护方法、装置及安卓安装包的加固方法和系统

Country Status (1)

Country Link
CN (1) CN104392181A (zh)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205356A (zh) * 2015-09-17 2015-12-30 清华大学深圳研究生院 一种app应用重打包检测方法
CN105447349A (zh) * 2015-11-20 2016-03-30 珠海多玩信息技术有限公司 对so文件中的导出符号进行保护的方法及装置
CN105512521A (zh) * 2015-12-25 2016-04-20 北京奇虎科技有限公司 一种软件安装包的加固保护方法和系统
CN105608391A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105630659A (zh) * 2015-12-23 2016-06-01 北京奇虎科技有限公司 应用崩溃日志的获取方法及装置
CN105653432A (zh) * 2015-12-22 2016-06-08 北京奇虎科技有限公司 一种崩溃数据的处理方法和装置
CN105704149A (zh) * 2016-03-24 2016-06-22 国网江苏省电力公司电力科学研究院 一种电力移动应用安全防护方法
CN105825085A (zh) * 2016-03-16 2016-08-03 广州彩瞳网络技术有限公司 应用程序的处理方法及装置
CN106203006A (zh) * 2016-08-31 2016-12-07 北京鼎源科技有限公司 基于dex与so文件动态执行的Android应用加固方法
CN106293852A (zh) * 2016-08-19 2017-01-04 北京奇虎科技有限公司 一种加固安装包的资源文件的方法和装置
WO2017000648A1 (zh) * 2015-06-29 2017-01-05 中兴通讯股份有限公司 一种被加固软件的认证方法及装置
CN106355049A (zh) * 2016-08-19 2017-01-25 北京奇虎科技有限公司 一种加固安卓安装包的动态链接库so文件的方法和装置
CN106650327A (zh) * 2016-11-24 2017-05-10 湖南鼎源蓝剑信息科技有限公司 基于动态恢复so文件的Android应用加固方法
CN106708571A (zh) * 2016-12-13 2017-05-24 北京奇虎科技有限公司 资源文件的加载方法、装置和加固资源文件的方法、装置
CN106778098A (zh) * 2015-11-24 2017-05-31 中国移动通信集团公司 一种安卓系统应用程序的保护方法和装置
CN106845171A (zh) * 2017-01-20 2017-06-13 暨南大学 一种Android应用程序代码保护机制鉴别方法
CN106874715A (zh) * 2016-12-30 2017-06-20 上海掌门科技有限公司 一种防逆向破解的加密方法及系统
CN106909810A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种实现apk文件保护的方法及装置
CN107122635A (zh) * 2017-04-27 2017-09-01 北京洋浦伟业科技发展有限公司 一种so文件的加固方法、装置和apk的加固方法
CN107122632A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 软件安装包的加密方法及装置
CN107273723A (zh) * 2017-07-07 2017-10-20 广东工业大学 一种基于so文件加壳的Android平台应用软件保护方法
CN107292132A (zh) * 2016-03-30 2017-10-24 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
CN107644165A (zh) * 2017-08-29 2018-01-30 国家电网公司 安全防护平台以及安全防护方法和装置
CN107766728A (zh) * 2017-08-28 2018-03-06 国家电网公司 移动应用安全管理装置、方法及移动作业安全防护系统
CN107871065A (zh) * 2016-09-27 2018-04-03 武汉安天信息技术有限责任公司 一种Dalvik模式下dex文件的保护方法及装置
CN108196905A (zh) * 2017-12-28 2018-06-22 北京翼辉信息技术有限公司 一种基于dsp的动态加载方法
CN108304697A (zh) * 2017-12-11 2018-07-20 深圳壹账通智能科技有限公司 检测app二次打包的方法、装置及移动终端
CN109766717A (zh) * 2018-12-26 2019-05-17 北京思源互联科技有限公司 一种基于动态链接库的静态资源保护方法及其装置
CN110502874A (zh) * 2019-07-19 2019-11-26 西安理工大学 一种基于文件自修改的Android App加固方法
CN111190604A (zh) * 2019-12-30 2020-05-22 航天信息股份有限公司 一种安卓应用内存混淆方法、装置、电子设备及介质
CN111240752A (zh) * 2019-12-31 2020-06-05 北京元心科技有限公司 操作系统自适配方法及系统
CN111597514A (zh) * 2020-04-15 2020-08-28 卓望数码技术(深圳)有限公司 安卓源代码保护方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013089340A1 (ko) * 2011-12-16 2013-06-20 주식회사 안랩 어플리케이션의 유사성 검출 장치 및 방법
CN103617401A (zh) * 2013-11-25 2014-03-05 北京深思数盾科技有限公司 一种数据文件保护方法及装置
CN103886230A (zh) * 2014-02-24 2014-06-25 四川长虹电器股份有限公司 android系统的软件版权保护方法及其系统
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN104102860A (zh) * 2014-08-11 2014-10-15 北京奇虎科技有限公司 安卓平台应用程序的保护方法、运行方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013089340A1 (ko) * 2011-12-16 2013-06-20 주식회사 안랩 어플리케이션의 유사성 검출 장치 및 방법
CN103617401A (zh) * 2013-11-25 2014-03-05 北京深思数盾科技有限公司 一种数据文件保护方法及装置
CN103886230A (zh) * 2014-02-24 2014-06-25 四川长虹电器股份有限公司 android系统的软件版权保护方法及其系统
CN104021321A (zh) * 2014-06-17 2014-09-03 北京奇虎科技有限公司 软件安装包的加固保护方法和装置
CN104102860A (zh) * 2014-08-11 2014-10-15 北京奇虎科技有限公司 安卓平台应用程序的保护方法、运行方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
任晓珲: "《黑客面杀攻防》", 30 September 2013 *
张仁斌等: "《计算机病毒与反病毒技术》", 30 June 2006 *

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000648A1 (zh) * 2015-06-29 2017-01-05 中兴通讯股份有限公司 一种被加固软件的认证方法及装置
CN105205356A (zh) * 2015-09-17 2015-12-30 清华大学深圳研究生院 一种app应用重打包检测方法
CN105205356B (zh) * 2015-09-17 2017-12-29 清华大学深圳研究生院 一种app应用重打包检测方法
CN105447349A (zh) * 2015-11-20 2016-03-30 珠海多玩信息技术有限公司 对so文件中的导出符号进行保护的方法及装置
CN106778098A (zh) * 2015-11-24 2017-05-31 中国移动通信集团公司 一种安卓系统应用程序的保护方法和装置
CN105608391A (zh) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 多elf文件保护方法及系统
CN105608391B (zh) * 2015-12-17 2019-02-26 北京奇虎科技有限公司 多elf文件保护方法及系统
CN106909810A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种实现apk文件保护的方法及装置
CN105653432A (zh) * 2015-12-22 2016-06-08 北京奇虎科技有限公司 一种崩溃数据的处理方法和装置
CN105653432B (zh) * 2015-12-22 2019-02-15 北京奇虎科技有限公司 一种崩溃数据的处理方法和装置
CN105630659A (zh) * 2015-12-23 2016-06-01 北京奇虎科技有限公司 应用崩溃日志的获取方法及装置
CN105630659B (zh) * 2015-12-23 2018-03-20 北京奇虎科技有限公司 应用崩溃日志的获取方法及装置
CN105512521A (zh) * 2015-12-25 2016-04-20 北京奇虎科技有限公司 一种软件安装包的加固保护方法和系统
CN105825085A (zh) * 2016-03-16 2016-08-03 广州彩瞳网络技术有限公司 应用程序的处理方法及装置
CN105825085B (zh) * 2016-03-16 2019-02-15 广州优视网络科技有限公司 应用程序的处理方法及装置
CN105704149A (zh) * 2016-03-24 2016-06-22 国网江苏省电力公司电力科学研究院 一种电力移动应用安全防护方法
CN107292132A (zh) * 2016-03-30 2017-10-24 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
CN107292132B (zh) * 2016-03-30 2023-03-14 北京娜迦信息科技发展有限公司 用于安卓系统的共享对象文件的加载方法与装置
CN106355049B (zh) * 2016-08-19 2020-02-11 北京奇虎科技有限公司 一种加固安卓安装包的动态链接库so文件的方法和装置
CN106355049A (zh) * 2016-08-19 2017-01-25 北京奇虎科技有限公司 一种加固安卓安装包的动态链接库so文件的方法和装置
CN106293852A (zh) * 2016-08-19 2017-01-04 北京奇虎科技有限公司 一种加固安装包的资源文件的方法和装置
CN106203006A (zh) * 2016-08-31 2016-12-07 北京鼎源科技有限公司 基于dex与so文件动态执行的Android应用加固方法
CN107871065B (zh) * 2016-09-27 2019-12-20 武汉安天信息技术有限责任公司 一种Dalvik模式下dex文件的保护方法及装置
CN107871065A (zh) * 2016-09-27 2018-04-03 武汉安天信息技术有限责任公司 一种Dalvik模式下dex文件的保护方法及装置
CN106650327A (zh) * 2016-11-24 2017-05-10 湖南鼎源蓝剑信息科技有限公司 基于动态恢复so文件的Android应用加固方法
CN106708571A (zh) * 2016-12-13 2017-05-24 北京奇虎科技有限公司 资源文件的加载方法、装置和加固资源文件的方法、装置
CN106874715A (zh) * 2016-12-30 2017-06-20 上海掌门科技有限公司 一种防逆向破解的加密方法及系统
CN106845171B (zh) * 2017-01-20 2020-01-17 暨南大学 一种Android应用程序代码保护机制鉴别方法
CN106845171A (zh) * 2017-01-20 2017-06-13 暨南大学 一种Android应用程序代码保护机制鉴别方法
CN107122632A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 软件安装包的加密方法及装置
CN107122635A (zh) * 2017-04-27 2017-09-01 北京洋浦伟业科技发展有限公司 一种so文件的加固方法、装置和apk的加固方法
CN107273723B (zh) * 2017-07-07 2022-01-28 广东工业大学 一种基于so文件加壳的Android平台应用软件保护方法
CN107273723A (zh) * 2017-07-07 2017-10-20 广东工业大学 一种基于so文件加壳的Android平台应用软件保护方法
CN107766728A (zh) * 2017-08-28 2018-03-06 国家电网公司 移动应用安全管理装置、方法及移动作业安全防护系统
CN107644165A (zh) * 2017-08-29 2018-01-30 国家电网公司 安全防护平台以及安全防护方法和装置
CN108304697A (zh) * 2017-12-11 2018-07-20 深圳壹账通智能科技有限公司 检测app二次打包的方法、装置及移动终端
CN108304697B (zh) * 2017-12-11 2020-05-19 深圳壹账通智能科技有限公司 检测app二次打包的方法、装置及移动终端
CN108196905A (zh) * 2017-12-28 2018-06-22 北京翼辉信息技术有限公司 一种基于dsp的动态加载方法
CN108196905B (zh) * 2017-12-28 2019-03-22 北京翼辉信息技术有限公司 一种基于dsp的动态加载方法
CN109766717A (zh) * 2018-12-26 2019-05-17 北京思源互联科技有限公司 一种基于动态链接库的静态资源保护方法及其装置
CN110502874B (zh) * 2019-07-19 2021-05-25 西安理工大学 一种基于文件自修改的Android App加固方法
CN110502874A (zh) * 2019-07-19 2019-11-26 西安理工大学 一种基于文件自修改的Android App加固方法
CN111190604A (zh) * 2019-12-30 2020-05-22 航天信息股份有限公司 一种安卓应用内存混淆方法、装置、电子设备及介质
CN111190604B (zh) * 2019-12-30 2023-11-03 航天信息股份有限公司 一种安卓应用内存混淆方法、装置、电子设备及介质
CN111240752A (zh) * 2019-12-31 2020-06-05 北京元心科技有限公司 操作系统自适配方法及系统
CN111240752B (zh) * 2019-12-31 2021-08-17 北京元心科技有限公司 操作系统自适配方法及系统
CN111597514A (zh) * 2020-04-15 2020-08-28 卓望数码技术(深圳)有限公司 安卓源代码保护方法和装置
CN111597514B (zh) * 2020-04-15 2023-10-13 卓望数码技术(深圳)有限公司 安卓源代码保护方法和装置

Similar Documents

Publication Publication Date Title
CN104392181A (zh) So文件的保护方法、装置及安卓安装包的加固方法和系统
CN104462959B (zh) 一种安卓应用的加固保护方法、服务器和系统
Snyder et al. Most websites don't need to vibrate: A cost-benefit approach to improving browser security
Caballero et al. Binary Code Extraction and Interface Identification for Security Applications.
Jackson et al. Compiler-generated software diversity
Lekies et al. 25 million flows later: large-scale detection of DOM-based XSS
Reis et al. BrowserShield: Vulnerability-driven filtering of dynamic HTML
Ward et al. Survey of cyber moving targets second edition
Preda et al. Testing android malware detectors against code obfuscation: a systematization of knowledge and unified methodology
CN104239757B (zh) 应用程序防止逆向的方法及装置、运行方法及终端
Doupe et al. deDacota: toward preventing server-side XSS via automatic code and data separation
CN105653432B (zh) 一种崩溃数据的处理方法和装置
US20170116410A1 (en) Software protection
WO2015192637A1 (zh) 软件安装包的加固保护方法和装置
CN104484585A (zh) 一种应用程序安装包的处理方法、装置及移动设备
CN105512521A (zh) 一种软件安装包的加固保护方法和系统
Faruki et al. Android code protection via obfuscation techniques: past, present and future directions
Vasilakis et al. Preventing dynamic library compromise on node. js via rwx-based privilege reduction
CN106708571A (zh) 资源文件的加载方法、装置和加固资源文件的方法、装置
Smith et al. Sugarcoat: Programmatically generating privacy-preserving, web-compatible resource replacements for content blocking
CN105740703A (zh) 一种应用程序的加固方法及装置
Lim et al. Structural analysis of packing schemes for extracting hidden codes in mobile malware
White et al. Integrity verification of user space code
CN105760721B (zh) 一种软件加固方法和系统
EP4396711A1 (en) Systems and methods for inhibiting exploitations in runtime environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150304

RJ01 Rejection of invention patent application after publication