CN104317625A - 一种apk文件的动态加载方法 - Google Patents

一种apk文件的动态加载方法 Download PDF

Info

Publication number
CN104317625A
CN104317625A CN201410632420.1A CN201410632420A CN104317625A CN 104317625 A CN104317625 A CN 104317625A CN 201410632420 A CN201410632420 A CN 201410632420A CN 104317625 A CN104317625 A CN 104317625A
Authority
CN
China
Prior art keywords
file
apk
apk file
classes
dex
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
CN201410632420.1A
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201410632420.1A priority Critical patent/CN104317625A/zh
Publication of CN104317625A publication Critical patent/CN104317625A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开一种APK文件的动态加载方法,其包括:解压已作加固处理的第一APK文件,读取第一classes.dex文件;读取该第一classes.dex文件尾部存放的文件长度信息,根据该文件长度信息确定该第一classes.dex文件尾部存放的加密数据的长度,根据加密数据的长度计算出加密数据在该第一classes.dex文件中的起始位置,提取加密数据;对加密数据进行解密,得到对应核心功能部分源代码的第二APK文件;在运行第一APK文件时,通过Android API提供的DexClassLoader类,从第二APK文件中将核心功能部分源代码动态加载至第一APK文件,并从Android系统内部存储之中删除该第二APK文件。本申请可以规避现有Android逆向工具的反编译,增加反编译的难度,从而可以极大程度地提高APK文件的安全性。

Description

一种APK文件的动态加载方法
技术领域
本发明涉及移动终端应用安全领域,特别涉及一种APK文件的动态加载方法。
背景技术
APK(Android PacKage的缩写)即Android安装包。将APK文件(即APK应用程序)直接传到Android模拟器或Android操作系统的终端设备(比如安卓智能手机)中执行即可安装。APK文件其实是zip格式,但后缀名被修改为apk,在windows系统上可以通过解压缩工具(比如winrar软件)直接解压查看。解压APK文件后,一般的可看到的目录结构如下表1所示:
表1
Android应用程序开发的最后阶段是打包签名,生成APK文件供用户下载安装,打包封装成APK文件如图1所示。由此可以看出,如果能够对Dex文件和AndroidManifest.XML进行逆向,即可还原出应用APK文件的源代码,若在源代码的基础上加入恶意代码,重新签名打包,即可生成携带恶意代码的APK文件。
随着Android移动终端平台的日益发展,第三方应用程序大量涌现,对第三方应用的盗版和重打包现象日益严重。由于Android平台软件使用的编程语言是Java,而Java源代码编译后的二进制代码极易被反编译,导致其破解难度远小于其他使用编译性语言编写的程序。鉴于Android下APK文件能够很容易的由dex2jar和JD-GUI、JAD等反编译工具反编译为易于阅读的JAVA代码,从而代码中的明文字符串、库函数调用、核心功能函数等都一目了然,使得非法开发者对第三方应用程序的盗版或者核心功能的逆向工程变得更加容易。
发明内容
本发明提供了一种APK文件的动态加载方法,在对APK文件加固的基础上,使运行APK文件时避免核心功能的源代码暴露在内存中而易受到攻击,最大化保护APK应用程序的安全。
本发明采用如下技术方案实现:一种APK文件的动态加载方法,其包括步骤:
解压已作加固处理的第一APK文件,读取第一classes.dex文件;
读取该第一classes.dex文件尾部存放的文件长度信息,根据该文件长度信息确定该第一classes.dex文件尾部存放的加密数据的长度,根据加密数据的长度计算出加密数据在该第一classes.dex文件中的起始位置,提取加密数据;
对加密数据进行解密,得到对应核心功能部分源代码的第二APK文件;
在运行第一APK文件时,通过Android API提供的DexClassLoader类,从第二APK文件中将核心功能部分源代码动态加载至第一APK文件,并从Android系统内部存储之中删除该第二APK文件。
其中,对加密数据进行解密处理的解密方式为标准解密方式或已知的任意一种文件解密方法。
其中,加固处理第一APK文件的步骤包括:
将需要加固的APK文件的源代码分成作为主体部分的第一源代码及作为核心功能部分的第二源代码;
将第一源代码、第二源代码分别编译成第一APK文件及第二APK文件;
解压第一APK文件,提取第一APK文件中的第一classes.dex文件;
对第二APK文件进行加密处理,统计加密后第二APK文件的文件长度信息;
将加密后的第二APK文件及其文件长度信息添加在第一classes.dex文件的尾部;
重新计算并更新第一classes.dex文件中文件头信息,将更新后的第一classes.dex文件放回第一APK文件中,使用Android SDK中提供的签名工具对第一APK文件进行签名,即得到加固处理后的APK文件。
其中,重新计算的第一classes.dex文件中文件头信息包括效验码checksum字段、SHA-1签名signature字段和第一classes.dex文件的总长度file_size字段。
其中,对第二APK文件进行加密处理的加密方式为标准加密方式或已知的任意一种文件加密方法。
与现有技术相比,本发明具有如下有益效果:
通过本发明的方法,能够对Android下的APK应用程序进行加固处理,使反编译结果中APK文件的核心功能部分或关键部分的源代码得以隐藏,在允许加固处理后的第一APK文件时,从第一classes.dex文件提取出第二APK文件并动态加载至第一APK文件,故本申请可以规避现有Android逆向工具的反编译,增加反编译的难度,从而可以极大程度地提高APK文件的安全性。
附图说明
图1是APK文件的打包封装流程示意图。
图2是本发明对APK文件加固处理的一个优选实施例的流程示意图。
图3是本发明动态加载APK文件的一个优选实施例的流程示意图。
具体实施方式
为了便于理解本申请的技术方案,申请人先对APK文件目录结构中classes.dex文件先做进一步的详细介绍:
classes.dex文件是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。classes.dex文件由文件头、索引区和数据区三大部分组成。其中,classes.dex文件头部分结构定义如下表2所示。
字段名称 说明
checksum 校验码
signature SHA-1签名
file_size Dex文件的总长度
data_size 数据段的大小,必须以4字节对齐
data_off 数据段基地址
表2
在Android源码中,Dalvik虚拟机的实现位于dalvik/目录下,其中dalvik/vm是虚拟机的实现部分,将会编译成libdvm.so;而dalvik/libdex将会编译成libdex.a静态库作为dex工具;dalvik/dexdump是.dex文件的反编译工具;虚拟机的可执行程序位于dalvik/dalvikvm中,将会编译成dalvikvm可执行文件。
在Android平台运行APK文件时,先由Dalvik虚拟机加载解压APK文件并校验完整性,提取Classes.dex文件,然后执行classes.dex文件中的字节码。在执行classes.dex文件时,Dalvik虚拟机首先会检查其文件头部分的checksum字段和siganature字段,确保classes.dex文件没有被损坏或篡改,然后才根据文件头里定义的其他结构的偏移地址和长度信息进行寻址解析与执行。最后dalvik虚拟机会从classes.dex文件中读取指令和数据,进而运行该APK文件的程序逻辑。
结合图2所示,本发明的一个优选实施例包括如下实现步骤:
步骤S11、从需要加固的APK文件的源代码中提取部分或全部的核心功能源代码或关键部分源代码,该核心功能源代码或关键部分源代码记为第二源代码,而APK文件的源代码中剩余部分的源代码记为第一源代码。即,将需要加固的APK文件的源代码分成作为主体部分的第一源代码及作为核心功能部分(或关键部分源代码)的第二源代码。
哪些源代码属于核心功能代码或关键部分源代码、到底需要提取全部还是部分的核心功能源代码或关键部分源代码,可以在加固打包时根据实际需要确定。
步骤S12、将第一源代码、第二源代码分别编译成第一APK文件及第二APK文件。
步骤S13、解压第一APK文件,提取第一APK文件中的第一classes.dex文件。
步骤S14、采用为标准加密方式或已知的任意一种文件加密方法对第二APK文件进行加密处理,统计加密后第二APK文件的文件长度信息。
步骤S15、将加密后的第二APK文件及其文件长度信息添加在第一classes.dex文件的尾部,以便在解密时通过文件长度信息能够确定第二APK文件在第一classes.dex文件中的起始位置。
步骤S16、重新计算并更新第一classes.dex文件中文件头信息,包括效验码checksum、SHA-1签名signature和第一classes.dex文件的总长度file_size字段的值。其中,效验码checksum字段为第一classes.dex文件第12字节以后的内容的循环冗余校验码,存储在第一classes.dex文件的第8到12字节位置,共4个字节;SHA-1签名signature字段为第一classes.dex文件第32字节以后的SHA-1签名值,存储在第12到32字节位置,共20个字节;第一classes.dex文件的总长度file_size字段为第一classes.dex文件的文件长度,存储在第32到36字节位置,共4个字节。分别计算这几个字段变化之后的值,替换第一classes.dex文件中原文件头信息即可。
步骤S17、将第一classes.dex文件放回第一APK文件中,使用Android SDK中提供的签名工具对第一APK文件进行签名,即完成了APK文件的加固处理。
利用上述加固方法进行加固的APK文件,分别使用目前最流行的Android逆向工具dex2jar与apktool进行逆向编译,逆向编译出来的源代码均只有第一源代码,而核心功能部分或关键部分的第二源代码均被隐藏了。由此可见,利用本申请提到的加固方法加固处理后,实现了APK文件的核心功能部分或关键部分的源代码的隐藏,可以规避现有Android逆向工具的反编译,从而可以极大程度地提高APK文件的安全性。
结合图3所示,经过上述加固处理后的第一APK文件安装到Android系统中后,由于该APK应用程序的核心功能部分的源代码仍隐藏在该第一APK文件的第一classes.dex文件之中,因而需要对第一lasses.dex文件进行动态分离、解密和加载处理,具体的实现流程如图3所示:
步骤S21、解压上述加固处理后的第一APK文件,读取第一classes.dex文件。
步骤S22、根据该第一classes.dex文件尾部的文件长度信息,根据该文件长度信息确定该第一classes.dex文件尾部的加密数据的长度,根据加密数据长度计算出加密数据的起始位置,并提取加密数据。
步骤S23、对加密数据进行解密到对应核心功能部分源代码的第二APK文件。
其中,对加密数据进行解密处理的解密方式为标准解密方式或已知的任意一种文件解密方法。
步骤S24、通过Android API提供的DexClassLoader类,从第二APK文件中将核心功能部分源代码加载至第一APK文件,从而实现核心功能部分代码的动态加载。
步骤S25、调用完成后,删除该第二APK文件,从而避免核心功能部分的源代码暴露在Android系统内部存储之中,以免遭受攻击。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、安卓系统的数字电视接收装置、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种APK文件的动态加载方法,其特征在于,包括步骤:
解压已作加固处理的第一APK文件,读取第一classes.dex文件;
读取该第一classes.dex文件尾部存放的文件长度信息,根据该文件长度信息确定该第一classes.dex文件尾部存放的加密数据的长度,根据加密数据的长度计算出加密数据在该第一classes.dex文件中的起始位置,提取加密数据;
对加密数据进行解密,得到对应核心功能部分源代码的第二APK文件;
在运行第一APK文件时,通过Android API提供的DexClassLoader类,从第二APK文件中将核心功能部分源代码动态加载至第一APK文件,并从Android系统内部存储之中删除该第二APK文件。
2.根据权利要求1所述一种APK文件的动态加载方法,其特征在于,对加密数据进行解密处理的解密方式为标准解密方式或已知的任意一种文件解密方法。
3.根据权利要求1所述一种APK文件的动态加载方法,其特征在于,加固处理第一APK文件的步骤包括:
将需要加固的APK文件的源代码分成作为主体部分的第一源代码及作为核心功能部分的第二源代码;
将第一源代码、第二源代码分别编译成第一APK文件及第二APK文件;
解压第一APK文件,提取第一APK文件中的第一classes.dex文件;
对第二APK文件进行加密处理,统计加密后第二APK文件的文件长度信息;
将加密后的第二APK文件及其文件长度信息添加在第一classes.dex文件的尾部;
重新计算并更新第一classes.dex文件中文件头信息,将更新后的第一classes.dex文件放回第一APK文件中,使用Android SDK中提供的签名工具对第一APK文件进行签名,即得到加固处理后的APK文件。
4.根据权利要求3所述一种APK文件的动态加载方法,其特征在于,重新计算的第一classes.dex文件中文件头信息包括效验码checksum字段、SHA-1签名signature字段和第一classes.dex文件的总长度file_size字段。
5.根据权利要求3所述一种APK文件的动态加载方法,其特征在于,对第二APK文件进行加密处理的加密方式为标准加密方式或已知的任意一种文件加密方法。
CN201410632420.1A 2014-11-09 2014-11-09 一种apk文件的动态加载方法 Pending CN104317625A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410632420.1A CN104317625A (zh) 2014-11-09 2014-11-09 一种apk文件的动态加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410632420.1A CN104317625A (zh) 2014-11-09 2014-11-09 一种apk文件的动态加载方法

Publications (1)

Publication Number Publication Date
CN104317625A true CN104317625A (zh) 2015-01-28

Family

ID=52372860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410632420.1A Pending CN104317625A (zh) 2014-11-09 2014-11-09 一种apk文件的动态加载方法

Country Status (1)

Country Link
CN (1) CN104317625A (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866739A (zh) * 2015-06-04 2015-08-26 上海斐讯数据通信技术有限公司 安卓系统中应用程序加密方法及系统
CN105068813A (zh) * 2015-08-19 2015-11-18 北京奇虎科技有限公司 一种提供安卓包apk修改服务的方法和装置
CN105278989A (zh) * 2015-10-12 2016-01-27 邱寅峰 Apk文件的快速加载方法
CN105426708A (zh) * 2016-01-19 2016-03-23 北京鼎源科技有限公司 一种Android系统的应用程序的加固方法
CN105608393A (zh) * 2016-01-19 2016-05-25 北京鼎源科技有限公司 一种基于Android可执行文件重组的加固方法
CN105893860A (zh) * 2016-05-05 2016-08-24 百度在线网络技术(北京)有限公司 关键代码保护方法以及代码生成装置和代码运行装置
CN105975311A (zh) * 2016-05-09 2016-09-28 腾讯科技(深圳)有限公司 一种应用启动方法及装置
CN106650330A (zh) * 2016-12-22 2017-05-10 合肥国信车联网研究院有限公司 一种基于Dex加载器的Android应用软件加固保护方法
CN106681749A (zh) * 2015-11-11 2017-05-17 腾讯科技(深圳)有限公司 基于安卓平台的局部代码补丁更新方法及装置
CN106843919A (zh) * 2016-12-12 2017-06-13 北京奇虎科技有限公司 一种dex文件的存储方法和装置
CN106845167A (zh) * 2016-12-12 2017-06-13 北京奇虎科技有限公司 一种apk的加固方法和装置,及动态加载方法和装置
CN107169324A (zh) * 2017-05-12 2017-09-15 北京理工大学 一种基于动态加解密的Android应用加固方法
CN107180170A (zh) * 2017-05-09 2017-09-19 深圳海云安网络安全技术有限公司 一种Android APP无壳加固方法
CN107292134A (zh) * 2017-05-27 2017-10-24 北京思特奇信息技术股份有限公司 一种防止Android应用被反编译的应用加固方法及系统
CN108459872A (zh) * 2018-03-08 2018-08-28 平安科技(深圳)有限公司 应用多渠道打包方法、装置、计算机设备及存储介质
CN108829405A (zh) * 2018-06-04 2018-11-16 网易(杭州)网络有限公司 渠道包的生成方法及装置、存储介质、电子装置
CN111813460A (zh) * 2020-06-01 2020-10-23 北京百卓网络技术有限公司 一种应用程序配套文件的存取方法、装置、设备及存储介质
CN112765608A (zh) * 2021-01-20 2021-05-07 每日互动股份有限公司 目标apk源代码获取方法、电子设备和介质
CN113076146A (zh) * 2021-03-09 2021-07-06 北京一亩田新农网络科技有限公司 动态apk的加载方法、装置、系统以及介质
CN113835718A (zh) * 2020-06-23 2021-12-24 北京字节跳动网络技术有限公司 安卓应用程序包的生成方法、装置、终端设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103413076A (zh) * 2013-08-27 2013-11-27 北京理工大学 一种Android应用程序分块保护的方法
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN103745141A (zh) * 2013-12-02 2014-04-23 上海斐讯数据通信技术有限公司 智能终端android系统中防止应用程序反编译的方法
CN104111832A (zh) * 2014-07-03 2014-10-22 北京思特奇信息技术股份有限公司 一种安卓应用程序安装包加壳方法及系统及解壳方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103413076A (zh) * 2013-08-27 2013-11-27 北京理工大学 一种Android应用程序分块保护的方法
CN103530156A (zh) * 2013-10-17 2014-01-22 北京奇虎科技有限公司 动态加载和调用程序的方法及装置
CN103745141A (zh) * 2013-12-02 2014-04-23 上海斐讯数据通信技术有限公司 智能终端android系统中防止应用程序反编译的方法
CN104111832A (zh) * 2014-07-03 2014-10-22 北京思特奇信息技术股份有限公司 一种安卓应用程序安装包加壳方法及系统及解壳方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104866739A (zh) * 2015-06-04 2015-08-26 上海斐讯数据通信技术有限公司 安卓系统中应用程序加密方法及系统
CN105068813A (zh) * 2015-08-19 2015-11-18 北京奇虎科技有限公司 一种提供安卓包apk修改服务的方法和装置
CN105278989A (zh) * 2015-10-12 2016-01-27 邱寅峰 Apk文件的快速加载方法
CN105278989B (zh) * 2015-10-12 2018-04-06 北京顶象技术有限公司 Apk文件的快速加载方法
CN106681749A (zh) * 2015-11-11 2017-05-17 腾讯科技(深圳)有限公司 基于安卓平台的局部代码补丁更新方法及装置
CN105426708A (zh) * 2016-01-19 2016-03-23 北京鼎源科技有限公司 一种Android系统的应用程序的加固方法
CN105608393A (zh) * 2016-01-19 2016-05-25 北京鼎源科技有限公司 一种基于Android可执行文件重组的加固方法
CN105426708B (zh) * 2016-01-19 2018-08-21 北京鼎源科技有限公司 一种Android系统的应用程序的加固方法
CN105608393B (zh) * 2016-01-19 2018-09-07 北京鼎源科技有限公司 一种基于Android可执行文件重组的加固方法
CN105893860A (zh) * 2016-05-05 2016-08-24 百度在线网络技术(北京)有限公司 关键代码保护方法以及代码生成装置和代码运行装置
CN105975311A (zh) * 2016-05-09 2016-09-28 腾讯科技(深圳)有限公司 一种应用启动方法及装置
CN105975311B (zh) * 2016-05-09 2021-01-29 腾讯科技(深圳)有限公司 一种应用启动方法及装置
CN106845167A (zh) * 2016-12-12 2017-06-13 北京奇虎科技有限公司 一种apk的加固方法和装置,及动态加载方法和装置
CN106843919A (zh) * 2016-12-12 2017-06-13 北京奇虎科技有限公司 一种dex文件的存储方法和装置
CN106650330A (zh) * 2016-12-22 2017-05-10 合肥国信车联网研究院有限公司 一种基于Dex加载器的Android应用软件加固保护方法
CN107180170A (zh) * 2017-05-09 2017-09-19 深圳海云安网络安全技术有限公司 一种Android APP无壳加固方法
CN107169324A (zh) * 2017-05-12 2017-09-15 北京理工大学 一种基于动态加解密的Android应用加固方法
CN107292134A (zh) * 2017-05-27 2017-10-24 北京思特奇信息技术股份有限公司 一种防止Android应用被反编译的应用加固方法及系统
CN108459872A (zh) * 2018-03-08 2018-08-28 平安科技(深圳)有限公司 应用多渠道打包方法、装置、计算机设备及存储介质
WO2019169721A1 (zh) * 2018-03-08 2019-09-12 平安科技(深圳)有限公司 应用多渠道打包方法、装置、计算机设备及存储介质
CN108829405A (zh) * 2018-06-04 2018-11-16 网易(杭州)网络有限公司 渠道包的生成方法及装置、存储介质、电子装置
CN111813460A (zh) * 2020-06-01 2020-10-23 北京百卓网络技术有限公司 一种应用程序配套文件的存取方法、装置、设备及存储介质
CN113835718A (zh) * 2020-06-23 2021-12-24 北京字节跳动网络技术有限公司 安卓应用程序包的生成方法、装置、终端设备及介质
CN112765608A (zh) * 2021-01-20 2021-05-07 每日互动股份有限公司 目标apk源代码获取方法、电子设备和介质
CN113076146A (zh) * 2021-03-09 2021-07-06 北京一亩田新农网络科技有限公司 动态apk的加载方法、装置、系统以及介质
CN113076146B (zh) * 2021-03-09 2024-06-07 北京一亩田新农网络科技有限公司 动态apk的加载方法、装置、系统以及介质

Similar Documents

Publication Publication Date Title
CN104317625A (zh) 一种apk文件的动态加载方法
CN104318155A (zh) 一种防逆向apk文件的动态加载方法
CN104408337A (zh) 一种apk文件防逆向的加固方法
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US10740443B2 (en) System and method for code obfuscation of application
CN106203006A (zh) 基于dex与so文件动态执行的Android应用加固方法
CN107992723A (zh) 一种基于动态链接库的Java源码保护方法
CN107908392B (zh) 数据采集工具包定制方法、装置、终端和存储介质
US10296728B2 (en) Method and system for providing cloud-based application security service
CN107273723B (zh) 一种基于so文件加壳的Android平台应用软件保护方法
CN104239757A (zh) 应用程序防止逆向的方法及装置、运行方法及终端
CN104866739A (zh) 安卓系统中应用程序加密方法及系统
CN105683990A (zh) 用于保护动态库的方法和装置
CN108399319B (zh) 源代码保护方法、应用服务器及计算机可读存储介质
CN109062582A (zh) 一种应用安装包的加密方法及装置
CN109241707A (zh) 应用程序的混淆方法、装置和服务器
CN106897587A (zh) 加固应用、加载加固应用的方法和装置
CN104462883A (zh) 一种apk文件加固的方法
CN106228041A (zh) 一种针对Android预编译的代码保护方法
US10867017B2 (en) Apparatus and method of providing security and apparatus and method of executing security for common intermediate language
WO2022078366A1 (zh) 应用保护方法、装置、设备及介质
CN107609394A (zh) Android安装包的防篡改方法、存储设备及装置
CN108875321A (zh) 一种指令集的生成方法、装置和电子设备
CN116235174A (zh) 用于执行加密算法的设备和方法
WO2015058639A1 (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150128