CN104866739A - 安卓系统中应用程序加密方法及系统 - Google Patents
安卓系统中应用程序加密方法及系统 Download PDFInfo
- Publication number
- CN104866739A CN104866739A CN201510305704.4A CN201510305704A CN104866739A CN 104866739 A CN104866739 A CN 104866739A CN 201510305704 A CN201510305704 A CN 201510305704A CN 104866739 A CN104866739 A CN 104866739A
- Authority
- CN
- China
- Prior art keywords
- file
- virtual machine
- application program
- machine run
- application
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000000605 extraction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的安卓系统中应用程序加密方法及系统,将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;从所述主体部分提取虚拟机运行程序文件;将所述核心部分进行加密以形成加密文件;修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件;通过本发明的技术方案,逆向工程所获得的代码中仍然是只有软件主体部分代码,核心功能部分的代码被隐藏可以有效对抗各种针对安卓系统中应用软件的逆向工程攻击,提高安全性。
Description
技术领域
本发明涉及移动终端软件系统技术领域,特别是涉及安卓系统中应用程序加密方法及系统。
背景技术
避免Android软件被破解和攻击是对开发者的技术方案的保护。目前,市场上有很多用于破解Android应用APK的工具,可以反编译出界面布局文件,甚至Java源码文件。这使得盗版软件遍地而出,也影响整个软件行业的发展。本发明提出了一种对Android应用软件进行加密的安全技术,通过动态加载classes.dex来实现对核心代码的加密,从而有效地保护软件的知识产权,通过加密后,反编译也难以看到原来的文件
具体的,Android平台使用Java编程语言,而Java源代码编译后的二进制文件极易被反编译,导致比其它的语言更容易被破解。目前有一些工具如dex2jar、apktool等便可以反编译出Android的源码文件。采用复杂的签名算法可以保护Java文件、jar和so等链接库文件,这些被破解的难度很大;但是资源文件,主要是软件的UI(图片、音频等文件)和界面布局(xml文件)可以轻易的破解,这些资源也是UI工程师和前台工程师开发的作品,目前的技术还保护不了。
申请号为CN201310509543.1的中国专利揭露了一种移动应用的软件加固技术,方法是为每个应用定制微型的虚拟机,在应用程序运行时先运行微型虚拟机,对应用程序整体进行安全性检查或验证,并在安全通过后再运行应用程序的功能模块,所述预设的安全要求包括应用程序的签名验证,应用程序中无效指令、非法指令的去除以及加密信息的解密。但是这一技术偏理论化,难以在真实的场景中普及。
申请号为CN201110429661.2的中国专利揭露了Android系统中Dalvik虚拟机和Linux系统库增加接口,使Android具有从内存中直接加载DEX格式文件和SO格式文件的能力;将应用软件的核心代码存储在在线服务器中,加密并签名后发送给安装在客户端的应用软件;应用软件接收到核心代码后验证签名并解密,然后将明文存储在内存中,直接加载到系统中,然后调用其中的代码,最后释放内存。
但是这种方法比较复杂,一是要在Android平台上修改系统代码,增加额外的接口;二是需要在线服务器,这无形中增加了开发者的压力。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供安卓系统中应用程序加密方法及系统,解决现有技术中的种种问题,提升软件安全性的同时降低开发成本。
为实现上述目标及其他相关目标,本发明提供一种安卓系统中应用程序加密方法,所述方法包括:将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;从所述主体部分提取虚拟机运行程序文件;将所述核心部分进行加密以形成加密文件;修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
可选的,所述主体部分及核心部分均编译为独立的.apk文件。
可选的,所述虚拟机运行程序文件为classes.dex文件。
可选的,所述描述信息包括:加密文件的名称、位置及长度。
可选的,所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件长度字段的值并替换原有值。
可选的,所述的安卓系统中应用程序加密方法,还包括:通过安卓软件开发包中提供的签名工具所述加密后的应用程序文件进行签名。
为实现上述目标及其他相关目标,本发明提供一种安卓系统中应用程序加密系统,包括:划分模块,用于将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;提取模块,用于从所述主体部分提取虚拟机运行程序文件;加密模块,用于将所述核心部分进行加密以形成加密文件;修改模块,用于修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;文件生成模块,用于将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
可选的,所述主体部分及核心部分均编译为独立的.apk文件。
可选的,所述虚拟机运行程序文件为classes.dex文件。
可选的,所述描述信息包括:加密文件的名称、位置及长度。
可选的,所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件大小字段的值并替换原有值。
可选的,所述的安卓系统中应用程序加密系统,还包括:签名模块,用于通过安卓软件开发包中提供的签名工具对所述加密后的应用程序文件进行签名。
如上所述,本发明提供的安卓系统中应用程序加密方法及系统,将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;从所述主体部分提取虚拟机运行程序文件;将所述核心部分进行加密以形成加密文件;修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件;通过本发明的技术方案,逆向工程所获得的代码中仍然是只有软件主体部分代码,核心功能部分的代码被隐藏可以有效对抗各种针对安卓系统中应用软件的逆向工程攻击,提高安全性。
附图说明
图1显示为本发明一实施例中的安卓系统中应用程序加密方法的流程示意图。
图2显示为本发明一具体实例中安卓系统中应用程序加密方法的流程示意图。
图3显示为本发明一实施例中的安卓系统中应用程序加密系统的结构示意图。
元件标号说明
1 应用程序加密系统
11 划分模块
12 提取模块
13 加密模块
14 修改模块
15 文件生成模块
S1~S5 方法步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的技术方案应用于安卓(Android)系统中,安卓系统(Android)是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发,因此,在以下实施例中,涉及的专业性词汇可在Android相关的在先技术中查找,故不作详细赘述。
如图1所示,本发明提供一种安卓系统中应用程序加密方法,所述方法包括:
步骤S1:将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分。
在一实施例中,所述应用程序文件在安卓系统中一般是以.apk后缀名的形式出现的,所述软件主体部分是实际安装在Android系统中的部分,核心功能部分是软件主体部分调用的需要重点保护的功能代码,由于该内容本领域技术人员均可根据本发明的教示来结合实际需求加以变化,因此此处不作赘述;优选的,所述主体部分及核心部分皆编译为独立的.apk格式。
步骤S2:从所述主体部分提取虚拟机运行程序文件。
在一实施例中,所述虚拟机运行程序文件为classes.dex文件,Android系统中的应用都运行在虚拟机上,因此classes.dex就是包含其的应用程序在虚拟机运行的执行文件。
步骤S3:将所述核心部分进行加密以形成加密文件。
在一实施例中,对核心部分.apk文件的加密方式可为现有的加密算法或通过现有的反编译工具进行,故此处不作赘述;优选的,所述加密方式中可加入签名的字段值作为特征值。
步骤S4:修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息。
在一实施例中,所述描述信息包括:加密文件的名称、位置及长度,用以解密时找到核心部分代码的起始位置;而所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件长度字段的值并替换原有值,即classes.dex文件的checksum、signature和file_size字段值。
步骤S5:将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
本发明之所以利用该文件的原因在于,Android系统在解析执行classes.dex文件的时候,如果发现其文件头的校验码字段与SHA-1签名字段无误,则认为此文件未损坏或未被篡改,是可以执行的。因此,可以猜想,如果在classes.dex文件后面增加一些内容,同时在增加这些内容后,修改classes.dex文件的校验码、SHA-1签名及文件大小(修改文件后,该字段也会相应发生变化)字段,classes.dex仍然能够正确执行。
基于这个原理,本方案把部分软件的核心部分代码编译成一个独立的文件,添加到classes.dex文件后面,然后在程序运行时动态地分离出这些代码,再通过反射机制对这部分关键代码进行动态加载。同时,可以对这些核心部分代码进行加密处理,需要执行时再进行解密。经过这样处理后,逆向工程逆向出来的代码便只有软件的主体部分,而核心部分被隐藏。而且,即使核心部分被发现了,也会由于代码被人为加密而无法得到解密后的源码,从而很好地保护了核心代码。
在一实施例中,所述的安卓系统中应用程序加密方法,还包括:通过安卓软件开发包(Android SDK)中提供的签名工具所述加密后的应用程序文件进行签名。
具体的,以下介绍签名的具体内容:
apk签名的作用:
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。Android系统要求每一个安装进系统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的;也是用来判断该应用是否被别人破解,二次打包的一个标准,但是签名并不能防止被破解。
如图2所示,提供一个前述加密方法的具体应用的实施例,从该实施例可更加直观了解本发明方法具体实施中的一种方式。
进一步的,根据本发明前述的加密方法的原理,可以推得解密方法:关于所述核心部分的动态加载,经过加密(或称加固)的应用程序软件安装到Android系统中后,需要调用被隐藏的核心部分的时候,需要对其进行动态分离、解密和加载,这个过程是与前述加密过程一一对应的。整个动态加载的实现流程如下:
(1)主体部分从自身的apk文件中读取classes.dex文件,在classes.dex文件尾部得到加密数据的长度,根据加密数据长度计算出加密数据的起始位置,从而读取得到加密数据。
(2)运行解密方法,解密得到核心功能部分apk。
(3)通过Android API提供的DexClassLoader类,对核心部分代码进行反射调用,从而实现核心功能部分代码的动态加载。
(4)调用完成后,删除核心功能部分apk文件,从而避免核心功能部分代码暴露在系统内部存储之中,被攻击者得到。
如图3所示,与前述方法原理类似的,本发明提供一种安卓系统中应用程序加密系统1,由于前述加密方法中的技术特征均可应用于此系统实施例中,因此不做重复赘述;所述系统1包括:划分模块11,用于将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;提取模块12,用于从所述主体部分提取虚拟机运行程序文件;加密模块13,用于将所述核心部分进行加密以形成加密文件;修改模块14,用于修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;文件生成模块15,用于将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
在一实施例中,所述主体部分及核心部分均编译为独立的apk文件。
在一实施例中,所述虚拟机运行程序文件为classes.dex文件。
在一实施例中,所述描述信息包括:加密文件的名称、位置及长度。
在一实施例中,所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件大小字段的值并替换原有值。
在一实施例中,所述的安卓系统中应用程序加密系统,还包括:签名模块,用于通过安卓软件开发包中提供的签名工具对所述加密后的应用程序文件进行签名。
如上所述,本发明提供的安卓系统中应用程序加密方法及系统,将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;从所述主体部分提取虚拟机运行程序文件;将所述核心部分进行加密以形成加密文件;修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件;通过本发明的技术方案,逆向工程所获得的代码中仍然是只有软件主体部分代码,核心功能部分的代码被隐藏可以有效对抗各种针对安卓系统中应用软件的逆向工程攻击,提高安全性。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (12)
1.一种安卓系统中应用程序加密方法,其特征在于,所述方法包括:
将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;
从所述主体部分提取虚拟机运行程序文件;
将所述核心部分进行加密以形成加密文件;
修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;
将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
2.根据权利要求1所述的安卓系统中应用程序加密方法,其特征在于,所述主体部分及核心部分均编译为独立的.apk文件。
3.根据权利要求1所述的安卓系统中应用程序加密方法,其特征在于,所述虚拟机运行程序文件为classes.dex文件。
4.根据权利要求3所述的安卓系统中应用程序加密方法,其特征在于,所述描述信息包括:加密文件的名称、位置及长度。
5.根据权利要求3所述的安卓系统中应用程序加密方法,其特征在于,所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件长度字段的值并替换原有值。
6.根据权利要求1所述的安卓系统中应用程序加密方法,其特征在于,还包括:通过安卓软件开发包中提供的签名工具所述加密后的应用程序文件进行签名。
7.一种安卓系统中应用程序加密系统,其特征在于,包括:
划分模块,用于将应用程序文件内容划分,划分后的内容包括:主体部分及核心部分;
提取模块,用于从所述主体部分提取虚拟机运行程序文件;
加密模块,用于将所述核心部分进行加密以形成加密文件;
修改模块,用于修改所述虚拟机运行程序文件,包括:将加密文件写入所述虚拟机运行程序文件尾部,并在所述尾部添加所述加密文件的描述信息,并更新所述虚拟机运行程序文件的属性信息;
文件生成模块,用于将修改后的虚拟机运行程序文件放回所述主体部分中,来生成完成所述加密后的应用程序文件。
8.根据权利要求7所述的安卓系统中应用程序加密系统,其特征在于,所述主体部分及核心部分均编译为独立的.apk文件。
9.根据权利要求7所述的安卓系统中应用程序加密系统,其特征在于,所述虚拟机运行程序文件为classes.dex文件。
10.根据权利要求9所述的安卓系统中应用程序加密系统,其特征在于,所述描述信息包括:加密文件的名称、位置及长度。
11.根据权利要求9所述的安卓系统中应用程序加密系统,其特征在于,所述更新属性信息包括:重新计算所述虚拟机运行程序文件所包含的:校验和字段、签名字段和文件大小字段的值并替换原有值。
12.根据权利要求9所述的安卓系统中应用程序加密系统,其特征在于,还包括:签名模块,用于通过安卓软件开发包中提供的签名工具对所述加密后的应用程序文件进行签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510305704.4A CN104866739A (zh) | 2015-06-04 | 2015-06-04 | 安卓系统中应用程序加密方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510305704.4A CN104866739A (zh) | 2015-06-04 | 2015-06-04 | 安卓系统中应用程序加密方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104866739A true CN104866739A (zh) | 2015-08-26 |
Family
ID=53912563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510305704.4A Pending CN104866739A (zh) | 2015-06-04 | 2015-06-04 | 安卓系统中应用程序加密方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104866739A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105303072A (zh) * | 2015-10-26 | 2016-02-03 | 李晖 | 基于art模式的软件加固方法及装置 |
CN105426708A (zh) * | 2016-01-19 | 2016-03-23 | 北京鼎源科技有限公司 | 一种Android系统的应用程序的加固方法 |
CN105740708A (zh) * | 2016-01-28 | 2016-07-06 | 博雅网信(北京)科技有限公司 | 一种基于Java反射机制的安卓应用自动脱壳方法 |
CN106407752A (zh) * | 2016-09-20 | 2017-02-15 | 天脉聚源(北京)传媒科技有限公司 | 一种应用加固方法及装置 |
CN106650327A (zh) * | 2016-11-24 | 2017-05-10 | 湖南鼎源蓝剑信息科技有限公司 | 基于动态恢复so文件的Android应用加固方法 |
CN107066843A (zh) * | 2017-03-31 | 2017-08-18 | 武汉斗鱼网络科技有限公司 | 一种对应用程序进行保护的方法及装置 |
CN107066842A (zh) * | 2017-03-28 | 2017-08-18 | 福建天晴在线互动科技有限公司 | 一种加固sdk项目的方法及系统 |
CN107169324A (zh) * | 2017-05-12 | 2017-09-15 | 北京理工大学 | 一种基于动态加解密的Android应用加固方法 |
CN107480478A (zh) * | 2017-08-14 | 2017-12-15 | 钟尚亮 | 一种java应用程序的加密方法及运行方法 |
CN108898008A (zh) * | 2018-04-27 | 2018-11-27 | 北京奇艺世纪科技有限公司 | 应用程序的运行方法和装置 |
CN109857385A (zh) * | 2018-12-24 | 2019-06-07 | 四川长虹电器股份有限公司 | 应用程序文件打包方法、安装方法及启动方法 |
CN110502874A (zh) * | 2019-07-19 | 2019-11-26 | 西安理工大学 | 一种基于文件自修改的Android App加固方法 |
CN111143869A (zh) * | 2019-12-30 | 2020-05-12 | Oppo广东移动通信有限公司 | 应用程序包处理方法、装置、电子设备及存储介质 |
CN112099776A (zh) * | 2020-09-17 | 2020-12-18 | 重庆轩进软件有限公司 | 安卓系统防止二次打包修改方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android系统的软件保护方法及系统 |
CN102779257A (zh) * | 2012-06-28 | 2012-11-14 | 奇智软件(北京)有限公司 | 一种Android应用程序的安全检测方法及系统 |
CN104317625A (zh) * | 2014-11-09 | 2015-01-28 | 刘鹏 | 一种apk文件的动态加载方法 |
-
2015
- 2015-06-04 CN CN201510305704.4A patent/CN104866739A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android系统的软件保护方法及系统 |
CN102779257A (zh) * | 2012-06-28 | 2012-11-14 | 奇智软件(北京)有限公司 | 一种Android应用程序的安全检测方法及系统 |
CN104317625A (zh) * | 2014-11-09 | 2015-01-28 | 刘鹏 | 一种apk文件的动态加载方法 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105303072A (zh) * | 2015-10-26 | 2016-02-03 | 李晖 | 基于art模式的软件加固方法及装置 |
CN105303072B (zh) * | 2015-10-26 | 2018-04-17 | 李晖 | 基于art模式的软件加固方法及装置 |
CN105426708B (zh) * | 2016-01-19 | 2018-08-21 | 北京鼎源科技有限公司 | 一种Android系统的应用程序的加固方法 |
CN105426708A (zh) * | 2016-01-19 | 2016-03-23 | 北京鼎源科技有限公司 | 一种Android系统的应用程序的加固方法 |
CN105740708A (zh) * | 2016-01-28 | 2016-07-06 | 博雅网信(北京)科技有限公司 | 一种基于Java反射机制的安卓应用自动脱壳方法 |
CN106407752A (zh) * | 2016-09-20 | 2017-02-15 | 天脉聚源(北京)传媒科技有限公司 | 一种应用加固方法及装置 |
CN106650327A (zh) * | 2016-11-24 | 2017-05-10 | 湖南鼎源蓝剑信息科技有限公司 | 基于动态恢复so文件的Android应用加固方法 |
CN107066842A (zh) * | 2017-03-28 | 2017-08-18 | 福建天晴在线互动科技有限公司 | 一种加固sdk项目的方法及系统 |
CN107066843A (zh) * | 2017-03-31 | 2017-08-18 | 武汉斗鱼网络科技有限公司 | 一种对应用程序进行保护的方法及装置 |
CN107169324A (zh) * | 2017-05-12 | 2017-09-15 | 北京理工大学 | 一种基于动态加解密的Android应用加固方法 |
CN107480478A (zh) * | 2017-08-14 | 2017-12-15 | 钟尚亮 | 一种java应用程序的加密方法及运行方法 |
CN107480478B (zh) * | 2017-08-14 | 2019-08-13 | 钟尚亮 | 一种java应用程序的加密方法及运行方法 |
CN108898008A (zh) * | 2018-04-27 | 2018-11-27 | 北京奇艺世纪科技有限公司 | 应用程序的运行方法和装置 |
CN109857385A (zh) * | 2018-12-24 | 2019-06-07 | 四川长虹电器股份有限公司 | 应用程序文件打包方法、安装方法及启动方法 |
CN110502874A (zh) * | 2019-07-19 | 2019-11-26 | 西安理工大学 | 一种基于文件自修改的Android App加固方法 |
CN110502874B (zh) * | 2019-07-19 | 2021-05-25 | 西安理工大学 | 一种基于文件自修改的Android App加固方法 |
CN111143869A (zh) * | 2019-12-30 | 2020-05-12 | Oppo广东移动通信有限公司 | 应用程序包处理方法、装置、电子设备及存储介质 |
CN112099776A (zh) * | 2020-09-17 | 2020-12-18 | 重庆轩进软件有限公司 | 安卓系统防止二次打包修改方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104866739A (zh) | 安卓系统中应用程序加密方法及系统 | |
KR101503785B1 (ko) | 동적 라이브러리를 보호하는 방법 및 장치 | |
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
US20150095653A1 (en) | Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
CN104680039B (zh) | 一种应用程序安装包的数据保护方法及装置 | |
WO2016078130A1 (zh) | 一种防逆向apk文件的动态加载方法 | |
WO2019075493A1 (en) | RANDOMIZATION OF BINARY CODE DEVICE STRUCTURE ARRANGEMENT TO ENHANCE SECURITY BY ENHANCED ENTROPY | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
KR20070001893A (ko) | 탬퍼-레지스턴트 트러스티드 가상 머신 | |
CN107092816B (zh) | 一种Android应用程序加固方法 | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN104408337A (zh) | 一种apk文件防逆向的加固方法 | |
CN108259479B (zh) | 业务数据处理方法、客户端与计算机可读存储介质 | |
EP3264265A1 (en) | Application protection method, server and terminal | |
CN112231702A (zh) | 应用保护方法、装置、设备及介质 | |
JP2007233426A (ja) | アプリケーション実行装置 | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
JP4664055B2 (ja) | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 | |
CN110245464B (zh) | 保护文件的方法和装置 | |
CN107257282A (zh) | 一种基于rc4算法的代码全包加密方法 | |
KR101638257B1 (ko) | 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치 | |
WO2019223094A1 (zh) | 一种基于区块链的文件保护方法及终端设备 | |
KR101863325B1 (ko) | 역공학 방지 방법 및 장치 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150826 |
|
RJ01 | Rejection of invention patent application after publication |