CN105631251B - 一种apk加固保护方法及系统 - Google Patents
一种apk加固保护方法及系统 Download PDFInfo
- Publication number
- CN105631251B CN105631251B CN201510994141.4A CN201510994141A CN105631251B CN 105631251 B CN105631251 B CN 105631251B CN 201510994141 A CN201510994141 A CN 201510994141A CN 105631251 B CN105631251 B CN 105631251B
- Authority
- CN
- China
- Prior art keywords
- apk
- instruction
- reinforcement protection
- instruction code
- conversion table
- 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 37
- 230000003014 reinforcing effect Effects 0.000 title claims abstract description 23
- 230000004224 protection Effects 0.000 claims abstract description 131
- 230000002787 reinforcement Effects 0.000 claims abstract description 126
- 238000000605 extraction Methods 0.000 claims abstract description 8
- 238000006243 chemical reaction Methods 0.000 claims description 83
- 230000002159 abnormal effect Effects 0.000 claims description 26
- 238000012544 monitoring process Methods 0.000 claims description 11
- 230000007613 environmental effect Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 18
- 238000012856 packing Methods 0.000 abstract description 12
- 238000005728 strengthening Methods 0.000 description 29
- 241000726445 Viroids Species 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000009467 reduction Effects 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
-
- 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)
- 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
本发明实施例提供一种APK加固保护方法,其特征在于,包括:获取待加固APK;反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;利用自定义编码替换所述待加固APK中需要保护的指令代码,所述自定义编码包括计算机无法执行的编码数据,对所述待加固APK进行加固保护。本发明实施例还提供一种APK加固保护系统,实现对APK的加固保护,有效避免了APK被逆向分析、篡改和二次打包。
Description
技术领域
本发明涉及移动终端的应用安全领域,具体涉及一种APK加固保护的方法及系统。
背景技术
Android系统的快速发展以及设备的高速增长,产生了大量的第三方应用程序。由于Android的开源,逆向工具很多,导致盗版、重打包现象严重,这些现状又催生了对应用保护的需求,进而也出现了很多厂商提供apk(“APK”是AndroidPackage的缩写,即Android应用安装包)保护服务。
现有的apk加固厂商有奇虎360、梆梆、APKProtect、爱加密、百度、腾讯、阿里巴巴等,这些厂商采用的方案主要分为3种:第一种是对整个Dex文件进行完整加密;第二种是运行时对Dex文件做字节码变形,防止直接Dump完整的Dex,现有方式不能很好的自定义需要做字节码变形的函数;第三种是将前两种方案混合使用。因为上述三种方案在apk运行的内存中均存在完整的Dex映像,所以可以被完整的还原出来,加上android开源,故被保护的应用仍然容易遭受内存还原攻击。
发明内容
有鉴于此,本发明实施例提供了一种APK加固保护方法及系统,实现了对APK的加固保护,有效避免了APK被逆向分析、篡改和二次打包。
本发明实施例提供一种APK加固保护方法,其特征在于,包括:
获取待加固APK;
反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;
利用计算机无法执行的自定义编码替换所述待加固APK中需要保护的指令代码,对所述待加固APK进行加固保护。
通过本发明实施例方法,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,在加固完成后的APK运行的过程中在APK的内存中不会存在完整的关键代码的映像,实现对APK的加固保护,有效防止了APK被逆向分析、篡改、反编译、二次打包,防止APK被嵌入各类病毒、广告等恶意代码。
在一些实施方式中,所述利用计算机无法执行的自定义编码替换所述待加固APK中需要保护的指令代码,对所述待加固APK进行加固保护包括:
根据包括有计算机无法执行的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护。
通过本发明实施例方法,利用自定义的编码数据和指令代码之间的转换关系完成对APK的加固保护,使得当不法分子不知晓编码数据和指令代码之间的转换关系的情况下,几乎不可能完成对APK关键代码的静态反编译,有效防止了APK被逆向分析、篡改、反编译、二次打包。
在一些实施方式中,在对所述待加固APK进行加固保护之后还包括:
监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;
当所述加固保护后的APK的工作运行的环境存在异常时,对所述加固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
通过本发明实施例方法,当检测到APK在工作运行的环境出现异常时,及时替换更新指令转换表以更新所述APK的加固方案,保障了所述APK的安全可靠性。
在一些实施方式中,在对所述待加固APK进行加固保护时,生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。
通过本发明实施例方法,实现了对有逆向分析、二次打包的风险的APK的原加固方案的取消,进一步地方便将新的加固方案应用在APK中,有效防止了APK被逆向分析和二次打包。
在一些实施方式中,所述监视并判断所述加固保护后的APK的工作运行的环境是否存在异常包括:获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。
通过本发明实施例方法实现了实时监测指令转换表的私密性,保障了指令转换表的安全性,进一步保障了所述APK的加固保护方案的可靠性;当不法分子查询调用所述指令转换表时,APK加固厂商后台能够及时获知所述指令转换表是否可能被不法分子非法访问,有利于APK加固厂商在后台及时作出相应的应对策略,极大降低了APK加固方案被破解所造成的损失。
在一些实施方式中,在所述指令代码转换为编码数据之前还包括:接收自云端服务器分发的指令转换表或向云端服务器请求下载以获得指令转换表。
通过本发明实施例方法云端下发加固保护方案,提高了加固保护APK的效率,方便了APK加固厂商将已迭代更新的加固方案的发布实施;当出现APK工作环境异常时,可以及时通过云端下载新的指令转换表以更新APK的加固方案,保障了APK加方案的安全可靠性。
在一些实施方式中,所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
本发明实施例还提供一种APK加固保护系统,其特征在于,包括:
APK获取单元,用于获取待加固APK;
反编译单元,用于反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;
加固保护单元,用于利用计算机无法执行的自定义编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护。
通过本发明实施例系统,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,在加固完成后的APK运行的过程中在APK的内存中不会存在完整的关键代码的映像,实现对APK的加固保护,有效防止了APK被逆向分析、篡改、反编译、二次打包,防止APK被嵌入各类病毒、广告等恶意代码。
在一些实施方式中,所述加固保护单元用于根据包括有计算机无法执行的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护。
通过本发明实施例系统,利用自定义的编码数据和指令代码之间的转换关系完成对APK的加固保护,使得当不法分子不知晓编码数据和指令代码之间的转换关系的情况下,几乎不可能完成对APK关键代码的静态反编译,有效防止了APK被逆向分析、篡改、反编译、二次打包。
在一些实施方式中,还包括:环境监测单元,用于监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;重新加固单元,用于当所述加固保护后的APK的工作运行的环境存在异常时,对所述加固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
通过本发明实施例系统,当检测到APK在工作运行的环境出现异常时,及时替换更新指令转换表以更新所述APK的加固方案,保障了所述APK的安全可靠性。
在一些实施方式中,还包括:跳转指令生成单元,用于生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;
跳转指令执行单元,用于当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。
通过本发明实施例系统,实现了对有逆向分析、二次打包的风险的APK的原加固方案的取消,进一步地方便将新的加固方案应用在APK中,有效防止了APK被逆向分析和二次打包。
在一些实施方式中,还包括:日志信息获取单元,用于获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;
环境异常确定单元,查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。
通过本发明实施例系统实现了实时监测指令转换表的私密性,保障了指令转换表的安全性,进一步保障了所述APK的加固保护方案的可靠性;当不法分子查询调用所述指令转换表时,APK加固厂商后台能够及时获知所述指令转换表是否可能被不法分子非法访问,有利于APK加固厂商在后台及时作出相应的应对策略,极大降低了APK加固方案被破解所造成的损失。
在一些实施方式中,还包括:指令转换表获取单元,用于接收自云端服务器分发或向云端服务器请求下载而获得的所述指令转换表。
通过本发明实施例系统云端下发加固保护方案,提高了加固保护APK的效率,方便了APK加固厂商将已迭代更新的加固方案的发布实施;当出现APK工作环境异常时,可以及时通过云端下载新的指令转换表以更新APK的加固方案,保障了APK加方案的安全可靠性。
在一些实施方式中,还包括:所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
通过本发明实施例方法及系统,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,通过保障指令转换表的绝密性进而保障了APK的加固方案的可靠性;通过云端更新APK的加固方案,方便了APK加固厂商对APK加固方案的运营发布。
附图说明
图1示出了本发明一实施例的APK加固保护的方法的流程图;
图2示出了图1所示方法实施例的一种优选实施方式的流程图;
图3示出的是本发明一实施例的APK加固保护系统的结构示意图。
具体实施方式
为了便于说明和理解,下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的云端服务器,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
参考图1示出的是本发明一实施例的APK加固保护方法,其特征在于,包括:
S101:获取待加固APK;
关于S101步骤更具体地执行,可以采用web方式进行数据获取,例如一种可选流程为:接收由用户通过指定网址的网页上传的软件安装包和软件安装包的开发信息;匹配保存软件安装包和开发信息,开发信息包括以下任一种或多种:软件安装包的名称、版本、应用功能描述、开发者信息,这些开发信息可以用于验证软件开发包来源的可靠性。
S102:反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;
关于S102步骤更具体地执行,通常开发者在进行app应用开发的过程中,会选择通过java的Annontation来注释要加密的核心方法。Annontation:中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。利用APK中所包含的Annontation提取其中要加密的指令代码。
S103:利用计算机无法执行的自定义编码替换所述待加固APK中需要保护的指令代码,对所述待加固APK进行加固保护。
通过本发明实施例方法,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,在加固完成后的APK运行的过程中在APK的内存中不会存在完整的关键代码的映像,实现对APK的加固保护,有效防止了APK被逆向分析、篡改、反编译、二次打包,防止APK被嵌入各类病毒、广告等恶意代码。
在一些实施方式中,关于图1中的S103步骤的执行,包括:
根据包括有计算机无法执行的自定义的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码转换为编码数据,对所述待加固APK进行加固保护;
更具体地,所述计算机无法执行的编码数据和指令代码之间的转换关系在所述指令转换表中是一一对应的关系,且不同的编码数据对应着不同的指令代码,编码数据和指令代码之间的转换关系是由APK加固厂商自定义选择的。
通过本发明实施例方法,利用自定义的编码数据和指令代码之间的转换关系完成对APK的加固保护,使得当不法分子不知晓编码数据和指令代码之间的转换关系的情况下,几乎不可能完成对APK关键代码的逆向分析。
作为图1所示实施例方法的进一步优化,(参见图2)在S103步骤之后还包括:
S104:监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;
S105:当所述加固保护后的APK的工作运行的环境存在异常时,对所述加固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
通过本发明实施例方法,当检测到APK在工作运行的环境出现异常时,及时替换更新指令转换表以更新所述APK的加固方案,保障了所述APK的安全可靠性。
在一些实施方式中,关于S105步骤的执行,更具体地包括:在对所述待加固APK进行加固保护时,生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。
通过本发明实施例方法,实现了对有逆向分析、二次打包的风险的APK的原加固方案的取消,进一步地方便将新的加固方案应用在APK中,有效防止了APK被逆向分析和二次打包。
在一些实施方式中,关于S104步骤的执行,更具体地包括:
获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;
查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。
更具体地,所述未授权访问的记录包括未经加固厂商授权的拷贝或调试指令转换表的操作记录。
通过本发明实施例方法实现了实时监测指令转换表的私密性,保障了指令转换表的安全性,进一步保障了所述APK的加固保护方案的可靠性;当不法分子查询调用所述指令转换表时,APK加固厂商后台能够及时获知所述指令转换表是否可能被不法分子非法访问,有利于APK加固厂商在后台及时作出相应的应对策略,极大降低了APK加固方案被破解所造成的损失。
在一些实施方式中,在所述指令代码转换为编码数据之前还包括:接收自云端服务器分发或向云端服务器请求下载而获得的所述指令转换表。
通过本发明实施例方法云端下发加固保护方案,提高了加固保护APK的效率,方便了APK加固厂商将已迭代更新的加固方案的发布实施;当出现APK工作环境异常时,可以及时通过云端下载新的指令转换表以更新APK的加固方案,保障了APK加方案的安全可靠性。
在一些实施方式中,还包括:所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
关于本发明方法实施例的执行,更具体地包括:
云端服务器分发包括有计算机无法执行的自定义的十六进制字节码和相对应的指令代码的指令转换表;
反编译待加固APK,取待加固APK的Dex文件中的一部分指令代码作为待替换指令代码转存至VMP的寄存器,根据上述指令转换表将寄存器中的待替换指令代码转换为十六进制字节码,抹除上述寄存器中指令代码;取上述待加固APK的另一部分Dex文件指令代码作为新的待转换指令代码,转存上述新的待转换的指令代码至上述寄存器,根据上述指令转换表将寄存器中的待替换指令代码转换为十六进制字节码,并抹除上述寄存器中指令代码,重复上述操作,直至上述待加固APK的Dex文件中的所有的文件指令代码均转换为十六进制字节码,对待加固APK进行加固保护。
例如:APK中其中一条需要保护的指令代码为“MOV R5,#3”,经过指令转换表的转换之后所获得的对应的字节码为0D 01 03 00 00 00 02 05 00 00 00 04 05 00 00 00,如此实现了将一条CPU可执行的指令代码“MOV R5,#3”(含义就是将数字5存入寄存器R5中)虚拟化成CPU无法执行的字节码。
在对上述待加固APK进行加固保护时,生成跳转地址为VMP入口的跳转指令,并在上述VMP入口保存上述待加固APK的Dex指令代码;定期获取上述加固保护后的APK在工作运行的过程中所生成的日志文件信息,并查询上述日志文件信息中是否存在上述指令转换表的未授权访问的记录,若存在未授权访问的记录,例如:拷贝指令转换表记录或者调试指令转换表的记录,则确定上述加固保护后的APK的工作运行的环境存在异常,执行上述跳转指令,跳转至上述VMP入口,获取上述需要保护的指令代码,利用上述待加固APK的Dex文件指令代码替换上述加固保护后的APK中的上述计算机无法执行的编码,取消对上述已加固保护后的APK的加固保护。
向云端服务器下载相对于上述原指令转换表的新指令转换表,上述新指令装换表包括有指令代码和相对应的计算机无法执行的另一编码数据,同时参照上述操作,重新根据上述新指令转换表将上述已取消加固保护的APK中上述Dex文件指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
通过本发明方法,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,通过保障指令转换表的绝密性进而保障了APK的加固方案的可靠性;此外通过云端更新APK的加固方案,方便了APK加固厂商对APK加固方案的运营发布。
参见图3示出的是本发明实施例的APK加固保护系统结构示意图,其特征在于,包括:
APK获取单元,用于获取待加固APK;
反编译单元,用于反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;
加固保护单元,用于利用计算机无法执行的自定义编码替换所述待加固APK中需要保护的指令代码,对所述待加固APK进行加固保护。
通过本发明实施例系统,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,在加固完成后的APK运行的过程中在APK的内存中不会存在完整的关键代码的映像,实现对APK的加固保护,有效防止了APK被逆向分析、篡改、反编译、二次打包,防止APK被嵌入各类病毒、广告等恶意代码。
在一些实施方式中,所述加固保护单元用于根据包括有计算机无法执行的自定义的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码转换为编码数据,对所述待加固APK进行加固保护。
通过本发明实施例系统,利用自定义的编码数据和指令代码之间的转换关系完成对APK的加固保护,使得当不法分子不知晓编码数据和指令代码之间的转换关系的情况下,几乎不可能完成对APK关键代码的逆向分析。
在一些实施方式中,还包括:环境监测单元,用于监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;重新加固单元,用于当所述加固保护后的APK的工作运行的环境存在异常时,对所述加固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
通过本发明实施例系统,当检测到APK在工作运行的环境出现异常时,及时替换更新指令转换表以更新所述APK的加固方案,保障了所述APK的安全可靠性。
在一些实施方式中,还包括:跳转指令生成单元,用于生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;
跳转指令执行单元,用于当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。
通过本发明实施例系统,实现了对有逆向分析、二次打包的风险的APK的原加固方案的取消,进一步地方便将新的加固方案应用在APK中,有效防止了APK被逆向分析和二次打包。
在一些实施方式中,还包括:日志信息获取单元,用于获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;
环境异常确定单元,查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。
通过本发明实施例系统实现了实时监测指令转换表的私密性,保障了指令转换表的安全性,进一步保障了所述APK的加固保护方案的可靠性;当不法分子查询调用所述指令转换表时,APK加固厂商后台能够及时获知所述指令转换表是否可能被不法分子非法访问,有利于APK加固厂商在后台及时作出相应的应对策略,极大降低了APK加固方案被破解所造成的损失。
在一些实施方式中,还包括:指令转换表获取单元,用于接收自云端服务器分发或向云端服务器请求下载而获得的所述指令转换表。
通过本发明实施例系统云端下发加固保护方案,提高了加固保护APK的效率,方便了APK加固厂商将已迭代更新的加固方案的发布实施;当出现APK工作环境异常时,可以及时通过云端下载新的指令转换表以更新APK的加固方案,保障了APK加方案的安全可靠性。
在一些实施方式中,还包括:所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
在一些实施方式中,所述指令转换表存储于云端服务器中,关于本发明实施例,更具体地包括:
指令转换表中记录有编码数据和编程指令代码之间的对应关系,其中编码数据优选为十六进制编码,编程指令代码包含常用的“mov”、“add”等指令代码,也包括不常用的编程指令代码。在本发明实施例中,通过自定义编制多套十六进制编码和编程指令代码之间的对应关系并相应地生成多个指令转换表,将上述生成的指令转换表上传至云端服务器。当APK加固厂商发现其中一个指令转换表具有被打包党非法破解的威胁时,及时请求云端服务器下发新的指令换表,根据上述新的指令转换表对有被破解威胁的APK重新进行加固保护,保障了APK的安全可靠性。
通过本发明系统,实现了将待加固APK中所需要保护的指令进行指令虚拟化处理,通过保障指令转换关系的绝密性进而保障了APK的加固方案的可靠性;通过云端更新APK的加固方案,方便了APK加固厂商对APK加固方案的运营发布。
以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种APK加固保护方法,其特征在于,包括:
获取待加固APK;
反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;
根据包括有计算机无法执行的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护;
监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;
当所述加固保护后的APK的工作运行的环境存在异常时,对所述加固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
2.根据权利要求1所述的方法,其特征在于,还包括:
在对所述待加固APK进行加固保护时,生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;
当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。
3.根据权利要求1或2所述的方法,其特征在于,所述监视并判断所述加固保护后的APK的工作运行的环境是否存在异常包括:
获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;
查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。
4.根据权利要求1所述的方法,其特征在于,在所述指令代码转换为编码数据之前还包括:接收自云端服务器分发的指令转换表或向云端服务器请求下载以获得指令转换表。
5.根据权利要求1或2所述的方法,其特征在于,所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
6.一种APK加固保护系统,其特征在于,包括:
APK获取单元,用于获取待加固APK;
反编译单元,用于反编译所述待加固APK,提取所述待加固APK中需要保护的指令代码;
加固保护单元,用于根据包括有计算机无法执行的编码数据和相对应的指令代码的指令转换表将所述待加固APK中所述需要保护的指令代码替换为编码数据,对所述待加固APK进行加固保护;
环境监测单元,用于监视并判断所述加固保护后的APK的工作运行的环境是否存在异常;
重新加固单元,用于当所述加固保护后的APK的工作运行的环境存在异常时,对所述加固保护后的APK取消加固保护,重新根据包括有指令代码和相对应的计算机无法执行的另一编码数据的另一指令转换表将所述取消加固保护的APK中所述需要保护的指令代码转换为计算机无法执行的另一编码数据,以进行重新加固保护。
7.根据权利要求6所述的系统,其特征在于,还包括:
跳转指令生成单元,用于生成跳转地址为VMP入口的跳转指令,并在所述VMP入口保存所述需要保护的指令代码;
跳转指令执行单元,用于当所述加固保护后的APK的工作运行的环境存在异常时,执行所述跳转指令,跳转至所述VMP入口,获取所述需要保护的指令代码,利用所述需要保护的指令代码替换所述加固保护后的APK中的所述计算机无法执行的编码,取消所述加固保护后的APK的加固保护。
8.根据权利要求6或7所述的系统,其特征在于,还包括:
日志信息获取单元,用于获取所述加固保护后的APK工作运行的过程中所生成的日志文件信息;
环境异常确定单元,查询所述日志文件信息中是否存在所述指令转换表的未授权访问的记录,若存在未授权访问的记录,则确定所述加固保护后的APK的工作运行的环境存在异常。
9.根据权利要求6所述的系统,其特征在于,还包括指令转换表获取单元,用于接收自云端服务器分发或向云端服务器请求下载而获得的所述指令转换表。
10.根据权利要求6或7所述的系统,其特征在于,所述指令转换表包括与Dex文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510994141.4A CN105631251B (zh) | 2015-12-25 | 2015-12-25 | 一种apk加固保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510994141.4A CN105631251B (zh) | 2015-12-25 | 2015-12-25 | 一种apk加固保护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105631251A CN105631251A (zh) | 2016-06-01 |
CN105631251B true CN105631251B (zh) | 2018-07-24 |
Family
ID=56046179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510994141.4A Active CN105631251B (zh) | 2015-12-25 | 2015-12-25 | 一种apk加固保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105631251B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180170A (zh) * | 2017-05-09 | 2017-09-19 | 深圳海云安网络安全技术有限公司 | 一种Android APP无壳加固方法 |
CN107480479B (zh) * | 2017-08-15 | 2020-08-07 | 北京奇虎科技有限公司 | 应用程序的加固方法及装置、计算设备、计算机存储介质 |
CN107908964B (zh) * | 2017-10-17 | 2021-06-08 | 珠海金山网络游戏科技有限公司 | 一种针对Android平台Unity3D游戏中加壳文件的安全检测方法及装置 |
CN108846264A (zh) * | 2018-06-11 | 2018-11-20 | 北京奇虎科技有限公司 | 代码加固方法、装置、智能终端和计算机可读存储介质 |
CN108985017A (zh) * | 2018-09-26 | 2018-12-11 | 北京京东金融科技控股有限公司 | 应用程序的加固方法和装置 |
CN109711119A (zh) * | 2018-12-29 | 2019-05-03 | 360企业安全技术(珠海)有限公司 | 加密代码的运行方法及装置、存储介质、终端 |
CN112114809B (zh) * | 2020-08-07 | 2022-09-09 | 厦门安胜网络科技有限公司 | 一种程序代码安全防护方法、装置及存储介质 |
CN113419734B (zh) * | 2021-06-17 | 2022-10-04 | 网易(杭州)网络有限公司 | 应用程序加固的方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892876B1 (en) * | 2012-04-20 | 2014-11-18 | Trend Micro Incorporated | Secured application package files for mobile computing devices |
CN104408337A (zh) * | 2014-11-18 | 2015-03-11 | 刘鹏 | 一种apk文件防逆向的加固方法 |
CN104463002A (zh) * | 2014-12-24 | 2015-03-25 | 北京奇虎科技有限公司 | 一种加固apk的方法和装置以及apk加固客户端和服务器 |
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和系统 |
-
2015
- 2015-12-25 CN CN201510994141.4A patent/CN105631251B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892876B1 (en) * | 2012-04-20 | 2014-11-18 | Trend Micro Incorporated | Secured application package files for mobile computing devices |
CN104408337A (zh) * | 2014-11-18 | 2015-03-11 | 刘鹏 | 一种apk文件防逆向的加固方法 |
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和系统 |
CN104463002A (zh) * | 2014-12-24 | 2015-03-25 | 北京奇虎科技有限公司 | 一种加固apk的方法和装置以及apk加固客户端和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN105631251A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105631251B (zh) | 一种apk加固保护方法及系统 | |
US10482262B2 (en) | Static analysis based on abstract program representations | |
CN104462959B (zh) | 一种安卓应用的加固保护方法、服务器和系统 | |
US9881168B2 (en) | Sanitization of virtual machine images | |
Reina et al. | A system call-centric analysis and stimulation technique to automatically reconstruct android malware behaviors | |
CN102760219B (zh) | 一种Android平台软件保护系统、方法及设备 | |
EP2897072B1 (en) | Device for obfuscating code and method for same | |
Kolbitsch et al. | Inspector gadget: Automated extraction of proprietary gadgets from malware binaries | |
US10255443B2 (en) | Method, apparatus, system and non-transitory computer readable medium for code protection | |
CN104463002B (zh) | 一种加固apk的方法和装置以及apk加固客户端和服务器 | |
US8090959B2 (en) | Method and apparatus for protecting .net programs | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
Lu et al. | AutoD: Intelligent blockchain application unpacking based on JNI layer deception call | |
EP2947595A1 (en) | Attack analysis system, coordination device, attack analysis coordination method, and program | |
WO2016094840A2 (en) | System, method & computer readable medium for software protection via composable process-level virtual machines | |
CN109992987B (zh) | 基于Nginx的脚本文件保护方法、装置及终端设备 | |
JP5996777B2 (ja) | コード処理装置およびプログラム | |
Yao et al. | Identifying privilege separation vulnerabilities in IoT firmware with symbolic execution | |
Graa et al. | Detecting control flow in smarphones: Combining static and dynamic analyses | |
US20170093804A1 (en) | Protecting access to resources through use of a secure processor | |
CN104901822B (zh) | 一种应用程序传播过程的跟踪方法和装置 | |
Lim et al. | Structural analysis of packing schemes for extracting hidden codes in mobile malware | |
CN103281297A (zh) | 企业信息安全管理系统与方法 | |
Zhang et al. | SeBROP: blind ROP attacks without returns | |
Liu et al. | Security analysis of vendor customized code in firmware of embedded device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220805 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |