CN105930695B - 一种软件开发工具包的保护方法及装置 - Google Patents
一种软件开发工具包的保护方法及装置 Download PDFInfo
- Publication number
- CN105930695B CN105930695B CN201610220729.9A CN201610220729A CN105930695B CN 105930695 B CN105930695 B CN 105930695B CN 201610220729 A CN201610220729 A CN 201610220729A CN 105930695 B CN105930695 B CN 105930695B
- Authority
- CN
- China
- Prior art keywords
- file
- software development
- development kit
- decryption
- protection
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000006835 compression Effects 0.000 claims description 15
- 238000007906 compression Methods 0.000 claims description 15
- 230000003068 static effect Effects 0.000 claims description 13
- 238000012856 packing Methods 0.000 claims description 6
- 230000001681 protective effect Effects 0.000 claims description 6
- 230000006837 decompression Effects 0.000 claims description 5
- 230000008901 benefit Effects 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种软件开发工具包的保护方法及装置,方法包括:将软件开发工具包中的可执行文件编译为可保护文件;对所述可保护文件进行加密保护,得到中间文件;将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包。应用本发明实施例,实现了对软件开发工具包的保护。
Description
技术领域
本发明涉及软件技术领域,特别涉及一种软件开发工具包的保护方法及装置。
背景技术
计算机软件技术中的壳是指一段专门负责保护原始程序不被非法修改或反编译的一段执行于原始程序之前的特殊程序代码,通常情况下,也被称为脱壳程序。当加壳后的文件执行时,这段代码先于原始程序运行,把经过压缩和加密后的代码还原成原始程序代码,然后运行原始程序代码。
目前,安卓平台中针对安卓安装包(AndroidPackage,简称APK)的加壳方法为:对APK中的DEX文件(Android平台上的可执行文件)进行加密、压缩处理,将处理后的DEX文件添加在壳的尾部。当APK运行时,先运行壳,通过壳把壳尾部的DEX文件进行解密和解压缩处理,得到原始DEX文件,进行执行原始DEX文件。
但是,上述加壳方法是基于APK中的DEX文件,对于软件开发工具包(SoftwareDevelopment Kit;简称SDK)没有DEX文件,因此不能采用上述的方法对SDK进行加壳。但在APK的开发过程中,一些具有特定功能的程序总是以SDK的形式提供给开发者,以帮助开发者开发相应的功能,这些SDK中通常涉及敏感功能(例如支付等),因此亟需对SDK进行加壳保护。
发明内容
本发明实施例的目的在于提供一种软件开发工具包的保护方法及装置,以对软件开发工具包进行保护。
为达到上述目的,本发明实施例公开了一种软件开发工具包的保护方法,可以包括:
将软件开发工具包中的可执行文件编译为可保护文件;
对所述可保护文件进行加密保护,得到中间文件;
将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包。
可选的,在所述生成保护后的软件开发工具包之后,还包括:
运行包括有所述保护后的软件开发工具包的安卓软件包;
启动所述保护后的软件开发工具包中的所述解密文件运行,以对所述保护后的软件开发工具包中的所述中间文件进行解密,得到所述可保护文件;
将所述可保护文件反编译,得到所述可执行文件。
可选的,所述将软件开发工具包中的可执行文件编译为可保护文件,包括:
将所述软件开发工具包中的class文件转化为class.dex文件;
将所述class.dex文件编译为smali文件。
可选的,所述解密文件为:
基于静态方法的解密文件。
为达到上述目的,本发明实施例公开了一种软件开发工具包的保护装置,可以包括:编译模块、加密模块和生成模块,其中,
所述编译模块,用于将软件开发工具包中的可执行文件编译为可保护文件;
所述加密模块,用于对所述可保护文件进行加密保护,得到中间文件;
所述生成模块,用于将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包。
可选的,所述装置还包括:第一运行模块、第二运行模块和反编译模块,其中,
所述第一运行模块,用于运行包括有所述保护后的软件开发工具包的安卓软件包;
所述第二运行模块,用于启动所述保护后的软件开发工具包中的所述解密文件运行,以对所述保护后的软件开发工具包中的所述中间文件进行解密,得到所述可保护文件;
所述反编译模块,用于将所述可保护文件反编译,得到所述可执行文件。
可选的,所述编译模块,具体用于:
将所述软件开发工具包中的class文件转化为class.dex文件;
将所述class.dex文件编译为smali文件。
可选的,所述解密文件为:
基于静态方法的解密文件。
由上述的技术方案可见,本发明实施例提供了一种软件开发工具包的保护方法及装置,方法包括:将软件开发工具包中的可执行文件编译为可保护文件;对所述可保护文件进行加密保护,得到中间文件;将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包。
应用本发明实施例所提供的技术方案,实现了对软件开发工具包的保护。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软件开发工具包的保护方法的第一种流程示意图;
图2为本发明实施例提供的软件开发工具包的保护方法的第二种流程示意图;
图3为本发明实施例提供的软件开发工具包的保护装置的第一种结构示意图;
图4为本发明实施例提供的软件开发工具包的保护装置的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术问题,本发明实施例提供了一种软件开发工具包的保护方法及装置。下面首先对本发明实施例所提供的一种软件开发工具包的保护方法进行介绍。
图1为本发明实施例提供的软件开发工具包的保护方法的第一种流程示意图,可以包括:
S101:将SDK中的可执行文件编译为可保护文件;
具体的,在实际应用中,通常情况下,SDK中的可执行文件为class文件,因此将SDK中的可执行文件编译为可保护文件,可以将SDK中的class文件转化为class.dex文件;再将class.dex文件编译为smali文件。此时的smali文件即为可保护文件。
S102:对可保护文件进行加密保护,得到中间文件;
对上述的smali文件进行加密保护,得到中间文件。
需要说明的是,本发明实施例并不对中间文件的具体表现形式以及文件格式进行限定。
S103:将解密文件、中间文件以及软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包。
具体的,此时的解密文件也可以被理解为脱壳程序。
具体的,上述解密文件可以为基于静态static方法的解密文件。因为static方法是在一个Java类被加载到内存中首先执行的方法,其可以先于应用程序的真正的函数地址之前拿到函数的运行控制权。
将解密文件、对上述的smali文件进行加密保护得到中间文件以及SDK对应的资源文件一起压缩打包,生成保护后的SDK。
下面对生成保护后的SDK进行详细介绍。
具体过程如下:将SDK中的第一文件转化为第二文件;将第二文件反编译为第三文件;将预设脱壳程序添加在第三文件中,脱壳程序中包括与预设加密算法对应的解密算法以及与预设压缩算法对应的解压缩算法;将添加有预设脱壳程序的第三文件回编译,生成第四文件;根据预设的函数保护规则,确定第四文件中的待保护函数;利用预设加密算法和预设压缩算法,对待保护函数的代码加密和压缩;隐藏加密和压缩后的待保护函数的代码;将隐藏代码后的第四文件转化为第五文件;根据第五文件和SDK包含的资源文件,生成保护后的SDK。
具体的,在实际应用中,上述的第一文件和第五文件为class文件;第二文件和第四文件为classes.dex文件;第三文件为smali文件。其中,class文件(全称为Java class文件)是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件;classes.dex文件为安卓Android平台上可执行文件;smali文件为classes.dex文件进行反编译后生成的文件;在实际应用中,可以指定某一包中的所有函数,均为待保护函数;比如该包名称为com.XXX,则将com.XXX包中的所有函数确定为待保护的函数。
示例性的,下面以SDK为A为例进行说明。
将A中所有Java class文件转化为classes.dex文件,再将classes.dex文件反编译为smali文件,在smali文件中添加脱壳程序,将添加有脱壳程序的smali文件回编译为classes.dex文件,将com.XXX包中的所有函数确定为待保护的函数;假设确定的待保护函数为x,则利用预设加密算法和预设压缩算法将待保护函数x加密和压缩,再将加密和压缩后的待保护函数x的代码隐藏,具体的,可以通过修改待保护函数的访问标识access_flags和代码关闭标记code_off实现代码隐藏。其中,access_flag没有native属性时,表示函数实现可被访问,访问标志access_flag包含native时表示函数不可访问;代码关闭标记code_off为非0值时表示函数代码可被访问,代码关闭标记code_off为0时表示函数代码不可被访问,因此可以将access_flags添加上native属性和将code_off修改0,使得函数和函数代码均不可被访问,实现代码的隐藏。将隐藏代码后的classes.dex文件转化为Javaclass文件,再利用转化后的Java class文件以及A中原有的资源文件,重新生成A。
具体的,上述的脱壳程序可以为:基于静态static方法的脱壳程序。因为static方法是在一个Java类被加载到内存中首先执行的方法,其可以先于应用程序的真正的函数地址之前拿到函数的运行控制权。
需要说明的是,上述将Java class文件转化为classes.dex文件,将classes.dex文件反编译为smali文件,将smali文件回编译为classes.dex文件,以及将classes.dex文件转化为Java class文件为现有技术,本发明实施例在此不对其进行赘述。
上述的加密算法和压缩算法,可以为现有的算法,也可以为用户自行设计开发的加密算法和压缩算法。
需要说明的是,上述以SDK为A为例进行说明,仅为本发明的一具体实例,并不构成对本发明的限定。
应用本发明图1所示实施例,实现了对软件开发工具包的保护。生成的保护后的软件开发工具包可以对抗黑客的逆向分析,并且不影响该软件开发工具包集成到开发的安卓软件包中,也不会影响软件开发工具包正常的功能。
图2为本发明实施例提供的软件开发工具包的保护方法的第二种流程示意图,本发明图2所示实施例在图1所示实施例的基础上,增加以下三个步骤,
S104:运行包括有保护后的SDK的APK;
具体的,在实际应用中,将SDK集成在APK中为现有技术,本发明实施例在此不对其进行赘述。
在将SDK集成在APK的过程中,可以将SDK包含的解密文件添加在APK的可执行文件(DEX文件)中。将中间文件存储在APK的预设目录中。
通常情况下,预设目录为assets目录。
S105:启动保护后的SDK中的解密文件运行,以对保护后的SDK中的中间文件进行解密,得到可保护文件;
当包括有保护后的SDK的APK运行后,首先执行添加在APK的可执行文件DEX文件中的解密文件,在APK的assets目录中找到中间文件。
利用解密文件对中间文件进行解密,得到可保护文件。
S106:将可保护文件反编译,得到可执行文件。
示例性的,下面以包括软件开发工具包A的安卓软件包B为例进行说明。
在B运行时,首先执行B的可执行文件DEX文件中的解密文件,在B的assets目录下找到中间文件,利用解密文件对中间文件进行解密,得到可保护文件,将可保护文件反编译,得到可执行文件。
具体的,在生成保护后的软件开发包A过程中,如果对函数代码进行了隐藏,以及对函数代码进行了加密和压缩,则在B运行时,首先执行B的可执行文件DEX文件中的解密文件,在B的assets目录下找到隐藏的函数代码,将隐藏的函数代码动态的加载到内存中,利用解密文件中包括的解密算法和解压缩算法,对加载到内存中的函数代码解密和解压缩。此时不会在磁盘上存在解密和解压缩后的函数代码,所有的数据都存储在内存中。再将解密和解压缩后的函数代码对应的函数访问标识access_flags的native属性删除和将代码关闭标记code_off修改为原来正确的值(即修改为修改为0之前的值),不再隐藏函数和函数代码,使得函数和函数代码均可被访问,进而得到可保护文件。再对可保护文件反编译,得到SDK的可执行文件。
需要说明的是,上述以安卓软件包B为例进行说明,仅为本发明的一具体实例,并不构成对本发明的限定。
应用本发明图2所示实施例,实现了从集成有软件开发工具包的安卓软件包中恢复软件开发工具包的可执行文件,使得软件开发工具包能正常的运行。
与上述的方法实施例相对应,本发明实施例还提供一种软件开发工具包的保护装置。
图3为本发明实施例提供的软件开发工具包的保护装置的第一种结构示意图,可以包括:编译模块301、加密模块302和生成模块303,其中,
编译模块301,用于将软件开发工具包中的可执行文件编译为可保护文件;
具体的,在实际应用中,本发明实施例所示的编译模块301,具体可以用于:
将软件开发工具包中的class文件转化为class.dex文件;
将class.dex文件编译为smali文件。
加密模块302,用于对可保护文件进行加密保护,得到中间文件;
生成模块303,用于将解密文件、中间文件以及软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包。
在实际应用中,解密文件可以为:基于静态static方法的解密文件。因为static方法是在一个Java类被加载到内存中首先执行的方法,其可以先于应用程序的真正的函数地址之前拿到函数的运行控制权。
应用本发明图3所示实施例,实现了对软件开发工具包的保护。生成的保护后的软件开发工具包可以对抗黑客的逆向分析,并且不影响该软件开发工具包集成到开发的安卓软件包中,也不会影响软件开发工具包正常的功能。
图4为本发明实施例提供的软件开发工具包的保护装置的第二种结构示意图,本发明图4所示实施例在图3所示实施例的基础上,增加第一运行模块304、第二运行模块305和反编译模块306,其中,
第一运行模块304,用于运行包括有保护后的软件开发工具包的安卓软件包;
第二运行模块305,用于启动保护后的软件开发工具包中的解密文件运行,以对保护后的软件开发工具包中的中间文件进行解密,得到可保护文件;
反编译模块306,用于将可保护文件反编译,得到可执行文件。
应用本发明图4所示实施例,实现了从集成有软件开发工具包的安卓软件包中恢复软件开发工具包的可执行文件,使得软件开发工具包能正常的运行。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (6)
1.一种软件开发工具包的保护方法,其特征在于,包括:
将软件开发工具包中的可执行文件编译为可保护文件;
对所述可保护文件进行加密保护,得到中间文件;
将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包;
所述将软件开发工具包中的可执行文件编译为可保护文件,包括:
将所述软件开发工具包中的class文件转化为class.dex文件;
将所述class.dex文件编译为smali文件;
所述将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包,包括:
将预设脱壳程序添加在smali文件中,脱壳程序中包括与预设加密算法对应的解密算法以及与预设压缩算法对应的解压缩算法;将添加有预设脱壳程序的smali文件回编译,生成classes.dex文件;根据预设的函数保护规则,确定classes.dex文件中的待保护函数;利用预设加密算法和预设压缩算法,对待保护函数的代码加密和压缩;隐藏加密和压缩后的待保护函数的代码;将隐藏代码后的classes.dex文件转化为class文件;根据class文件和SDK包含的资源文件,生成保护后的SDK;所述脱壳程序为解密文件。
2.根据权利要求1所述的方法,其特征在于,在所述生成保护后的软件开发工具包之后,还包括:
运行包括有所述保护后的软件开发工具包的安卓软件包;
启动所述保护后的软件开发工具包中的所述解密文件运行,以对所述保护后的软件开发工具包中的所述中间文件进行解密,得到所述可保护文件;
将所述可保护文件反编译,得到所述可执行文件。
3.根据权利要求1所述的方法,其特征在于,所述解密文件为:
基于静态方法的解密文件。
4.一种软件开发工具包的保护装置,其特征在于,包括:编译模块、加密模块和生成模块,其中,
所述编译模块,用于将软件开发工具包中的可执行文件编译为可保护文件;
所述加密模块,用于对所述可保护文件进行加密保护,得到中间文件;
所述生成模块,用于将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包;
所述编译模块,具体用于:
将所述软件开发工具包中的class文件转化为class.dex文件;
将所述class.dex文件编译为smali文件;
所述将解密文件、所述中间文件以及所述软件开发工具包对应的资源文件一起压缩打包,生成保护后的软件开发工具包,包括:
将预设脱壳程序添加在smali文件中,脱壳程序中包括与预设加密算法对应的解密算法以及与预设压缩算法对应的解压缩算法;将添加有预设脱壳程序的smali文件回编译,生成classes.dex文件;根据预设的函数保护规则,确定classes.dex文件中的待保护函数;利用预设加密算法和预设压缩算法,对待保护函数的代码加密和压缩;隐藏加密和压缩后的待保护函数的代码;将隐藏代码后的classes.dex文件转化为class文件;根据class文件和SDK包含的资源文件,生成保护后的SDK;所述脱壳程序为解密文件。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:第一运行模块、第二运行模块和反编译模块,其中,
所述第一运行模块,用于运行包括有所述保护后的软件开发工具包的安卓软件包;
所述第二运行模块,用于启动所述保护后的软件开发工具包中的所述解密文件运行,以对所述保护后的软件开发工具包中的所述中间文件进行解密,得到所述可保护文件;
所述反编译模块,用于将所述可保护文件反编译,得到所述可执行文件。
6.根据权利要求4所述的装置,其特征在于,所述解密文件为:基于静态方法的解密文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610220729.9A CN105930695B (zh) | 2016-04-11 | 2016-04-11 | 一种软件开发工具包的保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610220729.9A CN105930695B (zh) | 2016-04-11 | 2016-04-11 | 一种软件开发工具包的保护方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105930695A CN105930695A (zh) | 2016-09-07 |
CN105930695B true CN105930695B (zh) | 2019-03-19 |
Family
ID=56840217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610220729.9A Active CN105930695B (zh) | 2016-04-11 | 2016-04-11 | 一种软件开发工具包的保护方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930695B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598584B (zh) * | 2016-12-08 | 2020-02-11 | 广州华多网络科技有限公司 | 一种处理资源文件的方法、装置和系统 |
CN107066842A (zh) * | 2017-03-28 | 2017-08-18 | 福建天晴在线互动科技有限公司 | 一种加固sdk项目的方法及系统 |
CN107885981A (zh) * | 2017-11-09 | 2018-04-06 | 网易(杭州)网络有限公司 | 编译结果处理方法、装置、存储介质、处理器及编译器 |
CN109409037B (zh) * | 2018-09-29 | 2022-04-29 | 创新先进技术有限公司 | 一种数据混淆规则的生成方法、装置及设备 |
CN109543433B (zh) * | 2018-11-27 | 2022-06-24 | 杭州网易智企科技有限公司 | 软件开发工具包加密方法、装置、计算机和存储介质 |
CN109960509A (zh) * | 2019-03-06 | 2019-07-02 | 江苏通付盾信息安全技术有限公司 | 应用加固的方法、装置、计算设备及计算机存储介质 |
CN109871704B (zh) * | 2019-03-19 | 2021-06-01 | 北京智游网安科技有限公司 | 基于Hook的安卓资源文件防护方法、设备和存储介质 |
CN110572689B (zh) * | 2019-09-23 | 2021-09-21 | 广州方硅信息技术有限公司 | 展示资源的方法、装置、设备及直播系统 |
CN112347431A (zh) * | 2020-10-31 | 2021-02-09 | 山东开创云计算有限公司 | Android应用加固保护方法 |
CN115017529B (zh) * | 2022-08-05 | 2022-11-15 | 深圳市星卡软件技术开发有限公司 | 一种汽车诊断软件的加密方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760219A (zh) * | 2011-12-20 | 2012-10-31 | 北京安天电子设备有限公司 | 一种Android平台软件保护系统、方法及设备 |
WO2014099925A1 (en) * | 2012-12-17 | 2014-06-26 | Microsoft Corporation | Rights-managed code |
CN104484585A (zh) * | 2014-11-26 | 2015-04-01 | 北京奇虎科技有限公司 | 一种应用程序安装包的处理方法、装置及移动设备 |
CN104680039A (zh) * | 2013-11-28 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种应用程序安装包的数据保护方法及装置 |
CN104866734A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种dex文件的保护方法及装置 |
-
2016
- 2016-04-11 CN CN201610220729.9A patent/CN105930695B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760219A (zh) * | 2011-12-20 | 2012-10-31 | 北京安天电子设备有限公司 | 一种Android平台软件保护系统、方法及设备 |
WO2014099925A1 (en) * | 2012-12-17 | 2014-06-26 | Microsoft Corporation | Rights-managed code |
CN104680039A (zh) * | 2013-11-28 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种应用程序安装包的数据保护方法及装置 |
CN104866734A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种dex文件的保护方法及装置 |
CN104484585A (zh) * | 2014-11-26 | 2015-04-01 | 北京奇虎科技有限公司 | 一种应用程序安装包的处理方法、装置及移动设备 |
Non-Patent Citations (1)
Title |
---|
Android应用软件安全加固技术研究;秘锡辰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131215;第9-16页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105930695A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105930695B (zh) | 一种软件开发工具包的保护方法及装置 | |
KR101490047B1 (ko) | 자가변환 기반 애플리케이션 코드 난독화 장치 및 그 방법 | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
JP5337411B2 (ja) | 情報秘匿化方法および情報秘匿化装置 | |
CN104408337A (zh) | 一种apk文件防逆向的加固方法 | |
US7970133B2 (en) | System and method for secure and flexible key schedule generation | |
US10867017B2 (en) | Apparatus and method of providing security and apparatus and method of executing security for common intermediate language | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
CN107430650A (zh) | 保护计算机程序以抵御逆向工程 | |
CN103853943A (zh) | 程序保护方法及装置 | |
CN107609394A (zh) | Android安装包的防篡改方法、存储设备及装置 | |
KR20170069337A (ko) | 애플리케이션 보호를 위한 암호화 처리 방법, 이에 의해 생성된 프로그램 및 이를 위한 장치 | |
KR101688814B1 (ko) | 주 기억 장치 내부의 코드 수정을 통한 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법 | |
CN107220528A (zh) | Java程序的保护与运行方法、装置和终端 | |
KR101749209B1 (ko) | 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치 | |
CN109992974B (zh) | 虚拟机字节码文件的保护方法、设备及可读存储介质 | |
Ertaul et al. | JHide-A tool kit for code obfuscation. | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
CN109543433B (zh) | 软件开发工具包加密方法、装置、计算机和存储介质 | |
JP6698775B2 (ja) | 共有オブジェクトのコード保護のための保安提供装置と方法、及び保安実行装置と方法 | |
CN113221077B (zh) | 基于spring容器的class文件加密方法及设备 | |
CN104751026B (zh) | 安卓系统的软件保护方法、软件应用方法及相关装置 | |
CN104866740A (zh) | 一种防静态分析文件的方法及装置 | |
Kumbhar et al. | Hybrid Encryption for Securing SharedPreferences of Android Applications | |
CN112800418B (zh) | 自定义程序集的文件保护方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 215028 Room 3F301, C2 Building, 2.5 Industrial Park, No. 88 Dongchang Road, Suzhou Industrial Park, Jiangsu Province Applicant after: JIANGSU PAYEGIS TECHNOLOGY CO., LTD. Address before: 215028 Fifth Floor, Building 6, Tengfei Innovation Park, 388 Xinping Street, Suzhou Industrial Park, Jiangsu Province Applicant before: JIANGSU PAYEGIS TECHNOLOGY CO., LTD. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |