CN113836582A - 软件加密及解密方法、装置、电子设备和存储介质 - Google Patents

软件加密及解密方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN113836582A
CN113836582A CN202111160381.6A CN202111160381A CN113836582A CN 113836582 A CN113836582 A CN 113836582A CN 202111160381 A CN202111160381 A CN 202111160381A CN 113836582 A CN113836582 A CN 113836582A
Authority
CN
China
Prior art keywords
software
file
key
executable file
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
Application number
CN202111160381.6A
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.)
Xian Novastar Electronic Technology Co Ltd
Original Assignee
Xian Novastar Electronic 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 Xian Novastar Electronic Technology Co Ltd filed Critical Xian Novastar Electronic Technology Co Ltd
Priority to CN202111160381.6A priority Critical patent/CN113836582A/zh
Publication of CN113836582A publication Critical patent/CN113836582A/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting 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
    • 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

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

软件加密及解密方法、装置、电子设备和存储介质
技术领域
本公开实施例涉及安卓应用数据保护技术领域,尤其涉及一种软件加密及解密方法、装置、电子设备和存储介质。
背景技术
目前,市面上安卓应用软件的破解方式层出不穷,经常遇到安卓应用被反编译,加塞广告,植入病毒,重新签名后发布的情况,使用者不小心就会中招。各种安全问题,不仅让用户深受其扰,更是让广大开发者焦头烂额。
相关技术中,常通过代码混淆的方式对软件的源代码进行保护,通过对源代码的压缩与名称修改,从而使得源代码不容易读懂。但是反编译源代码文件后,虽然源代码文件不易阅读,但是经过破译者的深入研究,仍然可以读懂真实的源代码,从而进行反编译。
因此,有必要改善上述相关技术方案中存在的一个或者多个问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种软件加密及解密方法、装置、电子设备和存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
第一方面,本发明提供了一种软件加密方法,包括:
获取存储于安卓应用程序包中的预设文件中的密钥;
采用加密算法根据该密钥对安卓应用程序包中的目标可执行文件进行加密,该目标可执行文件包括除主可执行文件以外的所有可执行文件;
将加密后的目标可执行文件与安卓应用程序包中未进行加密的其余文件一起重新打包,生成新的安卓应用程序包。
可选的,预设文件为程序函数库文件,密钥为在安卓软件代码编写过程中写入。
该技术方案的有益效果在于,程序函数库文件具有不易被反编译的特点,因此将密钥存储于程序函数库文件中安全性较高。
可选的,加密算法为对称加密算法。
该技术方案的有益效果在于,对称加密算法的算法公开、计算量小、加密速度快、加密效率高。
可选的,对称加密算法为DES加密算法,其中,密钥为64位密钥。
该技术方案的有益效果在于,DES加密算法的密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
第二方面,本发明提供了一种软件加密装置,包括:
密钥获取模块,用于获取存储于安卓应用程序包中的预设文件中的密钥;
加密模块,用于采用加密算法根据密钥对安卓应用程序包中的目标可执行文件进行加密;
文件打包模块,用于将加密后的目标可执行文件与安卓应用程序包中未进行加密的其余文件一起重新打包,生成新的安卓应用程序包。
第三方面,本发明提供了一种软件解密方法,包括:
启动安卓软件,加载主可执行文件;
从安卓应用程序包中的预设文件中获取密钥;
采用加密算法根据密钥对加密后的目标可执行文件进行解密,该目标可执行文件包括安卓应用程序包中除主可执行文件以外的所有可执行文件;
加载解密后的目标可执行文件,运行安卓软件。
可选的,预设文件为程序函数库文件。
该技术方案的有益效果在于,程序函数库文件具有不易被反编译的特点,因此将密钥存储于程序函数库文件中安全性较高。
可选的,加密算法为对称加密算法。
该技术方案的有益效果在于,对称加密算法的算法公开、计算量小、加密速度快、加密效率高。
可选的,对称加密算法为DES加密算法,其中,密钥为64位密钥。
该技术方案的有益效果在于,DES加密算法的密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
第四方面,本发明提供了一种软件解密装置,包括:
启动模块,用于启动安卓软件,加载主可执行文件;
密钥获取模块,用于从安卓应用程序包中的预设文件中获取密钥;
解密模块,采用加密算法根据密钥对加密后的目标可执行文件进行解密,目标可执行文件包括安卓应用程序包中除主可执行文件以外的所有可执行文件;
运行模块,用于加载解密后的目标可执行文件,运行安卓软件。
第五方面,本发明提供了一种电子设备,包括:
处理器;以及
存储器,用于存储处理器的可执行指令;
其中,处理器配置为经由执行可执行指令来执行上述任一实施例软件加密方法的步骤。
第六方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例软件加密方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开的实施例中,通过设置密钥采用加密算法对安卓软件应用程序包中的非主可执行文件进行加密,对源代码进行了安全性保护,使得他人难以反编译软件的源代码。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开示例性实施例中一种软件加密方法流程图;
图2示出本公开示例性实施例中一种软件加密装置示意图;
图3示出本公开示例性实施例中一种软件解密方法流程图;
图4示出本公开示例性实施例中一种软件解密装置示意图;
图5示出本公开示例性实施例中一种程序产品结构示意图;
图6示出本公开示例性实施例中一种电子设备结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种软件加密方法,参考图1中所示,该方法可以包括下述步骤:
步骤S101,获取存储于安卓应用程序包中的预设文件中的密钥;
步骤S102,采用加密算法根据所述密钥对所述安卓应用程序包中的目标可执行文件进行加密,所述目标可执行文件包括除主可执行文件以外的所有可执行文件;
步骤S103,将加密后的目标可执行文件与所述安卓应用程序包中未进行加密的其余文件一起重新打包,生成新的安卓应用程序包。
上述软件加密方法,通过设置密钥,采用加密算法对安卓软件应用程序包中的非主可执行文件进行加密,对源代码进行了安全性保护,使得他人难以反编译软件的源代码。
可选的,本申请实施例中的软件加密方法可对所有安卓软件的应用程序包进行加密,例如可以对LED播放软件的应用程序包进行加密。在对安卓软件的应用程序包进行加密时,主要是对目标可执行文件进行加密。由于安卓应用程序包中具有多个可执行文件,其中主可执行文件为软件的入口,在软件启动会先加载主可执行文件,然后再加载其他的可执行文件以运行软件;因此为保证安卓软件的正常启动运行,在进行加密时不对主可执行文件进行加密,所以上述目标可执行文件为应用程序包中除去主可执行文件之外的所有可执行文件。可执行文件例如可以为DEX(DEX,Dalvik EXecutable,安卓应用程序包中的可执行文件,亦即源码文件)文件;其中,在进行加密后,所使用的加密算法也会编写在代码中进行保存。
下面,将参考图1对本示例实施方式中的上述方法的各个步骤进行更详细的说明。
在一个实施例中,所述预设文件可以为程序函数库文件,所述密钥为在安卓软件代码编写过程中写入。具体的,因为程序函数库文件具有不易被反编译的特点,因此将密钥存储于程序函数库文件中安全性较高。所述程序函数库文件例如可以是SO文件,SO文件是Linux系统下的程序函数库,即编译好的可以供其他程序使用的代码和数据,SO文件具有不易被反编译的特点,因此将密钥存储于SO文件中安全性较高。
在一个实施例中,所述加密算法可以为对称加密算法。具体的,加密算法可以采用对称加密算法,对称加密算法的算法公开、计算量小、加密速度快、加密效率高。
在一个实施例中,所述对称加密算法可以为DES(Data Encryption Standard,数据加密标准,是一种使用密钥加密的块算法)加密算法,其中,所述密钥为64位密钥。具体的,DES加密算法的密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
进一步的,本发明实施方式中,还提供了一种软件加密装置,参考图2中所示,可以包括:
密钥获取模块101,用于获取存储于安卓应用程序包中的预设文件中的密钥;
加密模块102,用于采用加密算法根据所述密钥对所述安卓应用程序包中的目标可执行文件进行加密;
文件打包模块103,用于将加密后的目标可执行文件与所述安卓应用程序包中未进行加密的其余文件一起重新打包,生成新的安卓应用程序包。
上述软件加密装置,通过设置密钥,采用加密算法对安卓软件应用程序包中的非主可执行文件进行加密,对源代码进行了安全性保护,使得他人难以反编译软件的源代码。
可选的,本申请实施例中的软件加密装置可对所有安卓软件的应用程序包进行加密,例如可以对LED播放软件的应用程序包进行加密。在对安卓软件的应用程序包进行加密时,加密模块102主要是对目标可执行文件进行加密。由于安卓应用程序包中具有多个可执行文件,其中主可执行文件为软件的启动入口,在软件启动时会先加载主可执行文件,然后再加载其他的可执行文件以运行软件;因此为保证安卓软件的正常运行,在进行加密时不对主可执行文件进行加密,所以上述目标可执行文件为应用程序包中出去主可执行文件之外的所有可执行文件,例如,可执行文件可以为DEX文件(DEX,Dalvik EXecutable,安卓应用程序包中的可执行文件,亦即源码文件);其中,在进行加密后,所使用的加密算法也会编写在源代码中进行保存。
在一个实施例中,所述预设文件可以为程序函数库文件,所述密钥为在安卓软件代码编写过程中写入。具体的,因为程序函数库文件具有不易被反编译的特点,因此将密钥存储于程序函数库文件中安全性较高。所述程序函数库文件例如可以是SO文件,SO文件是Linux系统下的程序函数库,即编译好的可以供其他程序使用的代码和数据,SO文件具有不易被反编译的特点,因此将密钥存储于SO文件中安全性较高。
在一个实施例中,所述加密算法可以为对称加密算法。具体的,加密算法可以采用对称加密算法,对称加密算法的算法公开、计算量小、加密速度快、加密效率高。
在一个实施例中,所述对称加密算法为DES加密算法(Data EncryptionStandard,数据加密标准,是一种使用密钥加密的块算法),其中,所述密钥为64位密钥。具体的,DES加密算法的密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
进一步的,本发明实施方式中,还提供了一种软件解密方法,参考图3中所示,可以包括:
步骤S201,启动安卓软件,加载主可执行文件;
步骤S202,从安卓应用程序包中的预设文件中获取密钥;
步骤S203,采用加密算法根据所述密钥对加密后的目标可执行文件进行解密,所述目标可执行文件包括安卓应用程序包中除主可执行文件以外的所有可执行文件;
步骤S204,加载解密后的目标可执行文件,运行所述安卓软件。
上述软件解密方法,通过安卓应用程序包中写入的密钥采用安卓应用程序包记录的加密算法对已经加密过的目标可执行文件进行解密,并对解密后的目标可执行文件进行加载从而成功运行软件,该解密方法可以在顺利运行加密后的应用软件。
可选的,本申请实施例中的软件解密方法,首先加载主可执行文件,因为主可执行文件是软件运行的入口,然后从预设文件中获取密钥,根据安卓应用程序包代码记录的加密算法基于所述密钥对加密后的目标可执行文件进行解密,对解码后的目标可执行文件进行加载从而成功运行安卓软件,目标可执行文件为应用程序包中除去主可执行文件之外的所有可执行文件,可执行文件例如可以为DEX文件(DEX,Dalvik EXecutable,安卓应用程序包中的可执行文件,亦即源码文件);其中,解密时所使用的加密算法为记录在安卓应用程序包源代码中的在进行加密时使用的加密算法。
在一个实施例中,所述预设文件为程序函数库文件。具体的,因为程序函数库文件具有不易被反编译的特点,因此将密钥存储于程序函数库文件中安全性较高。所述程序函数库文件例如可以是SO文件,SO文件是Linux系统下的程序函数库,即编译好的可以供其他程序使用的代码和数据,SO文件具有不易被反编译的特点,因此将密钥存储于SO文件中安全性较高。
在一个实施例中,所述加密算法可以为对称加密算法。具体的,加密算法可以采用对称加密算法,对称加密算法的算法公开、计算量小、加密速度快、加密效率高。
在一个实施例中,所述对称加密算法为DES加密算法,其中,所述密钥为64位密钥。具体的,DES加密算法的密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
进一步的,本发明实施方式中,还提供了一种软件解密装置,参考图4中所示,可以包括:
启动模块201,用于启动安卓软件,加载主可执行文件;
密钥获取模块202,用于从安卓应用程序包中的预设文件中获取密钥;
解密模块203,采用加密算法根据所述密钥对加密后的目标可执行文件进行解密,所述目标可执行文件包括安卓应用程序包中除主可执行文件以外的所有可执行文件;
运行模块204,用于加载解密后的目标可执行文件,运行所述安卓软件。
上述软件解密装置,通过安卓应用程序包中写入的密钥采用安卓应用程序包记录的加密算法对已经加密过的目标可执行文件进行解密,并对解密后的目标可执行文件进行加载从而成功运行软件,该解密方法可以顺利运行加密后的应用软件。
可选的,本申请实施例中的软件解密装置,首先启动模块201启动软件,加载主可执行文件,因为主可执行文件是软件运行的入口,然后密钥获取模块202从预设文件中获取密钥,解密模块203根据安卓应用程序包源代码中记录的加密算法基于所述密钥对加密后的目标可执行文件进行解密,运行模块204对解码后的目标可执行文件进行加载从而成功运行软件,可执行文件例如可以为DEX文件(DEX,Dalvik EXecutable,安卓应用程序包中的可执行文件,亦即源码文件);其中,解密时所使用的加密算法为记录在安卓应用程序包源代码中的在进行加密时使用的加密算法。
在一个实施例中,所述预设文件为程序函数库文件。具体的,因为程序函数库文件具有不易被反编译的特点,因此将密钥存储于程序函数库文件中安全性较高。所述程序函数库文件例如可以是SO文件,SO文件是Linux系统下的程序函数库,即编译好的可以供其他程序使用的代码和数据,SO文件具有不易被反编译的特点,因此将密钥存储于SO文件中安全性较高。
在一个实施例中,所述加密算法可以为对称加密算法。具体的,加密算法可以采用对称加密算法,对称加密算法的算法公开、计算量小、加密速度快、加密效率高。
在一个实施例中,所述对称加密算法为DES加密算法,其中,所述密钥为64位密钥。具体的,DES加密算法的密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被例如处理器执行时可以实现上述任意一个实施例中所述软件加密方法和/或解密方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述软件加密方法和/或解密方法部分中描述的根据本发明各种示例性实施方式的步骤。
参考图5所示,描述了根据本发明的实施方式的用于实现上述软件加密方法和/或解密方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一个实施例中所述软件加密方法和/或解密方法的步骤。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述软件加密方法和/或解密方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1或图3中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述软件加密方法和/或解密方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (12)

1.一种软件加密方法,其特征在于,包括:
获取存储于安卓应用程序包中的预设文件中的密钥;
采用加密算法根据所述密钥对所述安卓应用程序包中的目标可执行文件进行加密,所述目标可执行文件包括除主可执行文件以外的所有可执行文件;
将加密后的目标可执行文件与所述安卓应用程序包中未进行加密的其余文件一起重新打包,生成新的安卓应用程序包。
2.根据权利要求1所述软件加密方法,其特征在于,所述预设文件为程序函数库文件,所述密钥为在安卓软件代码编写过程中写入。
3.根据权利要求1所述软件加密方法,其特征在于,所述加密算法为对称加密算法。
4.根据权利要求3所述软件加密方法,其特征在于,所述对称加密算法为DES加密算法,其中,所述密钥为64位密钥。
5.一种软件加密装置,其特征在于,包括:
密钥获取模块,用于获取存储于安卓应用程序包中的预设文件中的密钥;
加密模块,用于采用加密算法根据所述密钥对所述安卓应用程序包中的目标可执行文件进行加密;
文件打包模块,用于将加密后的目标可执行文件与所述安卓应用程序包中未进行加密的其余文件一起重新打包,生成新的安卓应用程序包。
6.一种软件解密方法,其特征在于,包括:
启动安卓软件,加载主可执行文件;
从安卓应用程序包中的预设文件中获取密钥;
采用加密算法根据所述密钥对加密后的目标可执行文件进行解密,所述目标可执行文件包括安卓应用程序包中除主可执行文件以外的所有可执行文件;
加载解密后的目标可执行文件,运行所述安卓软件。
7.根据权利要求6所述软件解密方法,其特征在于,所述预设文件为程序函数库文件。
8.根据权利要求6所述软件解密方法,其特征在于,所述加密算法为对称加密算法。
9.根据权利要求8所述软件解密方法,其特征在于,所述对称加密算法为DES加密算法,其中,所述密钥为64位密钥。
10.一种软件解密装置,其特征在于,包括:
启动模块,用于启动安卓软件,加载主可执行文件;
密钥获取模块,用于从安卓应用程序包中的预设文件中获取密钥;
解密模块,采用加密算法根据所述密钥对加密后的目标可执行文件进行解密,所述目标可执行文件包括安卓应用程序包中除主可执行文件以外的所有可执行文件;
运行模块,用于加载解密后的目标可执行文件,运行所述安卓软件。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~4任一项所述软件加密方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~4任一项所述软件加密方法的步骤。
CN202111160381.6A 2021-09-30 2021-09-30 软件加密及解密方法、装置、电子设备和存储介质 Pending CN113836582A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111160381.6A CN113836582A (zh) 2021-09-30 2021-09-30 软件加密及解密方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111160381.6A CN113836582A (zh) 2021-09-30 2021-09-30 软件加密及解密方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN113836582A true CN113836582A (zh) 2021-12-24

