CN112765567A - 一种应用程序的数据处理方法及其装置 - Google Patents

一种应用程序的数据处理方法及其装置 Download PDF

Info

Publication number
CN112765567A
CN112765567A CN202110019028.XA CN202110019028A CN112765567A CN 112765567 A CN112765567 A CN 112765567A CN 202110019028 A CN202110019028 A CN 202110019028A CN 112765567 A CN112765567 A CN 112765567A
Authority
CN
China
Prior art keywords
file
files
dex
apk
encrypted
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
CN202110019028.XA
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.)
Shanghai Qinggan Intelligent Technology Co Ltd
Original Assignee
Shanghai Qinggan Intelligent Technology 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 Shanghai Qinggan Intelligent Technology Co Ltd filed Critical Shanghai Qinggan Intelligent Technology Co Ltd
Priority to CN202110019028.XA priority Critical patent/CN112765567A/zh
Publication of CN112765567A publication Critical patent/CN112765567A/zh
Pending legal-status Critical Current

Links

Images

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

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

Abstract

本发明提供了一种应用程序的数据处理方法及其装置。其中,应用程序的数据处理方法包括以下步骤:打包所述应用程序的代码,以获得所述应用程序的APK文件;以及加密所述APK文件中的dex文件,以得到新的APK文件。

Description

一种应用程序的数据处理方法及其装置
技术领域
本发明涉及数据处理领域,尤其涉及一种应用程序的数据处理方法及其装置。
背景技术
应用程序(Application,APP)指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。
安卓手机端的应用程序的安装包一般以APK(Android application package)文件格式存在。APK是类似SymbianSis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。
APK文件和Sis一样,把androidsdk编译的工程打包成一个安装程序文件,格式为APK。APK文件其实是Zip格式,但后缀名被修改为APK,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序。
一个APK文件通常包含以下文件:
1.META-INF文件夹,属于签名文件,用于保存应用程序的证书和授权信息;
2.res文件,APK所需要的资源文件夹;
3.AndroidManifest.xm,一个传统的Android清单文件,用于描述该应用程序的名字、版本号、所需权限、注册的服务和/或链接的其他应用程序;
4.classes.dex,classes文件通过DEX编译后的文件格式,用于在Dalvik虚拟机上运行的主要代码部分;
5.resources.arsc,程序的语言文件,可以透过软件(AndroidResEdit等工具)来进行翻译,也可以用APKTool等工具反编译后再进行软件修改。
APK反编译就是通过使用APK编译工具,将APK文件中的源文件和资源反编译出来,得到对应的源文件和资源文件。显然,反编译的功能使得应用软件容易被抄袭或他用。同时,反编译的功能使得用户的敏感数据容易被暴露,造成不好的用户体验。因此,应用软件的数据加固成为开发者亟待解决的问题。
目前存在类似的可用于数据加固的混淆方法,将minifyEnabled文件设置为true,但是此种方法是将一个类名字或者方法名字换成一个没有实际含义的字母,实际上仍有逻辑可寻。
为防止应用程序被反编译,本发明提供一种应用程序的数据处理方法,使得反编译后的主要代码为一堆乱码,毫无逻辑可言。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的一个目的在于提供一种应用程序的数据处理方法及其装置以及计算机存储介质,其优势在于,APK文件中的dex文件的安全性被加固,可阻碍甚至防止应用程序被反编译,提高了应用程序的安全性。
本发明的另一个目的在于提供一种应用程序的数据处理方法及其装置以及计算机存储介质,其优势在于,APK文件中的dex文件能够被选择性地加固,可增加关键数据的安全性,提高了数据处理的效率。
本发明的另一个目的在于提供一种应用程序的数据处理方法及其装置以及计算机存储介质,其优势在于,需要加密的dex文件可被快速地分辨和提取,提高了新的APK文件的形成效率。
本发明的优势和特点可通过下述的详细说明得以充分体现并可通过所附的示例性实施例得以实现。
根据本发明的一个方面,提供一种数据处理方法,包括以下步骤:打包所述应用程序的代码,以获得所述应用程序的APK文件;以及加密所述APK文件中的dex文件,以得到新的APK文件。
根据本发明的一个实施例,加密所述APK文件中的dex文件包括步骤:从所述APK文件中提取出若干个需要加密的dex文件。
根据本发明的一个实施例,从所述APK文件中提取出若干个需要加密的dex文件包括步骤:提取出所述APK文件中满足预设加密命名规则的dex文件,所述满足预设加密命名规则的dex文件为所述若干个需要加密的dex文件。
根据本发明的另一个方面,提供一种应用程序的数据处理装置,包括:存储器;以及与所述存储器连接的处理器,所述处理器被配置成:打包所述应用程序的代码,以获得所述应用程序的APK文件;以及加密所述APK文件中的dex文件,以得到新的APK文件。
根据本发明的一个实施例,所述处理器进一步被配置成:从所述APK文件中提取出若干个需要加密的dex文件。
根据本发明的一个实施例,所述处理器进一步被配置成:提取出所述APK文件中满足预设加密命名规则的dex文件,所述满足预设加密命名规则的dex文件为所述若干个需要加密的dex文件。
根据本发明的再一个方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如前述的任一实施例中的应用程序的数据处理方法的步骤。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,更能够更好地理解本发明的上述特征和优点。
图1是根据本发明的一个方面绘示的一实施例中的应用程序的数据处理方法的流程示意图;
图2是根据本发明的一个方面绘示的一实施例中的应用程序的数据处理方法的部分流程示意图;
图3是根据本发明的一个方面绘示的一实施例中的应用程序的APK文件的内容示意图;
图4是根据本发明的一个方面绘示的一实施例中的应用程序的数据处理方法的部分流程示意图;
图5是根据本发明的另一个方面绘示的一实施例中的应用程序的数据处理装置的模块框图。
具体实施方式
给出以下描述以使得本领域技术人员能够实施和使用本发明并将其结合到具体应用背景中。各种变型、以及在不同应用中的各种使用对于本领域技术人员将是容易显见的,并且本文定义的一般性原理可适用于较宽范围的实施例。由此,本发明并不限于本文中给出的实施例,而是应被授予与本文中公开的原理和新颖性特征相一致的最广义的范围。
在以下详细描述中,阐述了许多特定细节以提供对本发明的更透彻理解。然而,对于本领域技术人员显而易见的是,本发明的实践可不必局限于这些具体细节。换言之,公知的结构和器件以框图形式示出而没有详细显示,以避免模糊本发明。
请读者注意与本说明书同时提交的且对公众查阅本说明书开放的所有文件及文献,且所有这样的文件及文献的内容以参考方式并入本文。除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。
注意,在使用到的情况下,标志左、右、前、后、顶、底、正、反、顺时针和逆时针仅仅是出于方便的目的所使用的,而并不暗示任何具体的固定方向。事实上,它们被用于反映对象的各个部分之间的相对位置和/或方向。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
注意,在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
根据本发明的一个方面,提供一种应用程序的数据处理方法,用于防止应用程序被其他人反编译。
在一具体实施例中,如图1所示,一种应用程序的数据处理方法100可包括步骤S110~S120。
其中,步骤S110为:打包所述应用程序的代码,以获得所述应用程序的APK文件。
打包应用程序可包括编译和打包两个过程。
其中,编译过程为:编译器(Compiler)通过编译源码、AIDL文件、资源文件和依赖包,最终生成Dex文件和编译后的资源文件。
打包过程为:打包器(APK Packager)利用签名文件(KeyStore)和编译过程中生成的Dex文件以及编译后的资源文件打包成最终的APK文件。
进一步地,编译过程可大致分为4步:
1.使用aapt工具,编译res/文件,生成编译后的二进制资源文件(.ap_文件)和R.java文件;
2.使用aidl工具,根据aidl文件生成对应的Java接口文件;
3.使用Java Compiler工具,Java Compiler(俗称javac)将R.java、项目中的代码和Aidl接口文件编译成.class文件;
4.使用dex工具,将产生的.class文件和第三方依赖中的.class编译成.dex文件。
打包过程可大致分为2步:
1.使用apkbuilder工具,将编译后的资源(.ap_文件)、dex文件及其他资源文件(例如:so文件)压缩成一个.apk文件。
2.使用Jarsigner工具,读取签名文件,对产生的APK文件进行签名,生成一个已签名的APK文件。
打包应用程序可通过安卓系统上的Build程序来自动进行,以上内容属于应用程序打包常规步骤,不再赘述,实际的应用程序打包过程也不受上述过程限制。
步骤S120为:加密该APK文件中的dex文件,以得到新的APK文件。
dex文件为应用程序的主要代码部分,因此可对dex文件进行加密,使得反编译后的APK文件中的dex文件呈现出加密后的乱码状态,无法被他人利用和盗取。
具体地,如图2所示,步骤S120可包括步骤S121~S124。
其中,步骤S121为:从APK文件中提取出若干个需要加密的dex文件。
图3示出了一应用程序的APK文件中包括的文件内容,其中包括多个dex文件。因此,可基于实际的应用程序的各个dex文件的重要性选择其中的若干个dex文件进行加密,或随机选取其中的若干个dex文件进行加密,甚至可以选择加密全部dex文件。
较优地,在一具体实施例中,在打包APK文件的过程中,可预先对需要加密的dex文件进行标记。则在提取需要加密的dex文件时,仅需将被标记的dex文件提取出来即可。
具体地,可通过修改需要加密的dex文件的文件名来实现dex文件的标记。比如,设定一套加密命名规则,在提取需要加密的dex文件时,提取出该APK文件中满足预设加密命名规则的dex文件以作为需要加密的dex文件。
实际的预设加密命名规则可以是在文件名中增加相应的关键词,比如“sss”等特殊的关键词。另外,为防止关键词的统一而使得需要加密的dex文件容易在反编译过程中被发现,因此,可将关键词设置成与加密无关的或隐晦的词,甚至可设置一些干扰词来防止关键词被发现。
本领域的技术人员可以理解,基于本发明的技术构思,还可采用其他的标记方式或预设加密命名规则的方式来区别APK文件中需要加密的dex文件,并不以上述示例为限。
步骤S122为:分别加密该若干个需要加密的dex文件,以得到若干个加密后的dex文件。
具体地,可采用AES、RSA算法、SHA-1或其他现有的或将有的加密算法对该若干个需要加密的dex文件分别进行加密以得到若干个加密后的dex文件。
其中,AES(Advanced Encryption Standard,高级加密标准)为最常见的对称加密算法,不再赘述。
RSA(RSA algorithm)是由Ron Rivest、Adi Shamir和Leonard Adleman一起提出的加密算法,因此被称为RSA算法。RSA算法是本领域常用的加密算法,不再赘述。
SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1是本领域常用的加密算法,不再赘述。
本领域的技术人员可以理解,当该若干个需要加密的dex文件为多个时,该若干个需要加密的dex文件可分别采用相同或不同的加密算法来进行加密。并进一步地还可结合不同的预设加密命名规则来进行加密算法的选择。例如,将预设加密命名规则中的第一类规则命名的dex文件采用AES加密,将预设加密命名规则中的第二类规则命名的dex文件采用RSA算法加密,和/或将预设加密命名规则中的第三类规则命名的dex文件采用SHA-1加密。可以理解,在本发明的发明构思的基础上,对加密算法的种类或数量以及对加密算法和预设命名规则的结合进行地适应性的变形均属于本发明的保护范围之内,并不受前述示例的限制。
对应地,本领域的技术人员可以理解,加密后的dex文件在实际运行过程中需要采用与加密算法对应的解密算法进行解密,比如AES加密算法需要采用对应的AES解密算法进行解密后再运行。
步骤S123为:组合所有加密后的dex文件与dex壳,以得到组合后的dex文件。
dex壳为dex文件的外壳程序,先于dex文件,可用于解密dex文件,即可用于提取直接运行的dex文件。
因此,需要将所有加密后的dex文件与dex壳进行组合以便于在加固应用程序的数据的同时不影响该应用程序的实际运行。
步骤S124为:组合后的dex文件与APK文件中的剩余文件被组合以得到新的APK文件。
可以理解,提取了dex文件后的APK文件中仍然存在其他文件,比如res文件等等。该些其他文件为应用程序的必备文件,因此需要将组合后的dex文件与被提取了dex文件后的APK文件中的剩余文件进行组合以得到新的APK文件。
进一步地,在一更优实施例中,如图4所示,步骤120可还包括步骤S125:删除该APK文件中的剩余文件中的签名文件。
可以理解,APK文件的打包过程是在编译过程的基础上进行的,因此,原有的签名文件需要进行对应的更新,所以可删除原有的签名文件,即图3所示的META-INF文件夹。
可以理解,在加密后的dex文件的基础上,删除原有的签名文件并基于加密后的dex文件生成新的签名文件可提高应用程序的验证安全性。
对应地,如图4所示,步骤120可还包括步骤126:新的APK文件被签名以得到应用程序的完整的可运行程序包。
具体地,可利用Jarsigner工具对新的APK文件进行签名。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
根据本发明的另一个方面,还提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被执行时实现如上述任一实施例中该的应用程序的数据处理方法的步骤。
根据本发明的另一个方面,还提供一种应用程序的数据处理装置,,用于防止应用程序被其他人反编译。
在一具体实施例中,如图5所示,一种应用程序的数据处理装置500可包括存储器510和处理器520。
其中,存储器510用于存储计算机程序。
处理器520与存储器连接,用于执行存储器510上的计算机程序。存储器510被配置成:打包所述应用程序的代码,以获得所述应用程序的APK文件;以及加密该APK文件中的dex文件,以得到新的APK文件。
应用程序打包可包括编译和打包两个过程。
其中,编译过程为:编译器(Compiler)通过编译源码、AIDL文件、资源文件和依赖包,最终生成Dex文件和编译后的资源文件。
打包过程为:打包器(APK Packager)利用签名文件(KeyStore)和编译过程中生成的Dex文件以及编译后的资源文件打包成最终的APK文件。
进一步地,编译过程可大致分为4步:
1.使用aapt工具,编译res/文件,生成编译后的二进制资源文件(.ap_文件)和R.java文件;
2.使用aidl工具,根据aidl文件生成对应的Java接口文件;
3.使用Java Compiler工具,Java Compiler(俗称javac)将R.java、项目中的代码和Aidl接口文件编译成.class文件;
4.使用dex工具,将产生的.class文件和第三方依赖中的.class编译成.dex文件。
打包过程可大致分为2步:
1.使用apkbuilder工具,将编译后的资源(.ap_文件)、dex文件及其他资源文件(例如:so文件)压缩成一个.apk文件。
2.使用Jarsigner工具,读取签名文件,对产生的APK文件进行签名,生成一个已签名的APK文件。
dex文件为应用程序的主要代码部分,因此可对dex文件进行加密,使得反编译后的APK文件中的dex文件呈现出加密后的乱码状态,无法被他人利用和盗取。
具体地,处理器520可进一步被配置成:从APK文件中提取出若干个需要加密的dex文件;分别加密该若干个需要加密的dex文件,以得到若干个加密后的dex文件;组合所有加密后的dex文件与dex壳,以得到组合后的dex文件;以及组合后的dex文件与APK文件中的剩余文件被组合以得到新的APK文件。
图3示出了一应用程序的APK文件中包括的文件内容,其中包括多个dex文件。因此,可基于实际的应用程序的各个dex文件的重要性选择其中的若干个dex文件进行加密,或随机选取其中的若干个dex文件进行加密,甚至可以选择加密全部dex文件。
较优地,在一具体实施例中,在打包APK文件的过程中,可预先对需要加密的dex文件进行标记。则在提取需要加密的dex文件时,仅需将被标记的dex文件提取出来即可。
具体地,可通过修改需要加密的dex文件的文件名来实现dex文件的标记。比如,设定一套加密命名规则,在提取需要加密的dex文件时,提取出该APK文件中满足预设加密命名规则的dex文件以作为需要加密的dex文件。
实际的预设加密命名规则可以是在文件名中增加相应的关键词,比如“sss”等特殊的关键词。另外,为防止关键词的统一而使得需要加密的dex文件容易在反编译过程中被发现,因此,可将关键词设置成与加密无关的或隐晦的词,甚至可设置一些干扰词来防止关键词被发现。
本领域的技术人员可以理解,基于本发明的技术构思,还可采用其他的标记方式或预设加密命名规则的方式来区别APK文件中需要加密的dex文件,并不以上述示例为限。
具体地,可采用AES、RSA算法、SHA-1或其他现有的或将有的加密算法对该若干个需要加密的dex文件分别进行加密以得到若干个加密后的dex文件。
其中,AES(Advanced Encryption Standard,高级加密标准)为最常见的对称加密算法,不再赘述。
RSA(RSA algorithm)是由Ron Rivest、Adi Shamir和Leonard Adleman一起提出的加密算法,因此被称为RSA算法。RSA算法是本领域常用的加密算法,不再赘述。
SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数,由美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1是本领域常用的加密算法,不再赘述。
本领域的技术人员可以理解,当该若干个需要加密的dex文件为多个时,该若干个需要加密的dex文件可分别采用相同或不同的加密算法来进行加密。并进一步地还可结合不同的预设加密命名规则来进行加密算法的选择。例如,将预设加密命名规则中的第一类规则命名的dex文件采用AES加密,将预设加密命名规则中的第二类规则命名的dex文件采用RSA算法加密,和/或将预设加密命名规则中的第三类规则命名的dex文件采用SHA-1加密。可以理解,在本发明的发明构思的基础上,对加密算法的种类或数量以及对加密算法和预设命名规则的结合进行地适应性的变形均属于本发明的保护范围之内,并不受前述示例的限制。
对应地,本领域的技术人员可以理解,加密后的dex文件在实际运行过程中需要采用与加密算法对应的解密算法进行解密,比如AES加密算法需要采用对应的AES解密算法进行解密后再运行。
dex壳为dex文件的外壳程序,先于dex文件,可用于解密dex文件,即可用于提取直接运行的dex文件。
因此,需要将所有加密后的dex文件与dex壳进行组合以便于在加固应用程序的数据的同时不影响该应用程序的实际运行。
可以理解,提取了dex文件后的APK文件中仍然存在其他文件,比如res文件等等。该些其他文件为应用程序的必备文件,因此需要将组合后的dex文件与被提取了dex文件后的APK文件中的剩余文件进行组合以得到新的APK文件。
进一步地,在一更优实施例中,处理器520进一步被配置成:在组合后的dex文件与所述APK文件中的剩余文件被组合之前,删除原始打包生成的APK文件中的剩余文件中的签名文件;以及该组合后的dex文件与删除了签名文件的剩余文件被组合以得到新的APK文件。
可以理解,APK文件的打包过程是在编译过程的基础上进行的,因此,原有的签名文件需要进行对应的更新,所以可删除原有的签名文件,即图3所示的META-INF文件夹。
可以理解,在加密后的dex文件的基础上,删除原有的签名文件并基于加密后的dex文件生成新的签名文件可提高应用程序的验证安全性。
对应地,还可包括生成新的签名文件的步骤,即处理器520进一步被配置成:在该组合后的dex文件与原始打包生成的APK文件中的剩余文件被组合以得到新的APK文件之后,新的APK文件被签名以得到应用程序的完整的可运行程序包。
本领域技术人员将可理解,信息、信号和数据可使用各种不同技术和技艺中的任何技术和技艺来表示。例如,以上描述通篇引述的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光学粒子、或其任何组合来表示。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供之前的描述是为了使本领域中的任何技术人员均能够实践本文中所描述的各种方面。但是应该理解,本发明的保护范围应当以所附权利要求书为准,而不应被限定于以上所解说实施例的具体结构和组件。本领域技术人员在本发明的精神和范围内,可以对各实施例进行各种变动和修改,这些变动和修改也落在本发明的保护范围之内。

