CN105631251B - 一种apk加固保护方法及系统 - Google Patents

一种apk加固保护方法及系统 Download PDF

Info

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
Application number
CN201510994141.4A
Other languages
English (en)
Other versions
CN105631251A (zh
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510994141.4A priority Critical patent/CN105631251B/zh
Publication of CN105631251A publication Critical patent/CN105631251A/zh
Application granted granted Critical
Publication of CN105631251B publication Critical patent/CN105631251B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File 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加固保护方法及系统
技术领域
本发明涉及移动终端的应用安全领域,具体涉及一种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文件相关的指令代码和相应的计算机无法执行的十六进制字节码。
CN201510994141.4A 2015-12-25 2015-12-25 一种apk加固保护方法及系统 Active CN105631251B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京奇虎科技有限公司 一种安卓应用的加固保护方法、服务器和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
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