CN107169370A - 可执行文件的加密方法及加密装置 - Google Patents
可执行文件的加密方法及加密装置 Download PDFInfo
- Publication number
- CN107169370A CN107169370A CN201710266071.XA CN201710266071A CN107169370A CN 107169370 A CN107169370 A CN 107169370A CN 201710266071 A CN201710266071 A CN 201710266071A CN 107169370 A CN107169370 A CN 107169370A
- Authority
- CN
- China
- Prior art keywords
- symbol
- encrypted
- executable file
- application program
- encryption
- 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
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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了可执行文件的加密方法及加密装置,该加密方法包括:获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;基于预定的加密算法,对待加密的符号进行加密;将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。通过本发明,实现了无需额外的开发成本即可简单便捷地对应用程序安装包中可执行文件中的各个待加密符号进行快速地加密,从而增加了对可执行文件进行反编译和分析的难度。
Description
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种可执行文件的加密方法,及一种可执行文件的加密装置。
背景技术
随着软件相关技术的飞速发展,人们的生活和工作对应用程序的依赖度也随之提高,其安全意识也逐渐增强。一方面,应用程序在发布后,容易被反编译而暴露其源代码,导致该应用程序的相关核心技术被窃取,给开发者造成巨大的经济损失,同时,也存在被破解后被植入恶意代码的风险,使得用户的个人隐私的安全性受到威胁;另一方面,应用程序作为一种特殊的产品,由于其数字化的特征,从问世起就一直遭受盗版的困扰,盗版的存在不仅给软件开发者造成了巨大的损失,也极大地阻碍了整个软件行业的发展。通常可执行文件的输入表、入口点函数、资源数据为非法盗取者分析可执行文件的重要数据,因此可执行文件历来是确保应用程序安全性的重点保护对象。现有技术对可执行文件中的数据的保护方式抗分析能力较差,很容易被逆向工程反编译和分析出来,造成数据的泄露及破坏。
因此,亟需一种对可执行文件的保护方式,加大反编译的难度,提高可执行文件的数据安全性,从而加大应用程序的信息安全。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种可执行文件的加密方法,包括:
获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;
根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;
基于预定的加密算法,对待加密的符号进行加密;
将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。
可选地,还包括:
将应用程序安装包解压得到的解压文件存储至第一预定存储位置,解压文件包括可执行文件;
将第一预定存储位置处存储的可执行文件存储至第二预定存储位置;
其中,获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,包括:
从第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。
优选地,根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,包括:
根据已获取到各个符号的地址信息,从第二存储位置处确定待加密的符号。
可选地,基于预定的加密算法,对待加密的符号进行加密的步骤之后,还包括:
将加密后的符号保存于第二预定存储位置中,并转存至第三预定存储位置;
其中,将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,包括:
根据已确定的各个符号的地址信息,将第一预定存储位置中待加密的符号替换为第三预定存储位置中与其各自符号地址信息对应的加密后的符号。
可选地,还包括:
对第一预定存储位置中的与应用程序安装包对应的全部文件进行压缩处理,并将压缩后的全部文件进行打包以得到加密后的应用程序安装包。
本发明的另一实施例提出了一种可执行文件的加密装置,包括:
获取模块,用于获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息;
确定模块,用于根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号;
加密模块,用于基于预定的加密算法,对待加密的符号进行加密;
替换模块,用于将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。
可选地,还包括:
解压模块,用于将应用程序安装包解压得到的解压文件存储至第一预定存储位置,解压文件包括可执行文件;
存储模块,用于将第一预定存储位置处存储的可执行文件存储至第二预定存储位置;
其中,获取模块,包括:
读取单元,用于从第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。
优选地,确定模块,包括:
确定单元,用于根据已获取到各个符号的地址信息,从第二存储位置处确定待加密的符号。
可选地,基于预定的加密算法,对待加密的符号进行加密之后,还包括:
保存及转存模块,用于将加密后的符号保存于第二预定存储位置中,并转存至第三预定存储位置;
其中,替换模块,用于根据已确定的各个符号的地址信息,将第一预定存储位置中待加密的符号替换为第三预定存储位置中与其各自符号地址信息对应的加密后的符号。
可选地,还包括:
压缩及打包模块,用于对第一预定存储位置中的与应用程序安装包对应的全部文件进行压缩处理,并将压缩后的全部文件进行打包以得到加密后的应用程序安装包。
本发明的实施例中,提出了一种可执行文件的加密方案,获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,符号用于存储可执行文件的内容信息,为后续根据各个符号的地址信息将各个符号替换为各自对应加密后的符号提供了必要的前提保障;根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号,实现了根据各个符号的地址信息及用户的需求快速高效地确定待加密的符号;基于预定的加密算法,对待加密的符号进行加密,将应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件,实现了无需额外的开发成本即可简单便捷地对应用程序安装包中可执行文件中的各个待加密符号进行快速地加密,从而增加了对可执行文件进行反编译和分析的难度,在不影响应用程序运行稳定性及保证用户使用过程无感知的前提下,实现了提高应用程序的信息安全性的目的。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图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即Mach Object格式,Mach是一种操作系统内核,Mach内核被NeXT公司的NeXTSTEP操作系统使用。在Mach上,一种可执行的文件格为Mach-O(Mach Object file format,Mach object文件格式),随后,成为了OS X的内核基础。所以虽然Mac OS X是Unix的“后代”,但所主要支持的可执行文件格式是Mach-O。iOS是从OS X演变而来,所以同样是支持Mach-O格式的可执行文件。在iOS的可执行文件的内容中,采用分片存储通过代码编译后的内容,每个分片为一个分区,每个分区中存储的每条内容即为符号,而整个可执行文件的所有分区的集合为一个分区表。
步骤S120:根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号。
例如,根据已获取到的App1.ipa中的各个符号的地址信息,如符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276AAC”,若默认待加密符号为应用程序安装包的可执行文件中的全部的符号,则在应用程序安装包App1.ipa的可执行文件中可确定待加密的符号为_main和_printf。
需要说明的是,在应用程序安装包的可执行文件中确定待加密的符号的方式,还可以通过在配置文件中指定待加密的符号,如指定仅加密符号_main,也可以在加密的过程中,根据用户的选择,确定待加密的符号,本发明的实施例中虽会以特定的确定方式为例说明,但在此不做限定。
步骤S130:基于预定的加密算法,对待加密的符号进行加密。
例如,基于预定的加密算法,如SHA1(Secure Hash Algorithm,安全哈希算法)加密算法,对待加密符号_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即Mach Object格式,Mach是一种操作系统内核,Mach内核被NeXT公司的NeXTSTEP操作系统使用。在Mach上,一种可执行的文件格为Mach-O(Mach Object file format,Mach object文件格式),随后,成为了OS X的内核基础。所以虽然Mac OS X是Unix的“后代”,但所主要支持的可执行文件格式是Mach-O。iOS是从OS X演变而来,所以同样是支持Mach-O格式的可执行文件。在iOS的可执行文件的内容中,采用分片存储通过代码编译后的内容,每个分片为一个分区,每个分区中存储的每条内容即为符号,而整个可执行文件的所有分区的集合为一个分区表。
确定模块220根据已获取到的各个符号的地址信息,在应用程序安装包的可执行文件中确定待加密的符号。
例如,根据已获取到的App1.ipa中的各个符号的地址信息,如符号_main的地址信息“x00002740”和符号_printf的地址信息“x00276AAC”,若默认待加密符号为应用程序安装包的可执行文件中的全部的符号,则在应用程序安装包App1.ipa的可执行文件中可确定待加密的符号为_main和_printf。
需要说明的是,在应用程序安装包的可执行文件中确定待加密的符号的方式,还可以通过在配置文件中指定待加密的符号,如指定仅加密符号_main,也可以在加密的过程中,根据用户的选择,确定待加密的符号,本发明的实施例中虽会以特定的确定方式为例说明,但在此不做限定。
加密模块230基于预定的加密算法,对待加密的符号进行加密。
例如,基于预定的加密算法,如SHA1(Secure Hash Algorithm,安全哈希算法)加密算法,对待加密符号_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-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种可执行文件的加密方法,其特征在于,包括:
获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,所述符号用于存储可执行文件的内容信息;
根据已获取到的所述各个符号的地址信息,在所述应用程序安装包的可执行文件中确定待加密的符号;
基于预定的加密算法,对所述待加密的符号进行加密;
将所述应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。
2.根据权利要求1所述的加密方法,其特征在于,还包括:
将应用程序安装包解压得到的解压文件存储至第一预定存储位置,所述解压文件包括可执行文件;
将所述第一预定存储位置处存储的可执行文件存储至第二预定存储位置;
其中,所述获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,包括:
从所述第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。
3.根据权利要求2所述的加密方法,其特征在于,所述根据已获取到的所述各个符号的地址信息,在所述应用程序安装包的可执行文件中确定待加密的符号,包括:
根据已获取到所述各个符号的地址信息,从所述第二存储位置处确定待加密的符号。
4.根据权利要求3所述的加密方法,其特征在于,所述基于预定的加密算法,对所述待加密的符号进行加密的步骤之后,还包括:
将加密后的符号保存于所述第二预定存储位置中,并转存至第三预定存储位置;
其中,所述将所述应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,包括:
根据已确定的所述各个符号的地址信息,将所述第一预定存储位置中待加密的符号替换为所述第三预定存储位置中与其各自符号地址信息对应的加密后的符号。
5.根据权利要求4所述的加密方法,其特征在于,还包括:
对所述第一预定存储位置中的与所述应用程序安装包对应的全部文件进行压缩处理,并将所述压缩后的全部文件进行打包以得到加密后的所述应用程序安装包。
6.一种可执行文件的加密装置,其特征在于,包括:
获取模块,用于获取应用程序安装包中可执行文件的分区表中各个符号的地址信息,其中,所述符号用于存储可执行文件的内容信息;
确定模块,用于根据已获取到的所述各个符号的地址信息,在所述应用程序安装包的可执行文件中确定待加密的符号;
加密模块,用于基于预定的加密算法,对所述待加密的符号进行加密;
替换模块,用于将所述应用程序安装包中待加密的符号替换为与其各自符号地址信息对应的加密后的符号,以生成加密后的可执行文件。
7.根据权利要求6所述的加密装置,其特征在于,还包括:
解压模块,用于将应用程序安装包解压得到的解压文件存储至第一预定存储位置,所述解压文件包括可执行文件;
存储模块,用于将所述第一预定存储位置处存储的可执行文件存储至第二预定存储位置;
其中,所述获取模块,包括:
读取单元,用于从所述第一预定存储位置中读取可执行文件的分区表中各个符号的地址信息。
8.根据权利要求7所述的加密装置,其特征在于,所述确定模块,包括:
确定单元,用于根据已获取到所述各个符号的地址信息,从所述第二存储位置处确定待加密的符号。
9.根据权利要求8所述的加密装置,其特征在于,所述基于预定的加密算法,对所述待加密的符号进行加密之后,还包括:
保存及转存模块,用于将加密后的符号保存于所述第二预定存储位置中,并转存至第三预定存储位置;
其中,所述替换模块,用于根据已确定的所述各个符号的地址信息,将所述第一预定存储位置中待加密的符号替换为所述第三预定存储位置中与其各自符号地址信息对应的加密后的符号。
10.根据权利要求9所述的加密装置,其特征在于,还包括:
压缩及打包模块,用于对所述第一预定存储位置中的与所述应用程序安装包对应的全部文件进行压缩处理,并将所述压缩后的全部文件进行打包以得到加密后的所述应用程序安装包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710266071.XA CN107169370A (zh) | 2017-04-21 | 2017-04-21 | 可执行文件的加密方法及加密装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710266071.XA CN107169370A (zh) | 2017-04-21 | 2017-04-21 | 可执行文件的加密方法及加密装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107169370A true CN107169370A (zh) | 2017-09-15 |
Family
ID=59813341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710266071.XA Pending CN107169370A (zh) | 2017-04-21 | 2017-04-21 | 可执行文件的加密方法及加密装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107169370A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459872A (zh) * | 2018-03-08 | 2018-08-28 | 平安科技(深圳)有限公司 | 应用多渠道打包方法、装置、计算机设备及存储介质 |
CN109062582A (zh) * | 2018-07-23 | 2018-12-21 | 北京云测信息技术有限公司 | 一种应用安装包的加密方法及装置 |
CN113849245A (zh) * | 2021-09-23 | 2021-12-28 | 武汉深之度科技有限公司 | 一种应用程序运行方法、计算设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106034119A (zh) * | 2015-03-16 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 应用安装包的加密混淆方法及装置 |
CN106326749A (zh) * | 2015-06-24 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 文件修复方法及装置 |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
-
2017
- 2017-04-21 CN CN201710266071.XA patent/CN107169370A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106034119A (zh) * | 2015-03-16 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 应用安装包的加密混淆方法及装置 |
CN106326749A (zh) * | 2015-06-24 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 文件修复方法及装置 |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108459872A (zh) * | 2018-03-08 | 2018-08-28 | 平安科技(深圳)有限公司 | 应用多渠道打包方法、装置、计算机设备及存储介质 |
WO2019169721A1 (zh) * | 2018-03-08 | 2019-09-12 | 平安科技(深圳)有限公司 | 应用多渠道打包方法、装置、计算机设备及存储介质 |
CN109062582A (zh) * | 2018-07-23 | 2018-12-21 | 北京云测信息技术有限公司 | 一种应用安装包的加密方法及装置 |
CN113849245A (zh) * | 2021-09-23 | 2021-12-28 | 武汉深之度科技有限公司 | 一种应用程序运行方法、计算设备及存储介质 |
CN113849245B (zh) * | 2021-09-23 | 2023-09-12 | 武汉深之度科技有限公司 | 一种应用程序运行方法、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160117518A1 (en) | File Encryption/Decryption Device And File Encryption/Decryption Method | |
CN105683990B (zh) | 用于保护动态库的方法和装置 | |
US9501646B2 (en) | Program verification apparatus, program verification method, and computer readable medium | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
CN103617401B (zh) | 一种数据文件保护方法及装置 | |
CN106203006A (zh) | 基于dex与so文件动态执行的Android应用加固方法 | |
EP2854070A1 (en) | Method and apparatus of creating application package, method and apparatus of executing application package, and recording medium storing application package | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
CN111159757A (zh) | 文件加密方法、解密方法及相应装置 | |
CN105550866B (zh) | 一种安全控制方法及装置 | |
CN108830096B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111385084A (zh) | 数字资产的密钥管理方法、装置及计算机可读存储介质 | |
CN107077540B (zh) | 用于提供基于云的应用安全服务的方法和系统 | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN112269970A (zh) | 一种脚本加密方法、装置、服务器及存储介质 | |
CN111191195A (zh) | 一种用于保护apk的方法和装置 | |
CN111859415A (zh) | 神经网络模型加密系统和方法 | |
KR102244290B1 (ko) | 데이터 전송 장치와 데이터 수신 장치 간의 보안 통신을 지원하는 암호화 통신 장치 및 그 동작 방법 | |
US20150186681A1 (en) | Method of encryption and decryption for shared library in open operating system | |
CN107169370A (zh) | 可执行文件的加密方法及加密装置 | |
Park et al. | A methodology for the decryption of encrypted smartphone backup data on android platform: A case study on the latest samsung smartphone backup system | |
CN107257282A (zh) | 一种基于rc4算法的代码全包加密方法 | |
CN109992974B (zh) | 虚拟机字节码文件的保护方法、设备及可读存储介质 | |
KR101749209B1 (ko) | 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치 | |
KR20140139392A (ko) | 모바일 장치를 위한 애플리케이션 실행 파일 생성방법, 모바일 장치의 애플리케이션 실행 방법, 애플리케이션 실행 파일 생성 장치 및 모바일 장치 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200415 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba (China) Co.,Ltd. Address before: 510640 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 15 layer self unit 02 Applicant before: GUANGZHOU UC NETWORK TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170915 |