可执行文件的加密方法及加密装置与流程

文档序号:11251288阅读:551来源:国知局
可执行文件的加密方法及加密装置与流程

本发明涉及计算机技术领域,具体而言,本发明涉及一种可执行文件的加密方法,及一种可执行文件的加密装置。



背景技术:

随着软件相关技术的飞速发展,人们的生活和工作对应用程序的依赖度也随之提高,其安全意识也逐渐增强。一方面,应用程序在发布后,容易被反编译而暴露其源代码,导致该应用程序的相关核心技术被窃取,给开发者造成巨大的经济损失,同时,也存在被破解后被植入恶意代码的风险,使得用户的个人隐私的安全性受到威胁;另一方面,应用程序作为一种特殊的产品,由于其数字化的特征,从问世起就一直遭受盗版的困扰,盗版的存在不仅给软件开发者造成了巨大的损失,也极大地阻碍了整个软件行业的发展。通常可执行文件的输入表、入口点函数、资源数据为非法盗取者分析可执行文件的重要数据,因此可执行文件历来是确保应用程序安全性的重点保护对象。现有技术对可执行文件中的数据的保护方式抗分析能力较差,很容易被逆向工程反编译和分析出来,造成数据的泄露及破坏。

因此,亟需一种对可执行文件的保护方式,加大反编译的难度,提高可执行文件的数据安全性,从而加大应用程序的信息安全。



技术实现要素:

为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:

本发明的实施例提出了一种可执行文件的加密方法,包括:

获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;

根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;

基于预定的加密算法,对待加密的符号进行加密;

将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。

可选地,还包括:

将应用程序安装包解压得到的解压文件存储至第一预定存储位置,解压文件包括可执行文件;

将第一预定存储位置处存储的可执行文件存储至第二预定存储位置;

其中,获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,包括:

从第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。

优选地,根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,包括:

根据已获取到各个符号的地址信息,从第二存储位置处确定待加密的符号。

可选地,基于预定的加密算法,对待加密的符号进行加密的步骤之后,还包括:

将加密后的符号保存于第二预定存储位置中,并转存至第三预定存储位置;

其中,将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,包括:

根据已确定的各个符号的地址信息,将第一预定存储位置中待加密的符号替换为第三预定存储位置中与其各自符号地址信息对应的加密后的符号。

可选地,还包括:

对第一预定存储位置中的与应用程序安装包对应的全部文件进行压缩处理,并将压缩后的全部文件进行打包以得到加密后的应用程序安装包。

本发明的另一实施例提出了一种可执行文件的加密装置,包括:

获取模块,用于获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;

确定模块,用于根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;

加密模块,用于基于预定的加密算法,对待加密的符号进行加密;

替换模块,用于将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。

可选地,还包括:

解压模块,用于将应用程序安装包解压得到的解压文件存储至第一预定存储位置,解压文件包括可执行文件;

存储模块,用于将第一预定存储位置处存储的可执行文件存储至第二预定存储位置;

其中,获取模块,包括:

读取单元,用于从第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。

优选地,确定模块,包括:

确定单元,用于根据已获取到各个符号的地址信息,从第二存储位置处确定待加密的符号。

可选地,基于预定的加密算法,对待加密的符号进行加密之后,还包括:

保存及转存模块,用于将加密后的符号保存于第二预定存储位置中,并转存至第三预定存储位置;

其中,替换模块,用于根据已确定的各个符号的地址信息,将第一预定存储位置中待加密的符号替换为第三预定存储位置中与其各自符号地址信息对应的加密后的符号。

可选地,还包括:

压缩及打包模块,用于对第一预定存储位置中的与应用程序安装包对应的全部文件进行压缩处理,并将压缩后的全部文件进行打包以得到加密后的应用程序安装包。

本发明的实施例中,提出了一种可执行文件的加密方案,获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息,为后续根据各个符号的地址信息将各个符号替换为各自对应加密后的符号提供了必要的前提保障;根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,实现了根据各个符号的地址信息及用户的需求快速高效地确定待加密的符号;基于预定的加密算法,对待加密的符号进行加密,将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件,实现了无需额外的开发成本即可简单便捷地对应用程序安装包中可执行文件中的各个待加密符号进行快速地加密,从而增加了对可执行文件进行反编译和分析的难度,在不影响应用程序运行稳定性及保证用户使用过程无感知的前提下,实现了提高应用程序的信息安全性的目的。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明中一个实施例的可执行文件的加密方法的流程图;

图2为本发明中另一实施例的可执行文件的加密装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

需要说明的是,本发明实施例中的应用程序安装包适用于安装在ios(苹果公司的移动操作系统)中,因此,本发明实施例中,以对ios的应用程序安装包中的可执行文件进行加密为例说明。本领域技术人员可以了解到,现有技术中,通过逆向工程反编译应用程序安装包中的可执行文件能得到应用程序的代码中的相关类名、方法名和函数入口信息等应用程序的信息,应用程序的非法窃取者能够根据这些信息分析得到应用程序的软件架构信息、软件的实现过程和核心技术的实现方式等信息,甚至能够还原应用程序的相关代码,使得应用程序的实现技术被泄露,因此对应用程序安装包进行加密,最重要的是对应用程序安装包中的可执行文件进行加密。

图1为本发明中一个实施例的可执行文件的加密方法的流程图。

本发明的实施例中,各步骤所执行的内容概述如下:步骤s110:获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;步骤s120:根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;步骤s130:基于预定的加密算法,对待加密的符号进行加密;步骤s140:将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。

本发明的实施例中,提出了一种可执行文件的加密方法,获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息,为后续根据各个符号的地址信息将各个符号替换为各自对应加密后的符号提供了必要的前提保障;根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,实现了根据各个符号的地址信息及用户的需求快速高效地确定待加密的符号;基于预定的加密算法,对待加密的符号进行加密,将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件,实现了无需额外的开发成本即可简单便捷地对应用程序安装包中可执行文件中的各个待加密符号进行快速地加密,从而增加了对可执行文件进行反编译和分析的难度,在不影响应用程序运行稳定性及保证用户使用过程无感知的前提下,实现了提高应用程序的信息安全性的目的。以下针对各个步骤的具体实现做进一步的说明:

步骤s110:获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息。

例如,对ios的应用程序安装包,如,app1.ipa,中的可执行文件进行加密的过程中,首先获取app1.ipa中可执行文件的分区表中各个符号的地址信息,如汇编编译后的汇编内容包括汇编指令“.globl_main”,“.global”指令说明_main是一个外部符号,也就是执行应用程序app1的main()函数,系统要调用它来运行可执行文件,可获取到符号_main函数真正的开始地址如“x00002740”,编译生成的二进制文件将会在这个地方产生一个引用,以使得app1能够正常安装运行。其中,在可执行文件中,符号用于存储可执行文件的内容信息、目标文件列表、可执行文件中的偏移位置及大小、每个文件对应字段的位置和占用空间等内容信息。

需要说明的是,本领域技术人员可以了解到,可执行文件指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样,其中,ios操作系统的终端设备中主要的可执行文件格式为mach-o即machobject格式,mach是一种操作系统内核,mach内核被next公司的nextstep操作系统使用。在mach上,一种可执行的文件格为mach-o(machobjectfileformat,machobject文件格式),随后,成为了osx的内核基础。所以虽然macosx是unix的“后代”,但所主要支持的可执行文件格式是mach-o。ios是从osx演变而来,所以同样是支持mach-o格式的可执行文件。在ios的可执行文件的内容中,采用分片存储通过代码编译后的内容,每个分片为一个分区,每个分区中存储的每条内容即为符号,而整个可执行文件的所有分区的集合为一个分区表。

步骤s120:根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号。

例如,根据已获取到的app1.ipa中的各个符号的地址信息,如符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”,若默认待加密符号为应用程序安装包的可执行文件中的全部的符号,则在应用程序安装包app1.ipa的可执行文件中可确定待加密的符号为_main和_printf。

需要说明的是,在应用程序安装包的可执行文件中确定待加密的符号的方式,还可以通过在配置文件中指定待加密的符号,如指定仅加密符号_main,也可以在加密的过程中,根据用户的选择,确定待加密的符号,本发明的实施例中虽会以特定的确定方式为例说明,但在此不做限定。

步骤s130:基于预定的加密算法,对待加密的符号进行加密。