Family

ID=78967730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111160381.6A Pending CN113836582A (zh) 2021-09-30 2021-09-30 软件加密及解密方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN113836582A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116070250A (zh) * 2023-03-07 2023-05-05 卓望数码技术(深圳)有限公司 一种安卓系统应用程序的密码算法测评方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530535A (zh) * 2013-10-25 2014-01-22 苏州通付盾信息技术有限公司 一种Android平台应用程序保护的加脱壳方法
CN106778103A (zh) * 2016-12-30 2017-05-31 上海掌门科技有限公司 一种安卓应用程序防逆向破解的加固方法、系统及解密方法
CN107103215A (zh) * 2017-04-27 2017-08-29 北京洋浦伟业科技发展有限公司 一种apk安装方法及装置
CN111639311A (zh) * 2020-05-29 2020-09-08 杭州安恒信息技术股份有限公司 防止反编译可执行文件的方法、装置、计算机设备和介质
CN112115430A (zh) * 2020-09-03 2020-12-22 深圳创维-Rgb电子有限公司 一种apk的加固方法、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530535A (zh) * 2013-10-25 2014-01-22 苏州通付盾信息技术有限公司 一种Android平台应用程序保护的加脱壳方法
CN106778103A (zh) * 2016-12-30 2017-05-31 上海掌门科技有限公司 一种安卓应用程序防逆向破解的加固方法、系统及解密方法
CN107103215A (zh) * 2017-04-27 2017-08-29 北京洋浦伟业科技发展有限公司 一种apk安装方法及装置
CN111639311A (zh) * 2020-05-29 2020-09-08 杭州安恒信息技术股份有限公司 防止反编译可执行文件的方法、装置、计算机设备和介质
CN112115430A (zh) * 2020-09-03 2020-12-22 深圳创维-Rgb电子有限公司 一种apk的加固方法、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116070250A (zh) * 2023-03-07 2023-05-05 卓望数码技术(深圳)有限公司 一种安卓系统应用程序的密码算法测评方法及装置

Similar Documents

Publication Publication Date Title
US10853270B2 (en) Cryptographic pointer address encoding
CN108399318B (zh) 可执行文件的生成方法、执行方法及电子设备
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
JP6227772B2 (ja) 動的ライブラリを保護する方法及び装置
CN109992987B (zh) 基于Nginx的脚本文件保护方法、装置及终端设备
CN107077540B (zh) 用于提供基于云的应用安全服务的方法和系统
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
CN113568680B (zh) 应用程序的动态链接库保护方法、装置、设备及介质
CN113761482A (zh) 一种程序代码保护方法和装置
CN111832014A (zh) 基于动态加载的Java SDK代码加解密方法及终端
KR101472346B1 (ko) 암호화된 웹 어플리케이션 제공 방법, 이를 지원하는 단말, 및 이를 위한 기록매체
US9292708B2 (en) Protection of interpreted source code in virtual appliances
CN111814166B (zh) 一种数据加密方法、装置和电子设备
CN113032741B (zh) 类文件加密方法、类文件运行方法、装置、设备及介质
CN113946863A (zh) 数据加密存储方法、系统、设备及存储介质
CN113836582A (zh) 软件加密及解密方法、装置、电子设备和存储介质
KR20140139392A (ko) 모바일 장치를 위한 애플리케이션 실행 파일 생성방법, 모바일 장치의 애플리케이션 실행 방법, 애플리케이션 실행 파일 생성 장치 및 모바일 장치
CN110135131B (zh) 一种应用程序的加密方法、存储介质及终端设备
CN109995774B (zh) 基于部分解密的密钥认证方法、系统、设备及存储介质
CN107544826B (zh) Xposed模块加固的方法、介质、装置和计算设备
KR101552557B1 (ko) 휴대 단말기용 어플리케이션의 디컴파일 방지 서비스를 제공하는 관리서버 및 그 방지방법
KR101556908B1 (ko) 프로그램 보호 장치
CN115828190A (zh) 一种pe文件数据保护方法、装置、设备及介质
KR20210088793A (ko) 안전한 안드로이드 앱 생성 및 안드로이드 플랫폼에서의 앱 설치/실행을 위한 시스템 및 방법
CN117093961A (zh) Apk的加固方法、工具、计算设备和存储介质

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