应用程序安装包的生成方法、应用程序的运行方法及装置制造方法及图纸

技术编号:17406382 阅读:21 留言:0更新日期:2018-03-07 04:27
本申请公开了一种应用程序安装包的生成方法,用以解决应用程序安装包可能会被反编译的方式破解,而造成应用程序操作代码泄露的问题。方法包括:从应用程序第一安装包中确定待保护的第一代码,并根据确定出的第一代码,生成包含第一代码的动态链接库文件;生成用于调用动态链接库文件的第二代码;根据第二代码以及生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包。本申请还公开了一种应用程序安装包的生成装置。

The method of generating the application package, the operation method and the device of the application

This application discloses a generation method of application installation package, which is used to solve the problem that the application installation package may be decomposed by decompile, resulting in the problem of leakage of application operation code. The method includes: a first code to determine protection from the first application installation package, and according to the first code to determine the dynamic link library file contains the first code generation; used to call the dynamic link library file code second; according to the second code and generate the dynamic link library files, containing the code and the second generation the dynamic link library file application installation package second. The application also discloses a generating device for an application installation package.

【技术实现步骤摘要】
应用程序安装包的生成方法、应用程序的运行方法及装置
本申请涉及计算机
,尤其涉及一种应用程序安装包的生成方法、应用程序的运行方法及装置。
技术介绍
随着互联网信息技术的不断发展,越来越多具有不同功能且可以应用于智能终端设备上的应用程序被开发出来,极大的丰富了人们的日常生活。这里所说的应用程序,比如,可以是计算机上的应用程序,也可以是移动终端上的应用(Application,APP)。然而,随着终端应用市场的飞速发展,应用程序被山寨、被破解的问题也变得越来越严重。对于一些优秀的应用,由于缺少对源代码的保护机制,很容易就可以通过反编译的方式破解,造成应用程序代码的泄露,这就会给应用程序的开发者带来很大损失。其中,反编译,一般是指将应用程序的指定可执行文件中包含的操作代码(OperateCode,opcode)转化为应用程序的高级语言源代码。就反编译的具体实现方式而言,其通常采用的是转移内存数据(dump内存)的方式:在应用程序运行时,从内存中,dump出应用程序的指定可执行文件中的被加载到内存的操作代码,进而将所述操作代码转化为该应用程序的高级语言源代码。以安卓应用为例,这里所说的指定可执行文件一般是classes.dex文件。如何保护应用程序的操作代码不会被反编译的方式破解,成为亟待解决的问题。
技术实现思路
本申请实施例提供一种应用程序安装包的生成方法,用以解决应用程序安装包可能会被反编译的方式破解,而造成应用程序操作代码泄露的问题。本申请实施例还提供一种应用程序安装包的生成装置,用以解决应用程序安装包可能会被反编译的方式破解,而造成应用程序操作代码泄露的问题。本申请实施例提供一种应用程序的运行方法。本申请实施例提供一种应用程序的运行装置。本申请实施例采用下述技术方案:一种应用程序安装包的生成方法,包括:从应用程序第一安装包中确定出待保护的第一代码,并根据确定出的所述第一代码,生成包含所述第一代码的动态链接库文件;生成用于调用所述生成的动态链接库文件的第二代码;根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包。一种应用程序安装包的生成装置,包括:动态链接库文件生成单元,用于从应用程序第一安装包中确定出待保护的第一代码,并根据分离出的所述第一代码,生成包含所述第一代码的动态链接库文件;第二代码生成单元,用于生成用于调用所述生成的动态链接库文件的第二代码;应用程序安装包生成单元,用于根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包。一种应用程序的运行方法,包括:接收针对应用程序第二安装包的加载指令;所述应用程序第二安装包中包含用于调用动态链接库文件的第二代码,所述动态链接库文件,是根据所述应用程序第一安装包中待保护的第一代码生成的;响应于所述加载指令,加载所述第二代码,以使得通过运行所述第二代码,调用所述动态链接库文件到内存中;运行被调用到所述内存中的所述动态链接库文件。一种应用程序的运行装置,包括:加载指令接收单元,用于接收针对应用程序第二安装包的加载指令;所述应用程序第二安装包中包含用于调用动态链接库文件的第二代码,所述动态链接库文件,是根据所述应用程序第一安装包中待保护的第一代码生成的;代码加载单元,用于响应于所述加载指令,加载所述第二代码,以使得通过运行所述第二代码,调用所述动态链接库文件到内存中;运行单元,用于运行被调用到所述内存中的所述动态链接库文件。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:一方面,由于根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包后,第一代码存在于应用程序第二安装包的动态链接库中,因此采用反编译的方式从生成的应用程序第二安装包中无法获得第一代码,从而避免了应用程序操作代码泄露;另一方面,由于第一代码原有的功能,后续可以由第二代码调用包含所述第一代码的动态链接库文件来实现,因此保证了生成的应用程序第二安装包仍然可以实现所述第一代码的功能。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一种应用程序安装包的生成方法的具体实现流程示意图;图2为本申请实施例提供的一种应用程序安装包的生成方法的具体实现流程示意图;图3为本申请实施例提供的一种应用程序运行方法的具体实现流程示意图;图4为本申请实施例提供的一种应用程序安装包的生成方法以及运行应用程序安装包的具体流程示意图;图5为本申请实施例提供的一种应用程序安装包的生成装置的具体结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。实施例1本申请实施例提供了一种应用程序安装包的生成方法,用以解决应用程序安装包可能会被反编译的方式破解,而造成应用程序操作代码泄露的问题。本申请实施例提供的应用程序安装包的生成方法,该方法的执行主体,可以但不限于为手机、平板电脑、个人电脑(PersonalComputer,PC)、智能电视以及任何可以运行应用程序的终端设备中的至少一种。此外,该方法的执行主体,也可以是服务器,例如,用于对应用程序安装包进行生成处理的服务器(可以称为应用程序安装包生成服务器),等。为便于描述,下文以该方法的执行主体为应用程序安装包生成网站服务器为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为应用程序生成网站服务器只是一种示例性的说明,并不应理解为对该方法的限定。该方法的具体实现流程图如图1所示,主要包括下述步骤:步骤11,从应用程序第一安装包中确定待保护的第一代码,并根据确定出的所述第一代码,生成包含所述第一代码的动态链接库文件;所述应用程序的安装包(InstallPackage)中包括该应用程序的安装文件,运行所述安装包,可将该应用程序的安装文件保存到智能终端的存储设备(如,硬盘)上。所述第一代码可以是指应用程序安装包中的操作代码(OperateCode,opcode)。以使用安卓(Android)操作系统的智能手机为例,所述第一代码可以为安卓安装包(AndroidPackage,APK)中的可执行文件“classes.dex文件”中的opcode。而采用反编译等应用程序安装包破解方法,就是期望获取到应用程序的opcode,进而将获取到的opcode转化为应用程序的高级语言源代码。需要说明的是,所述应用程序的操作代码一般保存在应用程序安装包的指定文件中,以运行在安卓操作系统的安卓应用程序为例,安卓应用程序的操作代码一般保存在安卓安装包的可执行文件classes.dex文件中,则一般可以从应用程序安装包的指定文件(后文称为第一文件)中确定出待保护的第一代码。从应本文档来自技高网...
应用程序安装包的生成方法、应用程序的运行方法及装置

【技术保护点】
一种应用程序安装包的生成方法,其特征在于,包括:从应用程序第一安装包中确定待保护的第一代码,并根据确定出的所述第一代码,生成包含所述第一代码的动态链接库文件;生成用于调用所述生成的动态链接库文件的第二代码;根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包。

【技术特征摘要】
1.一种应用程序安装包的生成方法,其特征在于,包括:从应用程序第一安装包中确定待保护的第一代码,并根据确定出的所述第一代码,生成包含所述第一代码的动态链接库文件;生成用于调用所述生成的动态链接库文件的第二代码;根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包。2.如权利要求1所述的方法,其特征在于,根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包,包括:根据所述第二代码以及所述生成的动态链接库文件,按照使得所述第二代码以及生成的动态链接库文件替换所述应用程序第一安装包中第一代码的方式,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包。3.如权利要求1所述的方法,其特征在于,根据确定出的所述第一代码,生成包含所述第一代码的动态链接库文件,包括:将确定出的所述第一代码保存为符合指定的计算机编程语言格式的文件;根据所述符合指定的计算机编程语言格式的文件与加载器,生成包含所述符合指定的计算机编程语言格式的文件和所述加载器的动态链接库文件,其中,所述加载器用于将所述符合指定的计算机编程语言格式的文件加载到内存中。4.如权利要求1所述的方法,其特征在于,从应用程序第一安装包中确定待保护的第一代码,包括:对所述应用程序第一安装包进行解压,获得所述应用程序第一安装包中的第一文件以及第二文件;所述第二文件中保存有所述应用程序能够实现的类的名称;从所述第二文件中确定所述待保护的类的名称;根据确定出的所述待保护的类的名称,从所述第一文件中确定与所述待保护的类的名称对应的代码,作为待保护的第一代码。5.如权利要求4所述的方法,其特征在于,从所述第二文件中确定出所述待保护的类的名称,包括:当所述第二文件为全局描述文件时,将所述全局描述文件中的组件类的名称确定为所述待保护的类的名称;当所述第二文件为预设的配置文件时,将所述预设的配置文件中的类的名称确定为所述待保护的类的名称;所述预设的配置文件为根据预先设定的类,生成的包含所述预先设定的类的名称的文件。6.如权利要求1所述的方法,其特征在于,生成用于调用所述动态链接库文件的第二代码,包括:在所述应用程序第一安装包中生成用于调用所述动态链接库文件的第二代码。7.如权利要求6所述的方法,其特征在于,根据所述第二代码以及所述生成的动态链接库文件,生成包含所述第二代码以及所述动态链接库文件的应用程序第二安装包,包括:对所述动态链接库文件进行加密处理,得到加密后的动态链接库文件;根据所述第二代码以及加密后的动态链接库文件,生成包含所述第二代码以及所述加密后的动态链接库文件的应用程序第二安装包。8.如权利要求7所述的方法,其特征在于,对所述动态链接库文件进行加密处理,包括下述至少一种:采用加壳技术,对所述动态链接库文件进行处理;采用花指令技术,对所述动态链接库文件进行处理。9.一种应用程序的运行方法,其特征在于,包括:接收针对应用程序第二安装包的加载指令;所述应用程序第二安装包中包含用于调用动态链接库文件的第二代码,所述动态链接库文件,是根据应用程序第一安装包中待保护的第一代码生成的;响应于所述加载指令,加载所述第二代码,以使得通过运行所述第二代码,调用所述动态链接库文件到内存中;运行被调用到所述内存中的所述动态链接库文件。10.如权利要求9所述的方法,其特征在于,当所述动态链接库文件为加密后的动态链接库文件时,运行被调用到所述内存中的所述动态链...

【专利技术属性】
技术研发人员:郭跃华
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1