Claims (11)

1.一种应用程序的数据处理方法,包括以下步骤:
打包所述应用程序的代码,以获得所述应用程序的APK文件;以及
加密所述APK文件中的dex文件,以得到新的APK文件。
2.如权利要求1所述的方法,其中,加密所述APK文件中的dex文件,以得到新的APK文件包括以下步骤:
从所述APK文件中提取出若干个需要加密的dex文件;
分别加密所述若干个需要加密的dex文件,以得到若干个加密后的dex文件;
组合所有加密后的dex文件与dex壳,以得到组合后的dex文件;以及
所述组合后的dex文件与所述APK文件中的剩余文件被组合以得到新的APK文件。
3.如权利要求2所述的方法,其中,从所述APK文件中提取出若干个需要加密的dex文件包括以下步骤:
提取出所述APK文件中满足预设加密命名规则的dex文件,所述满足预设加密命名规则的dex文件为所述若干个需要加密的dex文件。
4.如权利要求2所述的方法,其中,
所述组合后的dex文件与所述APK文件中的剩余文件被组合以得到新的APK文件之前还包括以下步骤:
删除所述APK文件中的剩余文件中的签名文件;以及
所述组合后的dex文件与所述APK文件中的剩余文件被组合以得到新的APK文件还包括以下步骤:
所述组合后的dex文件与删除了签名文件的剩余文件被组合以得到新的APK文件。
5.如权利要求4所述的方法,其中,所述组合后的dex文件与所述APK文件中的剩余文件被组合以得到新的APK文件之后还包括以下步骤:
所述新的APK文件被签名以得到所述应用程序的完整的可运行程序包。
6.一种应用程序的数据处理装置,包括:
存储器;以及
与所述存储器连接的处理器,所述处理器被配置成:
打包所述应用程序的代码,以获得所述应用程序的APK文件;以及
加密所述APK文件中的dex文件,以得到新的APK文件。
7.如权利要求6所述的装置,其中,所述处理器进一步被配置成:
从所述APK文件中提取出若干个需要加密的dex文件;
分别加密所述若干个需要加密的dex文件,以得到若干个加密后的dex文件;
组合所有加密后的dex文件与dex壳,以得到组合后的dex文件;以及
所述组合后的dex文件与所述APK文件中的剩余文件被组合以得到新的APK文件。
8.如权利要求7所述的装置,其中,所述处理器进一步被配置成:
提取出所述APK文件中满足预设加密命名规则的dex文件,所述满足预设加密命名规则的dex文件为所述若干个需要加密的dex文件。
9.如权利要求7所述的装置,其中,所述处理器还被配置成:
在所述组合后的dex文件与所述APK文件中的剩余文件被组合之前,删除所述APK文件中的剩余文件中的签名文件;以及
所述组合后的dex文件与删除了签名文件的剩余文件被组合以得到新的APK文件。
10.如权利要求9所述的装置,其中,所述处理器还被配置成:
在所述组合后的dex文件与所述APK文件中的剩余文件被组合以得到新的APK文件之后,所述新的APK文件被签名以得到所述应用程序的完整的可运行程序包。
11.一种计算机存储介质,其上存储有计算机程序,其中,所述计算机程序被执行时实现如权利要求1~5中任一项所述的应用程序的数据处理方法的步骤。
CN202110019028.XA 2021-01-07 2021-01-07 一种应用程序的数据处理方法及其装置 Pending CN112765567A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110019028.XA CN112765567A (zh) 2021-01-07 2021-01-07 一种应用程序的数据处理方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110019028.XA CN112765567A (zh) 2021-01-07 2021-01-07 一种应用程序的数据处理方法及其装置

Publications (1)

Publication Number Publication Date
CN112765567A true CN112765567A (zh) 2021-05-07

Family

ID=75700899

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110019028.XA Pending CN112765567A (zh) 2021-01-07 2021-01-07 一种应用程序的数据处理方法及其装置

Country Status (1)

Country Link
CN (1) CN112765567A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419734A (zh) * 2021-06-17 2021-09-21 网易(杭州)网络有限公司 应用程序加固的方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104090772A (zh) * 2014-07-23 2014-10-08 广州金山网络科技有限公司 一种生成安卓安装包apk的方法及装置
CN112115430A (zh) * 2020-09-03 2020-12-22 深圳创维-Rgb电子有限公司 一种apk的加固方法、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104090772A (zh) * 2014-07-23 2014-10-08 广州金山网络科技有限公司 一种生成安卓安装包apk的方法及装置
CN112115430A (zh) * 2020-09-03 2020-12-22 深圳创维-Rgb电子有限公司 一种apk的加固方法、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEAP_: ""App加固(dex加密)"", pages 3 - 4, Retrieved from the Internet <URL:《https://www.jianshu.com/p/65d07198481a?utm_campaign=hugo》> *
追寻米K: ""Dex加密(上)"", pages 2, Retrieved from the Internet <URL:《https://www.jianshu.com/p/b5dc99450e20》> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113419734A (zh) * 2021-06-17 2021-09-21 网易(杭州)网络有限公司 应用程序加固的方法、装置及电子设备