例如,基于预定的加密算法,如sha1(securehashalgorithm,安全哈希算法)加密算法,对待加密符号_main进行加密处理,得到加密后的符号,如“9a41494ace”,对待加密符号_printf进行加密处理,得到加密后的符号,如“749436aca110”。

需要说明的是,本领域技术人员可以了解到,在计算机技术中,加密算法有多种,本发明的实施例虽会以特定的加密算法为例说明,但在此不做限定。

步骤s140:将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。

例如,若已确定待加密的符号仅为符号_main,将app1.ipa中待加密的符号_main替换为与符号_main的地址信息“x00002740”对应的加密后的符号“9a41494ace”,以生成加密后的app1.ipa的可执行文件。

优选地,该加密方法还包括步骤s150和步骤s160;步骤s150:将应用程序安装包解压得到的解压文件存储至第一预定存储位置,解压文件包括可执行文件;步骤s160:将第一预定存储位置处存储的可执行文件存储至第二预定存储位置。

例如,将应用程序安装包app1.ipa解压得到的全部解压文件存储至第一预定存储位置,如“…\文件夹a”,解压文件包括可执行文件;随后提取“…\文件夹a”路径下存储的可执行文件并存储至第二预定存储位置,如“…\文件夹b”。

通过本实施例,为高效快速地确定可执行文件中的待加密符号提供了重要的前提保障,同时,避免了在应用程序安装包中直接对待加密符号进行加密的过程中发生不可预期的错误时,无法采取逆向还原应用程序安装包中的文件的情况发生,进一步地,提高了加密过程中异常情况的处理能力。

优选地,步骤s110获取应用程序安装包中可执行文件的分区表中各个符号的地址信息的步骤进一步包括步骤s111;步骤s111:从第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。

例如,从第一预定存储位置“…\文件夹a”中读取可执行文件的分区表中各个符号的地址信息,如符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”。

优选地,步骤s120根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,进一步包括步骤s121;步骤s121:根据已获取到各个符号的地址信息,从第二存储位置处确定待加密的符号。

例如,根据已获取到符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”,从第二存储位置“…\文件夹b”处确定地址“x00002740”处的待加密的符号为符号_main。

优选地,步骤s130基于预定的加密算法,对待加密的符号进行加密的步骤之后,还包括步骤s170;步骤s170:将加密后的符号保存于第二预定存储位置中,并转存至第三预定存储位置。

例如,基于预定的加密算法sha1,对待加密符号_main进行加密处理,得到加密后的符号,如“9a41494ace”,随后将加密后的符号“9a41494ace”保存于第二预定存储位置“…\文件夹b”中的地址信息为“x00002740”的位置处,并将加密后的符号“9a41494ace”及其对应的地址信息“x00002740”存储至第三预定存储位置如“…\文件夹c”,以使得后续实现直接根据第三预定存储位置“…\文件夹c”中加密后的符号“9a41494ace”及其对应的地址信息“x00002740”,替换第一预定存储位置“…\文件夹a”中对应的待加密的符号_main。

通过本实施例,为快速地将待加密的待加密符号替换为各自对应的已加密的符号提供了重要的前提保障,大大地提高了应用程序安装包中可执行文件的加密速度。

其中,步骤s140中将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号的步骤进一步包括步骤s141;步骤s141:根据已确定的各个符号的地址信息,将第一预定存储位置中待加密的符号替换为第三预定存储位置中与其各自符号地址信息对应的加密后的符号。

例如,应用程序安装包app1.ipa中的符号包括符号_main和符号_printf,若默认的符号加密方式为对全部符号进行加密,根据已确定的符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”,将第一预定存储位置“…\文件夹a”中待加密的符号_main替换为第三预定存储位置“…\文件夹c”中与符号_main的地址信息“x00002740”对应的加密后的符号“9a41494ace”,并将“…\文件夹a”中待加密的符号_printf替换为“…\文件夹c”中与符号_printf的地址信息“x00276aac”对应的加密后的符号“749436aca110”。

通过本实施例,根据第三预定存储位置中加密后的符号及其对应的地址信息,直接替换第一预定存储位置中对应的待加密的符号,节省了从第二预定存储位置中确定加密后的符号的步骤,从而实现了快速高效地将待加密符号替换为各自对应的已加密的符号,大大地提高了应用程序安装包中可执行文件的加密速度。

优选地,该加密方法还包括步骤s180;步骤s180:对第一预定存储位置中的与应用程序安装包对应的全部文件进行压缩处理,并将压缩后的全部文件进行打包以得到加密后的应用程序安装包。

例如,接上例,对第一预定存储位置“…\文件夹a”中的与应用程序安装包app1.ipa对应的全部文件进行压缩处理,并通过打包工具将压缩后的全部文件进行打包以得到加密后的ios应用程序app1加密后的安装包。

需要说明的是,本领域技术人员可以了解到,将压缩后的全部文件进行打包的方式有多种,本发明中虽会以特定的打包方式为例进行说明,但在此不做限定。

图2为本发明中另一实施例的可执行文件的加密装置的结构示意图。

本发明的实施例中,各模块所执行的内容概述如下:获取模块210获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;确定模块220根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;加密模块230基于预定的加密算法,对待加密的符号进行加密;替换模块240将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。

本发明的实施例中,提出了一种可执行文件的加密装置,获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息,为后续根据各个符号的地址信息将各个符号替换为各自对应加密后的符号提供了必要的前提保障;根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,实现了根据各个符号的地址信息及用户的需求快速高效地确定待加密的符号;基于预定的加密算法,对待加密的符号进行加密,将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件,实现了无需额外的开发成本即可简单便捷地对应用程序安装包中可执行文件中的各个待加密符号进行快速地加密,从而增加了对可执行文件进行反编译和分析的难度,在不影响应用程序运行稳定性及保证用户使用过程无感知的前提下,实现了提高应用程序的信息安全性的目的。以下针对各个模块的具体实现做进一步的说明:

获取模块210获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息。

例如,对ios的应用程序安装包,如,app1.ipa,中的可执行文件进行加密的过程中,首先获取app1.ipa中可执行文件的分区表中各个符号的地址信息,如汇编编译后的汇编内容包括汇编指令“.globl_main”,“.global”指令说明_main是一个外部符号,也就是执行应用程序app1的main()函数,系统要调用它来运行可执行文件,可获取到符号_main函数真正的开始地址如“x00002740”,编译生成的二进制文件将会在这个地方产生一个引用,以使得app1能够正常安装运行。其中,符号用于存储可执行文件的符号信息、目标文件列表、可执行文件中的偏移位置及大小、每个文件对应字段的位置和占用空间等内容信息。

需要说明的是,本领域技术人员可以了解到,可执行文件指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样,其中,ios操作系统的终端设备中主要的可执行文件格式为mach-o即machobject格式,mach是一种操作系统内核,mach内核被next公司的nextstep操作系统使用。在mach上,一种可执行的文件格为mach-o(machobjectfileformat,machobject文件格式),随后,成为了osx的内核基础。所以虽然macosx是unix的“后代”,但所主要支持的可执行文件格式是mach-o。ios是从osx演变而来,所以同样是支持mach-o格式的可执行文件。在ios的可执行文件的内容中,采用分片存储通过代码编译后的内容,每个分片为一个分区,每个分区中存储的每条内容即为符号,而整个可执行文件的所有分区的集合为一个分区表。

确定模块220根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号。

例如,根据已获取到的app1.ipa中的各个符号的地址信息,如符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”,若默认待加密符号为应用程序安装包的可执行文件中的全部的符号,则在应用程序安装包app1.ipa的可执行文件中可确定待加密的符号为_main和_printf。

需要说明的是,在应用程序安装包的可执行文件中确定待加密的符号的方式,还可以通过在配置文件中指定待加密的符号,如指定仅加密符号_main,也可以在加密的过程中,根据用户的选择,确定待加密的符号,本发明的实施例中虽会以特定的确定方式为例说明,但在此不做限定。

加密模块230基于预定的加密算法,对待加密的符号进行加密。

例如,基于预定的加密算法,如sha1(securehashalgorithm,安全哈希算法)加密算法,对待加密符号_main进行加密处理,得到加密后的符号,如“9a41494ace”,对待加密符号_printf进行加密处理,得到加密后的符号,如“749436aca110”。

需要说明的是,本领域技术人员可以了解到,在计算机技术中,加密算法有多种,本发明的实施例虽会以特定的加密算法为例说明,但在此不做限定。

替换模块240将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。

例如,若已确定待加密的符号仅为符号_main,将app1.ipa中待加密的符号_main替换为与符号_main的地址信息“x00002740”对应的加密后的符号“9a41494ace”,以生成加密后的app1.ipa的可执行文件。

优选地,该加密装置还包括解压模块和存储模块;解压模块将应用程序安装包解压得到的解压文件存储至第一预定存储位置,解压文件包括可执行文件;存储模块将第一预定存储位置处存储的可执行文件存储至第二预定存储位置。

例如,将应用程序安装包app1.ipa解压得到的解压文件存储至第一预定存储位置,如“…\文件夹a”,解压文件包括可执行文件;随后提取“…\文件夹a”路径下存储的可执行文件并存储至第二预定存储位置,如“…\文件夹b”。

通过本实施例,为高效快速地确定可执行文件中的待加密符号提供了重要的前提保障,同时,避免了在应用程序安装包中直接对待加密符号进行加密的过程中发生不可预期的错误时,无法采取逆向还原应用程序安装包中的文件的情况发生,进一步地,提高了加密过程中异常情况的处理能力。

优选地,获取模块210包括读取单元;读取单元从第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。

例如,从第一预定存储位置“…\文件夹a”中读取可执行文件的分区表中各个符号的地址信息,如符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”。

优选地,确定模块220包括确定单元;确定单元根据已获取到各个符号的地址信息,从第二存储位置处确定待加密的符号。

例如,根据已获取到符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”,从第二存储位置“…\文件夹b”处确定地址“x00002740”处的待加密的符号为符号_main。

优选地,基于预定的加密算法,对待加密的符号进行加密之后,还包括保存及转存模块;保存及转存模块将加密后的符号保存于第二预定存储位置中,并转存至第三预定存储位置。

例如,基于预定的加密算法sha1,对待加密符号_main进行加密处理,得到加密后的符号,如“9a41494ace”,随后将加密后的符号“9a41494ace”保存于第二预定存储位置“…\文件夹b”中的地址信息为“x00002740”的位置处,并将将加密后的符号“9a41494ace”及其对应的地址信息“x00002740”存储至第三预定存储位置如“…\文件夹c”,以使得后续实现直接根据第三预定存储位置“…\文件夹c”中加密后的符号“9a41494ace”及其对应的地址信息“x00002740”,替换第一预定存储位置“…\文件夹a”中对应的待加密的符号_main。

通过本实施例,为快速地将待加密的待加密符号替换为各自对应的已加密的符号提供了重要的前提保障,大大地提高了应用程序安装包中可执行文件的加密速度。

其中,替换模块240用于根据已确定的各个符号的地址信息,将第一预定存储位置中待加密的符号替换为第三预定存储位置中与其各自符号地址信息对应的加密后的符号。

例如,应用程序安装包app1.ipa中的符号包括符号_main和符号_printf,若默认的符号加密方式为对全部符号进行加密,根据已确定的符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276aac”,将第一预定存储位置“…\文件夹a”中待加密的符号_main替换为第三预定存储位置“…\文件夹c”中与符号_main的地址信息“x00002740”对应的加密后的符号“9a41494ace”,并将“…\文件夹a”中待加密的符号_printf替换为“…\文件夹c”中与符号_printf的地址信息“x00276aac”对应的加密后的符号“749436aca110”。

通过本实施例,根据第三预定存储位置中加密后的符号及其对应的地址信息,直接替换第一预定存储位置中对应的待加密的符号,节省了从第二预定存储位置中确定加密后的符号的步骤,从而实现了快速高效地将待加密符号替换为各自对应的已加密的符号,大大地提高了应用程序安装包中可执行文件的加密速度。

优选地,该加密装置还包括压缩及打包模块;压缩及打包模块对第一预定存储位置中的与应用程序安装包对应的全部文件进行压缩处理,并将压缩后的全部文件进行打包以得到加密后的应用程序安装包。

例如,接上例,对第一预定存储位置“…\文件夹a”中的与应用程序安装包app1.ipa对应的全部文件进行压缩处理,并通过打包工具将压缩后的全部文件进行打包以得到加密后的ios应用程序app1加密后的安装包。

需要说明的是,本领域技术人员可以了解到,将压缩后的全部文件进行打包的方式有多种,本发明中虽会以特定的打包方式为例进行说明,但在此不做限定。

本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1