CN102236757A - 一种适用于Android系统的软件保护方法及系统 - Google Patents
一种适用于Android系统的软件保护方法及系统 Download PDFInfo
- Publication number
- CN102236757A CN102236757A CN2011101808290A CN201110180829A CN102236757A CN 102236757 A CN102236757 A CN 102236757A CN 2011101808290 A CN2011101808290 A CN 2011101808290A CN 201110180829 A CN201110180829 A CN 201110180829A CN 102236757 A CN102236757 A CN 102236757A
- Authority
- CN
- China
- Prior art keywords
- file
- apk
- key
- dex
- dex file
- 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
Images
Abstract
本发明公开了一种适用于Android系统的软件保护方法及系统。该方法包括:解析步骤,从待加密的Android应用软件的APK文件中解析出DEX文件;加密步骤,对所述DEX文件的全部或部分信息进行加密,生成加密后的DEX文件;生成步骤,将所述加密后的DEX文件替换加密前的所述DEX文件,生成对所述DEX文件的全部或部分信息进行了加密的APK文件和对密钥进行MD5加密的摘要文件。由于该方法通过只针对APK文件中的DEX文件的关键信息(例如DEX文件头、DEX文件中的字节码等)的加密保护,从而大大提高了加密和解密的执行效率。
Description
技术领域
本发明主要涉及到适用于Android(商标)平台(系统)的应用软件保护技术,尤其涉及防止恶意反编译开发者通过反编译来盗用Android系统的APK应用软件。
背景技术
随着信息技术的不断发展,尤其是近来各种智能终端的快速增长,对各种应用软件的可移植性或跨平台性能的要求越来越高。由此,例如java语言、perl语言、php语言等不将程序代码编译为二进制码可执行程序的编程语言的应用越来越广泛。
这种不将程序代码编译为二进制码可执行程序的编程语言具有解释执行、跨平台等特性,尤其是其跨平台性,使开发人员摆脱了机器的束缚,可实现“一次编译,到处运行”。然而,正是由于利用这种编程语言编写的程序在运行时直接以程序语言代码或中间代码表示,这就导致采用非编译型编程语言编写的程序源代码容易被窃取。
以Android平台所使用的主流编程语言Java为例,采用Java语言编写的程序在运行前虽然需要经过编译,但并不会直接被编译成(二进制的)机器语言,而是编译成java字节码后,再通过Java虚拟机解释执行。更具体地,Java字节码文件是将采用Java语言编写的程序代码进行编译后产生的中间文件。它往往与Java虚拟机一起出现,是实现平台无关性的要素之一。因而,如何防止采用Java语言编写的程序被窃取的问题,则转化为如何更好地对Java字节码文件进行保护(加密)的问题。当前,Java编程语言工具并未对Java字节码采取有效保护措施。加之,Java字节码文件的结构本身的特点使其易于被反编译,源码易被窃取,故存在Java源码的安全问题。
针对Java字节码的特点,出现了以下几种方法来保护Java字节码:1.字节混淆技术;2.数字水印技术等。但是,这些方法都不能很好的保护Java字节码。字节码混淆并不能完全防止反编译,只是增加了反编译后代码阅读的难度;而数字水印只能保证版权,并不能保证代码遭反编译后被其它开发者利用。
然而,Android系统又采用了不同于传统虚拟机的Dalvik虚拟机。Dalvik基于寄存器实现,缩减了Java虚拟机的指令集。在Dalvik平台,Java应用程序被编译生成DEX文件,并载入运行。DEX文件格式如附图1所示。Java字节码文件压缩为DEX文件的格式如附图2所示.
由此可见,传统的保护Java字节码的方法,很难应用于Android应用软件的版权保护中,而且传统的Java字节码保护方法,并没起到良好的保护效果。
目前,谷歌(商标)用来向用户提供适用于Android系统的应用软件(简称Android应用软件)的商店提供了如下软件保护相关措施:
(1)Google(商标)建立了一个特别的授权服务器,它保留了Android用户申请购买应用的纪录;
(2)开发人员可以利用Google提供的API来编写应用程序中的相关代码,从而实现当应用程序启动时,应用程序自动查询授权服务器;
(3)授权服务器然后告诉应用程序该用户是否具有使用该应用程序的权利。
但是,从以上版权保护措施中,本发明的发明人注意到,谷歌并未对通过反编译Android应用软件来盗用源代码的行为提供防范。换而言之,上述措施并不能对于抄袭和克隆代码的行为无法防范,因此,实际上并不能很好地起到保护应用软件的知识产权的作用。
综上,迫切需要找到一种能够有效保护Android应用软件的方法,以更好地有效保护Android应用软件开发者的知识产权。
发明内容
本发明所要解决的技术问题是需要提供一种适用于Android系统的能够有效防止恶意反编译开发者通过反编译来盗用Android应用软件源代码的方法及其系统。
为了解决上述技术问题,本发明提供了一种适用于Android系统的软件保护方法,其中,包括:
解析步骤,从待加密的Android应用软件的APK文件中解析出DEX文件;
加密步骤,对所述DEX文件的全部或部分信息进行加密,生成加密后的DEX文件;
生成步骤,将所述加密后的DEX文件替换加密前的所述DEX文件,生成对所述DEX文件的全部或部分信息进行了加密的APK文件和对密钥进行MD5加密的摘要文件。
其中,所述加密步骤中,仅对所述DEX文件的文件头或DEX文件中的字节码进行密码。
其中,根据用户各自的用户信息来生成密钥,所述密钥用于对提供给各用户的APK文件中的DEX文件的全部或部分信息进行加密。
其中,所述生成步骤中,所述密钥信息为根据对APK文件中的DEX文件的全部或部分信息进行加密的密钥生成的MD5摘要文件。
根据本发明的另一方面,还提供了一种适用于Android系统的软件保护系统,包括服务器和客户端,其中,
所述服务器执行上述任一项所述的软件保护方法、并向所述客户端传送加密后的APK文件;
所述客户端接收服务器发来的加密后的APK文件并对所述加密后的APK文件进行解密,生成解密后的APK文件,其中,
所述客户端是支持Android系统的客户端。
其中,所述客户端还通过网络传送方式获取用于对加密后APK文件进行解密的解密密钥信息。
其中,所述客户端还通过将所述解密密钥信息与所述解压后的APK文件中的密钥摘要信息进行对比以此判断是否继续进行解密。
其中,所述客户端通过调用连接库的方式来进行解密,所述连接库用于实现解密时所用到的全部或部分算法。
其中,所述客户端根据所述解密后的APK文件来执行APK安装,然后删除所述解密后的APK文件。
与现有技术相比,本发明至少具有以下优点:
相对于目前一些主要的Android应用软件商店提供的版权保护措施,该方案不仅能保护Android应用软件的版权,还能对Android源代码起到很好的保护作用。
此外,由于该方案通过只针对APK文件中的DEX文件的关键信息(例如DEX文件头、DEX文件中的字节码等)的加密保护,大大提高了加密和解密的执行效率。
在一个实施例中,优选地采用了Android支持的JNI技术将实现该解密过程所使用的解密算法或算法中的部分,这样,可以进一步加强对APK应用软件版权的保护强度。
在一个实施例中,将密钥转变为了MD5文件,这也可以进一步防止当密钥下载到客户端后被盗取。
在一个实施例中,根据各用户的各自用户信息动态生成(唯一的)各自的密钥,从而可以尽量避免不同的用户采用同一密钥来解密APK文件(应用软件)。
本发明的其它特征和优点将在随后的说明书中阐述;此外,该发明的优点还可以通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
此外,本发明所提供一整套Android应用软件保护措施,还可应用于Android应用软件商城平台上。利用该保护措施,可以为应用软件商城,提供一套解决方案,可以很好的解决保护第三方开发者提交的应用软件的版权。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地通过学习说明书中的内容而变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为Android系统的Dalvik平台编译生成的DEX文件的格式示意图。
图2为利用Java字节码文件生成DEX文件的示意图。
图3为根据第一实施例的适用于Android系统的软件保护方法的流程示意图。
图4示出在根据第二实施例的适用于Android系统的软件保护系统中、加密后的APK应用文件如何在客户端解密和安装的流程示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
第一实施例
在本发明的这一优选实施例中,通过对Android应用软件(APK文件)中的DEX文件中的关键信息进行加密,从而达到保护开发者源代码信息和相应版权的作用。
更具体地,发明人注意到:由于DEX文件由Java字节码文件合并生成,而在DEX文件的头部,包含着所合并Java类的全部信息,包括每个类的地址和描述信息、方法和字段以及所有字符串的地址信息等。通过头文件的信息,可以按照特定的格式去解析该DEX文件,从而解析出每个类以及其包含的方法和字段的信息。由于,发明人发现可以利用这一特点,仅对DEX文件的头部进行加密,在没有该部分信息的引导,Android的Dalvik虚拟机便无法识别该DEX文件,反编译软件也不可能正确解析该DEX文件。
换而言之,发明人提出了只要能够保护好DEX文件的头文件信息或者说DEX文件关键部分的信息、就可以很好地保护Android应用程序源代码的构思,进而基础这一构思,提供了一种通过对DEX文件的关键信息加以保护来提供一套加密和解密使用的技术方案。
图3示出了根据本实施例的Android系统的软件保护方法的流程示意图。下面参考图3来说明本方法的各步骤。
步骤310,从待加密的Android应用软件的APK文件中解析出DEX文件。
更具体地,可以输入待加密的Android应用软件(APK文件)。创建APK文件解压缩的临时目录,并解压APK文件到临时目录。
在该步骤中,若使用编程实现自动化创建临时目录时,可能出现临时目录创建失败等意外情况,此时系统应该能破坏该异常。
步骤320,对步骤310中解析出来的DEX文件的全部或部分信息进行加密以生成加密后的DEX文件。
在对DEX文件进行加密时,既可以对DEX文件全部信息进行加密,也可以仅对DEX文件中的部分关键信息的进行加密。
优选地,可以仅对DEX文件头进行块加密,或仅对DEX文件中的字节码加密等。加密内容的选取,可以根据实际情况而定。例如,若DEX文件过大,则可仅对关键信息(例如DEX文件头、DEX文件中的字节码等)的加密技术,从而能够达到更高的执行效率的有益技术效果。
需要说明的是,步骤002中,可通过各种方式来获取用以进行加密的密钥(简称:加密密钥)。例如,可以通过生成的方式获取,也可以通过输入的方式获取。如果本方法应用在服务器端,如应用软件商店的服务器。优选地,根据各用户各自的用户信息来生成用于对提供给各用户的APK文件进行加密的密钥,更具体地,可针对各用户,根据各该用户的各自用户信息动态生成(唯一的)各自的密钥,然后根据这些密钥来为各用户加密生成与各用户对应的加密文件。用户用户可以为与用户有关的所有信息、例如身份信息、登录帐号等。然后,可将该密钥存放至对应该用户下载信息相关的表里。待用户解密安装该软件时,可通过联网方式来动态获取该密钥。这样,可使得对应不同的合法用户,所下载的APK文件是通过不同的密钥进行加密后的加密文件,可以尽量避免不同的用户采用同一密钥来解密APK文件(应用软件)。
步骤330,将加密后的DEX文件替换加密前的DEX文件,生成对所述DEX文件的全部或部分信息进行了加密的(新的)APK文件和对密钥进行MD5加密的摘要文件。
密钥信息可以为密钥本身,但是优选地,根据加密密钥生成MD5摘要文件key.dat,该文件保存至APK解压缩目录的META-INF目录下。以在生成加密后的APK文件时,在加密后的APK文件中增加该摘要文件key.dat。
需要说明的是,由于加密密钥的强度可能较弱,系统可以在密钥后面加一些特殊字符后再生成MD5摘要文件。如:所有密钥末尾加上“*$#”字符串后,对密钥123456生成的密钥MD5摘要文件其实是123456*$#的MD5摘要,这样就增加了密钥MD5摘要被暴力破解的难度。
更具体地,可通过将上述操作中解压缩后的目录重新打包生成来生成新的APK文件。需要说明的是,在实现重新打包生成新的APK文件时,并不需要对APK文件重新签名。
此外,在对解压缩后的目录进行重新打包以生成新的APK文件之前,可先将原APK文件备份成其它名字,也可直接删掉,这样可以保证新生成的APK文件时可以将新的APK文件直接命名成原APK文件的名字。
第二实施例
下面结合图4进一步说明本发明的第二实施例。本实施例提供了一种适用于Android系统的软件保护系统。
本系统包括服务器和客户端。服务器执行第一实施例的所述软件保护方法、并向客户端传送加密后的APK文件。客户端(亦称终端)用于接收服务器发来的加密后的APK文件并对其进行解密。前述客户端是支持Android系统的客户端,简称Android客户端。
下面具体说明本实施例的系统对加密后的APK软件,Android客户端或者Android系统终端,如何安装加密APK的过程。此外,本实例,还公开了一种对加密后的APK软件进行解密并安装的系统。
首先说明,本方案中将为客户端提供一套基于图4所示解密和安装流程的客户端安装软件,该软件可以通过接受客户端输入解密密钥,或通过该软件登录相应的网站,如应用软件商店,系统通过联网方式自动获取。通过联网方式获取需要用户在该应用软件商店注册并获得授权下载过相应的APK文件,同时最佳的实施方案是安装用户无法看到该密钥,以免用户获取密钥后进行非法传播。
下面将结合附图4,说明客户端解密并安装加密后的APK软件的过程的一个示例。
步骤110,系统根据用户输入的APK文件路径或者通过文件浏览器的方式选取需要安装的加密APK文件。
步骤111,客户端接受用户输入的密钥(解密密钥),优选地,客户端通过将所述解密密钥与加密后的APK文件中的密钥信息进行对比以判断是否进行解密,更具体地,接收用户手动输入的解密密钥并将解密密钥进行MD5加密,或通过网络传送方式直接获取经MD5加密后的用于解密加密后APK文件的解密密钥信息。然后将基于网络或输入方式获得的解密密钥信息与APK目录下的META-INF目录下的key.dat文件内容进行对比,如果对比一致,就认为该用户输入/获取的解密密钥是正确的。否则,系统会弹出对话框,提示用户密钥不正确。
需要说明的是,如果系统是联网获取密钥,如果通过客户端用户信息获取不到该APK的解密密钥,则说明用户并未合法下载该APK,则提示用户要合法下载该应用。
步骤112,如果步骤111得以正确执行,系统将该APK解压至一个临时目录。
步骤113,系统根据输入的密钥,对APK解压目录中的DEX文件执行解密,生成解密后的APK文件。
特别地,发明人注意到由于该解密过程是在客户端实现的,该解密安装软件是APK格式的安装软件,也存在被反编译的风险,因此,优选地采用,Android支持的JNI技术将实现该解密过程所使用的解密算法或算法中的部分,以将全部或部分用于解密的核心算法编译成链接库文件,在执行解密应用软件的过程中,由解密应用软件对连接库文件进行调用,简而言之,优选为客户端通过调用用于实现解密时所用到的全部或部分算法的连接库的方式来进行解密。这样,可以进一步加强对APK应用软件版权的保护强度。
此外,还需要说明的是,如何解密,要根据第一实施例使用的加密方案有关。例如,如果第一实施例中对DEX文件的加密使用的是对DEX文件的关键信息加密,则解密过程中,就使用对应的解密技术对DEX文件的关键信息解密。
步骤114,删除加密时产生的密钥MD5摘要文件。这样可以保证重新打包APK软件能正确安装。
步骤115,重新打包生成新的APK文件,打包完成后,删除临时目录及下面的所有文件。
步骤116,调用系统API执行APK的安装,安装完成后删除解密后的APK文件。
需要说明的是,安装完成后,优选为删除该解密后的APK文件。这样,可以避免该解密后的APK文件传播出去,从而进一步加强对软件的版权保护。
Android系统提供了API接口可以用来开发APK安装软件。使用方法如下:
Intent intent=new Intent(1ntent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(apkPath),
″application/vnd.androidpackage-archive″);
startActivity(intent);
上述示例代码中apkPath为变量,指代APK文件的路径。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
此外,该方案不仅可以应用于Android应用软件商店,还可以应用于普通开发者的软件版权和知识产权保护中。
Claims (9)
1.一种适用于Android系统的软件保护方法,其特征在于,包括:
解析步骤,从待加密的Android应用软件的APK文件中解析出DEX文件;
加密步骤,对所述DEX文件的全部或部分信息进行加密,生成加密后的DEX文件;
生成步骤,将所述加密后的DEX文件替换加密前的所述DEX文件,生成对所述DEX文件的全部或部分信息进行了加密的APK文件和对密钥进行MD5加密的摘要文件。
2.根据权利要求1所述的方法,其特征在于,
所述加密步骤中,仅对所述DEX文件的文件头或DEX文件中的字节码进行密码。
3.根据权利要求1所述的方法,其特征在于,
根据用户各自的用户信息来生成密钥,所述密钥用于对提供给各用户的APK文件中的DEX文件的全部或部分信息进行加密。
4.根据权利要求1所述的方法,其特征在于,
所述生成步骤中,所述密钥信息为根据对APK文件中的DEX文件的全部或部分信息进行加密的密钥生成的MD5摘要文件。
5.一种适用于Android系统的软件保护系统,包括服务器和客户端,其特征在于,
所述服务器执行根据权利要求1至4中任一项所述的软件保护方法、并向所述客户端传送加密后的APK文件;
所述客户端接收服务器发来的加密后的APK文件并对所述加密后的APK文件进行解密,生成解密后的APK文件,其中,
所述客户端是支持Android系统的客户端。
6.根据权利要求5所述的系统,其特征在于,
所述客户端还通过网络传送方式获取用于对加密后APK文件进行解密的解密密钥信息。
7.根据权利要求6所述的系统,其特征在于,
所述客户端还通过将所述解密密钥信息与所述解压后的APK文件中的密钥摘要信息进行对比以此判断是否继续进行解密。
8.根据权利要求5所述的系统,其特征在于,
所述客户端通过调用连接库的方式来进行解密,所述连接库用于实现解密时所用到的全部或部分算法。
9.根据权利要求5所述的方法,其特征在于,
所述客户端根据所述解密后的APK文件来执行APK安装,然后删除所述解密后的APK文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101808290A CN102236757A (zh) | 2011-06-30 | 2011-06-30 | 一种适用于Android系统的软件保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101808290A CN102236757A (zh) | 2011-06-30 | 2011-06-30 | 一种适用于Android系统的软件保护方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102236757A true CN102236757A (zh) | 2011-11-09 |
Family
ID=44887400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101808290A Pending CN102236757A (zh) | 2011-06-30 | 2011-06-30 | 一种适用于Android系统的软件保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102236757A (zh) |
Cited By (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663281A (zh) * | 2012-03-16 | 2012-09-12 | 成都市华为赛门铁克科技有限公司 | 检测恶意软件的方法和装置 |
CN102694794A (zh) * | 2012-05-06 | 2012-09-26 | 北京深思洛克软件技术股份有限公司 | 一种用于安卓应用程序的场景信息保护方法 |
CN102760219A (zh) * | 2011-12-20 | 2012-10-31 | 北京安天电子设备有限公司 | 一种Android平台软件保护系统、方法及设备 |
CN102779257A (zh) * | 2012-06-28 | 2012-11-14 | 奇智软件(北京)有限公司 | 一种Android应用程序的安全检测方法及系统 |
CN102946489A (zh) * | 2012-11-23 | 2013-02-27 | 广东欧珀移动通信有限公司 | 一种手机密码恢复方法和装置 |
CN103024734A (zh) * | 2012-12-31 | 2013-04-03 | 广东欧珀移动通信有限公司 | 防止Apk被非授权手机安装的加密、解密方法及装置 |
CN103019679A (zh) * | 2012-11-19 | 2013-04-03 | 四川长虹电器股份有限公司 | 浏览器与硬件交互的方法 |
CN103186380A (zh) * | 2011-12-31 | 2013-07-03 | 北大方正集团有限公司 | Apk的开发方法和装置 |
CN103413076A (zh) * | 2013-08-27 | 2013-11-27 | 北京理工大学 | 一种Android应用程序分块保护的方法 |
CN103745141A (zh) * | 2013-12-02 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | 智能终端android系统中防止应用程序反编译的方法 |
CN103886230A (zh) * | 2014-02-24 | 2014-06-25 | 四川长虹电器股份有限公司 | android系统的软件版权保护方法及其系统 |
CN103902858A (zh) * | 2013-12-25 | 2014-07-02 | 武汉安天信息技术有限责任公司 | 一种apk应用加固的方法及系统 |
CN103970514A (zh) * | 2013-01-28 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 安卓应用程序安装包的信息获取方法和装置 |
CN104021321A (zh) * | 2014-06-17 | 2014-09-03 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN104035809A (zh) * | 2014-04-29 | 2014-09-10 | 哈尔滨工程大学 | 一种基于Dalvik虚拟机JNI机制中接口函数性能优化方法 |
CN104123481A (zh) * | 2013-04-24 | 2014-10-29 | 贝壳网际(北京)安全技术有限公司 | 防止应用程序被篡改的方法及装置 |
CN104166810A (zh) * | 2014-07-29 | 2014-11-26 | 苏州乐米信息科技有限公司 | 手机游戏软件的加密方法 |
CN104281788A (zh) * | 2013-07-05 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 一种终端应用的保护方法及装置 |
CN104408337A (zh) * | 2014-11-18 | 2015-03-11 | 刘鹏 | 一种apk文件防逆向的加固方法 |
CN104462883A (zh) * | 2014-11-09 | 2015-03-25 | 刘鹏 | 一种apk文件加固的方法 |
CN104680039A (zh) * | 2013-11-28 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种应用程序安装包的数据保护方法及装置 |
CN104751024A (zh) * | 2013-12-27 | 2015-07-01 | 腾讯科技(深圳)有限公司 | 一种对核心源代码进行加密的方法及装置 |
CN104866741A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种Android安装包文件的保护方法及装置 |
CN104866739A (zh) * | 2015-06-04 | 2015-08-26 | 上海斐讯数据通信技术有限公司 | 安卓系统中应用程序加密方法及系统 |
CN104866738A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种程序代码保护方法及装置 |
CN104932902A (zh) * | 2015-07-09 | 2015-09-23 | 魅族科技(中国)有限公司 | 一种生成apk文件的方法及终端 |
CN105103127A (zh) * | 2013-02-28 | 2015-11-25 | 微软技术许可有限责任公司 | 基于编译器的混淆 |
CN105608393A (zh) * | 2016-01-19 | 2016-05-25 | 北京鼎源科技有限公司 | 一种基于Android可执行文件重组的加固方法 |
WO2016078130A1 (zh) * | 2014-11-18 | 2016-05-26 | 刘鹏 | 一种防逆向apk文件的动态加载方法 |
CN105825851A (zh) * | 2016-05-17 | 2016-08-03 | Tcl集团股份有限公司 | 一种基于Android系统的语音控制方法及系统 |
CN106250771A (zh) * | 2016-07-27 | 2016-12-21 | 北京邮电大学 | 一种针对安卓程序代码的加密方法 |
WO2017026738A1 (ko) * | 2015-08-10 | 2017-02-16 | 라인 가부시키가이샤 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
CN106663018A (zh) * | 2014-09-24 | 2017-05-10 | 甲骨文国际公司 | 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法 |
WO2017084555A1 (zh) * | 2015-11-18 | 2017-05-26 | 中国银联股份有限公司 | 用于可信执行环境的可信应用生成及安装方法 |
CN103914637B (zh) * | 2013-01-07 | 2017-06-09 | 北京洋浦伟业科技发展有限公司 | 一种安卓平台的可执行程序加密方法 |
CN106815301A (zh) * | 2016-12-12 | 2017-06-09 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106843919A (zh) * | 2016-12-12 | 2017-06-13 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106845167A (zh) * | 2016-12-12 | 2017-06-13 | 北京奇虎科技有限公司 | 一种apk的加固方法和装置,及动态加载方法和装置 |
CN106845169A (zh) * | 2016-12-26 | 2017-06-13 | 北京握奇智能科技有限公司 | 一种Jar包加固方法及系统 |
CN106845171A (zh) * | 2017-01-20 | 2017-06-13 | 暨南大学 | 一种Android应用程序代码保护机制鉴别方法 |
CN107038371A (zh) * | 2015-07-29 | 2017-08-11 | 腾讯科技(深圳)有限公司 | 一种可执行文件的处理方法、装置、装置和系统 |
CN107092816A (zh) * | 2017-02-27 | 2017-08-25 | 广东工业大学 | 一种Android应用程序加固方法 |
CN108363580A (zh) * | 2018-03-12 | 2018-08-03 | 平安普惠企业管理有限公司 | 应用程序安装方法、装置、计算机设备和存储介质 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN109165029A (zh) * | 2018-08-27 | 2019-01-08 | 北京奇虎科技有限公司 | 实现下载运行付费应用的方法、服务器和装置 |
CN109460674A (zh) * | 2018-10-23 | 2019-03-12 | 上海金档信息技术有限公司 | 一种java应用程序保护方法 |
CN109783160A (zh) * | 2019-01-29 | 2019-05-21 | 广东九联科技股份有限公司 | 一种快速传送及渲染的网页文件加载系统及方法 |
CN110022558A (zh) * | 2019-04-03 | 2019-07-16 | Oppo广东移动通信有限公司 | 一种升级包的加密、解密方法和电子装置及存储介质 |
CN104281788B (zh) * | 2013-07-05 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 一种终端应用的保护方法及装置 |
CN110598402A (zh) * | 2019-09-09 | 2019-12-20 | 杭州天宽科技有限公司 | 一种基于安卓应用的运行保密系统 |
CN111639311A (zh) * | 2020-05-29 | 2020-09-08 | 杭州安恒信息技术股份有限公司 | 防止反编译可执行文件的方法、装置、计算机设备和介质 |
CN112084469A (zh) * | 2020-08-06 | 2020-12-15 | 华帝股份有限公司 | 防止应用程序被逆向工程的加密方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132273A (zh) * | 2006-08-24 | 2008-02-27 | 北京大唐高鸿软件技术有限公司 | 一种文本传输协议消息的安全传输方法 |
CN101604369A (zh) * | 2008-06-13 | 2009-12-16 | 京瓷美达株式会社 | 信息隐藏方法以及信息隐藏装置 |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
CN102004887A (zh) * | 2010-12-27 | 2011-04-06 | 用友软件股份有限公司 | 程序保护方法和装置 |
CN102087605A (zh) * | 2011-01-28 | 2011-06-08 | 宇龙计算机通信科技(深圳)有限公司 | 一种基于android平台应用安装控制方法及系统 |
-
2011
- 2011-06-30 CN CN2011101808290A patent/CN102236757A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132273A (zh) * | 2006-08-24 | 2008-02-27 | 北京大唐高鸿软件技术有限公司 | 一种文本传输协议消息的安全传输方法 |
CN101604369A (zh) * | 2008-06-13 | 2009-12-16 | 京瓷美达株式会社 | 信息隐藏方法以及信息隐藏装置 |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
CN102004887A (zh) * | 2010-12-27 | 2011-04-06 | 用友软件股份有限公司 | 程序保护方法和装置 |
CN102087605A (zh) * | 2011-01-28 | 2011-06-08 | 宇龙计算机通信科技(深圳)有限公司 | 一种基于android平台应用安装控制方法及系统 |
Cited By (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760219A (zh) * | 2011-12-20 | 2012-10-31 | 北京安天电子设备有限公司 | 一种Android平台软件保护系统、方法及设备 |
CN103186380B (zh) * | 2011-12-31 | 2016-04-20 | 北大方正集团有限公司 | Apk的开发方法和装置 |
CN103186380A (zh) * | 2011-12-31 | 2013-07-03 | 北大方正集团有限公司 | Apk的开发方法和装置 |
CN102663281A (zh) * | 2012-03-16 | 2012-09-12 | 成都市华为赛门铁克科技有限公司 | 检测恶意软件的方法和装置 |
CN102663281B (zh) * | 2012-03-16 | 2015-03-18 | 华为数字技术(成都)有限公司 | 检测恶意软件的方法和装置 |
CN102694794A (zh) * | 2012-05-06 | 2012-09-26 | 北京深思洛克软件技术股份有限公司 | 一种用于安卓应用程序的场景信息保护方法 |
CN102694794B (zh) * | 2012-05-06 | 2016-05-04 | 北京深思数盾科技股份有限公司 | 一种用于安卓应用程序的场景信息保护方法 |
CN102779257A (zh) * | 2012-06-28 | 2012-11-14 | 奇智软件(北京)有限公司 | 一种Android应用程序的安全检测方法及系统 |
CN102779257B (zh) * | 2012-06-28 | 2015-10-07 | 北京奇虎科技有限公司 | 一种Android应用程序的安全检测方法及系统 |
CN103019679A (zh) * | 2012-11-19 | 2013-04-03 | 四川长虹电器股份有限公司 | 浏览器与硬件交互的方法 |
CN102946489B (zh) * | 2012-11-23 | 2014-04-16 | 广东欧珀移动通信有限公司 | 一种手机密码恢复方法和装置 |
CN102946489A (zh) * | 2012-11-23 | 2013-02-27 | 广东欧珀移动通信有限公司 | 一种手机密码恢复方法和装置 |
CN103024734B (zh) * | 2012-12-31 | 2015-08-19 | 广东欧珀移动通信有限公司 | 防止Apk被非授权手机安装的加密、解密方法及装置 |
CN103024734A (zh) * | 2012-12-31 | 2013-04-03 | 广东欧珀移动通信有限公司 | 防止Apk被非授权手机安装的加密、解密方法及装置 |
CN103914637B (zh) * | 2013-01-07 | 2017-06-09 | 北京洋浦伟业科技发展有限公司 | 一种安卓平台的可执行程序加密方法 |
CN103970514B (zh) * | 2013-01-28 | 2018-04-06 | 腾讯科技(深圳)有限公司 | 安卓应用程序安装包的信息获取方法和装置 |
CN103970514A (zh) * | 2013-01-28 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 安卓应用程序安装包的信息获取方法和装置 |
CN105103127B (zh) * | 2013-02-28 | 2018-05-04 | 微软技术许可有限责任公司 | 用于基于编译器的混淆的方法和计算设备 |
CN105103127A (zh) * | 2013-02-28 | 2015-11-25 | 微软技术许可有限责任公司 | 基于编译器的混淆 |
CN104123481A (zh) * | 2013-04-24 | 2014-10-29 | 贝壳网际(北京)安全技术有限公司 | 防止应用程序被篡改的方法及装置 |
CN104281788A (zh) * | 2013-07-05 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 一种终端应用的保护方法及装置 |
CN104281788B (zh) * | 2013-07-05 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 一种终端应用的保护方法及装置 |
CN103413076A (zh) * | 2013-08-27 | 2013-11-27 | 北京理工大学 | 一种Android应用程序分块保护的方法 |
CN103413076B (zh) * | 2013-08-27 | 2016-03-02 | 北京理工大学 | 一种Android应用程序分块保护的方法 |
CN104680039B (zh) * | 2013-11-28 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 一种应用程序安装包的数据保护方法及装置 |
CN104680039A (zh) * | 2013-11-28 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种应用程序安装包的数据保护方法及装置 |
CN103745141A (zh) * | 2013-12-02 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | 智能终端android系统中防止应用程序反编译的方法 |
CN103902858A (zh) * | 2013-12-25 | 2014-07-02 | 武汉安天信息技术有限责任公司 | 一种apk应用加固的方法及系统 |
CN104751024A (zh) * | 2013-12-27 | 2015-07-01 | 腾讯科技(深圳)有限公司 | 一种对核心源代码进行加密的方法及装置 |
CN104751024B (zh) * | 2013-12-27 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 一种对核心源代码进行加密的方法及装置 |
CN103886230A (zh) * | 2014-02-24 | 2014-06-25 | 四川长虹电器股份有限公司 | android系统的软件版权保护方法及其系统 |
CN104866738A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种程序代码保护方法及装置 |
CN104866741A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种Android安装包文件的保护方法及装置 |
CN104866738B (zh) * | 2014-02-25 | 2019-04-26 | 北京娜迦信息科技发展有限公司 | 一种程序代码保护方法及装置 |
CN104035809A (zh) * | 2014-04-29 | 2014-09-10 | 哈尔滨工程大学 | 一种基于Dalvik虚拟机JNI机制中接口函数性能优化方法 |
CN104021321A (zh) * | 2014-06-17 | 2014-09-03 | 北京奇虎科技有限公司 | 软件安装包的加固保护方法和装置 |
CN104166810A (zh) * | 2014-07-29 | 2014-11-26 | 苏州乐米信息科技有限公司 | 手机游戏软件的加密方法 |
CN106663018A (zh) * | 2014-09-24 | 2017-05-10 | 甲骨文国际公司 | 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法 |
CN104462883A (zh) * | 2014-11-09 | 2015-03-25 | 刘鹏 | 一种apk文件加固的方法 |
CN104408337A (zh) * | 2014-11-18 | 2015-03-11 | 刘鹏 | 一种apk文件防逆向的加固方法 |
WO2016078130A1 (zh) * | 2014-11-18 | 2016-05-26 | 刘鹏 | 一种防逆向apk文件的动态加载方法 |
CN104866739A (zh) * | 2015-06-04 | 2015-08-26 | 上海斐讯数据通信技术有限公司 | 安卓系统中应用程序加密方法及系统 |
CN104932902A (zh) * | 2015-07-09 | 2015-09-23 | 魅族科技(中国)有限公司 | 一种生成apk文件的方法及终端 |
CN107038371B (zh) * | 2015-07-29 | 2020-01-31 | 腾讯科技(深圳)有限公司 | 一种可执行文件的处理方法、装置和系统 |
CN107038371A (zh) * | 2015-07-29 | 2017-08-11 | 腾讯科技(深圳)有限公司 | 一种可执行文件的处理方法、装置、装置和系统 |
WO2017026738A1 (ko) * | 2015-08-10 | 2017-02-16 | 라인 가부시키가이샤 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
KR101740133B1 (ko) * | 2015-08-10 | 2017-05-26 | 라인 가부시키가이샤 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
WO2017084555A1 (zh) * | 2015-11-18 | 2017-05-26 | 中国银联股份有限公司 | 用于可信执行环境的可信应用生成及安装方法 |
TWI687867B (zh) * | 2015-11-18 | 2020-03-11 | 大陸商中國銀聯股份有限公司 | 用於可信執行環境的可信應用產生及安裝方法 |
CN105608393B (zh) * | 2016-01-19 | 2018-09-07 | 北京鼎源科技有限公司 | 一种基于Android可执行文件重组的加固方法 |
CN105608393A (zh) * | 2016-01-19 | 2016-05-25 | 北京鼎源科技有限公司 | 一种基于Android可执行文件重组的加固方法 |
CN105825851A (zh) * | 2016-05-17 | 2016-08-03 | Tcl集团股份有限公司 | 一种基于Android系统的语音控制方法及系统 |
CN106250771A (zh) * | 2016-07-27 | 2016-12-21 | 北京邮电大学 | 一种针对安卓程序代码的加密方法 |
CN106845167A (zh) * | 2016-12-12 | 2017-06-13 | 北京奇虎科技有限公司 | 一种apk的加固方法和装置,及动态加载方法和装置 |
CN106843919A (zh) * | 2016-12-12 | 2017-06-13 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106815301A (zh) * | 2016-12-12 | 2017-06-09 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106843919B (zh) * | 2016-12-12 | 2021-02-23 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106815301B (zh) * | 2016-12-12 | 2020-10-30 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106845169A (zh) * | 2016-12-26 | 2017-06-13 | 北京握奇智能科技有限公司 | 一种Jar包加固方法及系统 |
CN106845169B (zh) * | 2016-12-26 | 2023-04-07 | 北京握奇智能科技有限公司 | 一种Jar包加固方法及系统 |
CN106845171B (zh) * | 2017-01-20 | 2020-01-17 | 暨南大学 | 一种Android应用程序代码保护机制鉴别方法 |
CN106845171A (zh) * | 2017-01-20 | 2017-06-13 | 暨南大学 | 一种Android应用程序代码保护机制鉴别方法 |
CN107092816A (zh) * | 2017-02-27 | 2017-08-25 | 广东工业大学 | 一种Android应用程序加固方法 |
CN107092816B (zh) * | 2017-02-27 | 2020-07-28 | 广东工业大学 | 一种Android应用程序加固方法 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN108363580A (zh) * | 2018-03-12 | 2018-08-03 | 平安普惠企业管理有限公司 | 应用程序安装方法、装置、计算机设备和存储介质 |
CN109165029A (zh) * | 2018-08-27 | 2019-01-08 | 北京奇虎科技有限公司 | 实现下载运行付费应用的方法、服务器和装置 |
CN109460674A (zh) * | 2018-10-23 | 2019-03-12 | 上海金档信息技术有限公司 | 一种java应用程序保护方法 |
CN109783160A (zh) * | 2019-01-29 | 2019-05-21 | 广东九联科技股份有限公司 | 一种快速传送及渲染的网页文件加载系统及方法 |
CN109783160B (zh) * | 2019-01-29 | 2022-04-26 | 广东九联科技股份有限公司 | 一种快速传送及渲染的网页文件加载系统及方法 |
CN110022558A (zh) * | 2019-04-03 | 2019-07-16 | Oppo广东移动通信有限公司 | 一种升级包的加密、解密方法和电子装置及存储介质 |
CN110598402A (zh) * | 2019-09-09 | 2019-12-20 | 杭州天宽科技有限公司 | 一种基于安卓应用的运行保密系统 |
CN111639311A (zh) * | 2020-05-29 | 2020-09-08 | 杭州安恒信息技术股份有限公司 | 防止反编译可执行文件的方法、装置、计算机设备和介质 |
CN112084469A (zh) * | 2020-08-06 | 2020-12-15 | 华帝股份有限公司 | 防止应用程序被逆向工程的加密方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102236757A (zh) | 一种适用于Android系统的软件保护方法及系统 | |
CN105426708B (zh) | 一种Android系统的应用程序的加固方法 | |
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
JP5996810B2 (ja) | 自己書換え基盤のアプリケーションコード難読化装置及びその方法 | |
US10797868B2 (en) | Shared secret establishment | |
CN104318135B (zh) | 一种基于可信执行环境的Java代码安全动态载入方法 | |
KR101284676B1 (ko) | 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법 | |
US20170116410A1 (en) | Software protection | |
KR101216995B1 (ko) | 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법 | |
EP3198498B1 (en) | A challenge-response method and associated computing device | |
KR20100017844A (ko) | 데이터를 보호할 때 적용되는 프로그램 가능한 프로세싱 단계들을 정의하기위한 시스템 및 방법 | |
CN101872404B (zh) | 一种保护Java软件程序的方法 | |
CN102087605A (zh) | 一种基于android平台应用安装控制方法及系统 | |
Piao et al. | Server‐based code obfuscation scheme for APK tamper detection | |
CN101957903A (zh) | 一种保护类文件的方法和装置 | |
US20180067777A1 (en) | Application protection method, server, and terminal | |
CN110188555B (zh) | 一种磁盘数据保护方法、系统及相关组件 | |
US8392723B2 (en) | Information processing apparatus and computer readable medium for preventing unauthorized operation of a program | |
KR102001046B1 (ko) | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
JPH1131105A (ja) | データカプセル生成装置および方法 | |
CN114547558A (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
CN107257282A (zh) | 一种基于rc4算法的代码全包加密方法 | |
JP2007515723A (ja) | アクティブなエンティティを使用するソフトウェア実行保護 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
CN115964681A (zh) | 目标应用程序的证书文件的生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111109 |