Similar Documents

Publication Publication Date Title
US8095799B2 (en) Ticket authorized secure installation and boot
CN104866739A (zh) 安卓系统中应用程序加密方法及系统
US20150095653A1 (en) Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package
JP5734685B2 (ja) インテグリティを実行中に確かめるソフトウェアを生成するプログラム、方法及び記憶媒体
CN112507328B (zh) 一种文件签名方法、计算设备及存储介质
EP2879327A1 (en) Encryption and decryption processing method, apparatus and device
CN102656561A (zh) 信息处理装置、虚拟机生成方法及应用发布系统
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
CN111984962A (zh) 固件安全验证方法及装置
CN104915591A (zh) 一种数据处理方法及电子设备
CN108259479B (zh) 业务数据处理方法、客户端与计算机可读存储介质
CN104408337A (zh) 一种apk文件防逆向的加固方法
CN105930695A (zh) 一种软件开发工具包的保护方法及装置
US20180067777A1 (en) Application protection method, server, and terminal
JP2007233426A (ja) アプリケーション実行装置
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
CN109299944B (zh) 一种交易过程中的数据加密方法、系统及终端
CN112765567A (zh) 一种应用程序的数据处理方法及其装置
CN110135131B (zh) 一种应用程序的加密方法、存储介质及终端设备
CN112115430A (zh) 一种apk的加固方法、电子设备及存储介质
CN115964681A (zh) 目标应用程序的证书文件的生成方法
CN114139117A (zh) 应用程序加固方法、装置、电子设备及存储介质
CN111522555B (zh) apk文件的加固方法、解密方法及相关装置
CN107180170A (zh) 一种Android APP无壳加固方法
CN104050423B (zh) 一种组件调用方法、系统及终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination