CN103914637A - 一种安卓平台的可执行程序加密方法 - Google Patents
一种安卓平台的可执行程序加密方法 Download PDFInfo
- Publication number
- CN103914637A CN103914637A CN201310004951.1A CN201310004951A CN103914637A CN 103914637 A CN103914637 A CN 103914637A CN 201310004951 A CN201310004951 A CN 201310004951A CN 103914637 A CN103914637 A CN 103914637A
- Authority
- CN
- China
- Prior art keywords
- file
- virtual machine
- class
- function
- bytecode
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004806 packaging method and process Methods 0.000 abstract 1
- 238000005496 tempering Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008672 reprogramming 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
- 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/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请提供一种安卓操作系统的可执行程序加密方法,包括:步骤1,通过打包工具将APK文件打包成加密的APK文件;步骤2,通过拦截并且替换API的方式,进行运行时的加解密。本发明通过提供一个APK可执行程序的加密方案,能够防止APK被反编译、被篡改和盗版,从而保护应用程序开发商的利益。
Description
技术领域
本发明涉及软件处理技术,更具体地,涉及一种安卓平台的可执行程序加密方法。
背景技术
APK文件是Android安卓平台的应用程序包文件(application packagefile),是一种Android操作系统上的应用程序安装文件格式。一个Android应用程序的代码在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”文件。一个APK文件内包含被编译的代码文件(classes.dex文件)、文件资源(resources)、证书(certificates)和清单文件(manifest file:AndroidManifest.xml)。
由于Android平台采用Java语言开发,导致Apk中的代码易于反编译。在反编译的基础上,很容易实现Apk的篡改。APK篡改是指通过反编译APK文件,进行汇编级的代码分析、修改或插入代码,重新签名打包为新的APK文件,以达到改变程序原有行为的目的。
Apk篡改的主要流程包括:反编译;分析反编译后的代码;加入、修改或者删除代码;重新打包签名;发布篡改后的Apk。
目前,APK篡改在Android业界使用非常频繁,主要被应用于以下用途,包括:汉化,利用APK篡改技术,修改国外软件的资源文件达到汉化的目的;加入广告代码,利用APK篡改技术,加入广告代码;加入SP的扣费代码,利用APK篡改技术来加入SP的扣费代码;应用程序钓鱼,通过加入恶意的代码来窃取用户的隐私信息,从而达到应用程序钓鱼的目的;修改License代码,通过修改License代码以实现对软件的破解。可以看出,上述多个用途都严重损害了应用程序开发商的利益。
发明内容
为克服现有技术的上述缺陷,针对APK篡改这种情况,提出一种针对Android平台上可执行程序加密的方法,对APK中的dex文件进行加密,达到防止APK反编译的目的。
根据本发明的一个方面,提出了一种安卓操作系统的可执行程序加密方法,包括:
步骤1,通过打包工具将APK文件打包成加密的APK文件;
步骤2,通过拦截并且替换API的方式,进行运行时的加解密。
本发明通过提供一个APK可执行程序的加密方案,能够防止APK被反编译、被篡改和盗版,从而保护应用程序开发商的利益。
附图说明
图1为Java虚拟机执行流程;
图2Dalvik VM执行APK的流程;
图3是根据本发明的可执行程序加密方法的流程图。
如图所示,为了能明确实现本发明的实施例的流程,在图中描述了特定的设备和运行顺序,但这仅为示意需要,并非意图将本发明限定在该特定设备、顺序、器件和环境中,根据具体需要,本领域的普通技术人员可以将这些器件和环境进行调整或者修改,所进行的调整或者修改仍然包括在后附的权利要求的范围中。
具体实施方式
下面结合附图和具体实施例对本发明提供的一种安卓平台的可执行程序加密方法进行详细描述。
以下的描述中,将描述本发明的多个不同的方面,然而,对于本领域内的普通技术人员而言,可以仅仅利用本发明的一些或者全部结构或者流程来实施本发明。为了解释的明确性而言,阐述了特定的数目、配置和顺序,但是很明显,在没有这些特定细节的情况下也可以实施本发明。在其他情况下,为了不混淆本发明,对于一些众所周知的特征将不再进行详细阐述。
Android平台使用Dalvik虚拟机来执行APK程序,但与通常的Java虚拟机执行Java程序时有一定的区别。Dalvik虚拟机(Dalvik Virtual Machine),是Google公司设计的用于Android平台的Java虚拟机,它可以支持已转换为dex(即Dalvik Executable)格式的Java应用程序的运行。
其中,dex格式是专为Dalvik虚拟机设计的一种压缩格式。Android平台自身提供了一个虚拟机(Dalvik),这种虚拟机执行的并非java字节码,而是dex格式的字节码,在Dalvik虚拟机中将java文件编译成Class类文件后,再次通过Android平台工具将此Class类文件转换成dex字节码。APK文件中的classes.dex就是dex格式的文件,是Dalvik虚拟机上运行的主要代码部分。
通常的Java虚拟机执行class文件的基本流程如图1所示,Java虚拟机执行class文件时,将Class文件从磁盘或者网络中读入,然后在内部执行解析类,解析类阶段主要是验证Class文件中的字节码是否合法,如果合法,将Class文件中的结构转化为虚拟机内部的结构。然后再开始执行执行Class中的字节码。
其中,Java虚拟机支持动态载入类,其流程包括:利用ClassLoader动态读取class文件,调用虚拟机解析类,虚拟机调用执行引擎执行class文件中的字节码。
Android的Dalvik虚拟机对APK的执行流程与通常的虚拟机有所不同,图2示出Dalvik虚拟机执行APK的流程。其中,Dalvik VM(虚拟机)在执行APK时,首先要将APK中的dex文件通过dexopt的程序转换为odex格式的文件,然后该文件再交给Dalvik虚拟机执行。Dalvik虚拟机读入odex文件后,也需要经过解析类的阶段再开始执行字节码。
其中,Dexopt是手机上的可执行程序,用于将jar、zip或者apk格式的文件中所存在的dex格式文件(该文件必须名为classes.dex文件)转化为odex格式。Dexopt通常在以下两个时间点调用:1、在Android安装一个新的apk时,系统会自动调用dexopt程序(位于手机上/system/bin/dexopt),将apk中的classes.dex转化成odex格式的文件,并将odex格式的文件存放在/data/dalvik-cache目录中;当该APK运行时,实际运行的代码文件是在/data/dalvik-cache中的odex文件。2、使用Android提供的类装载器(DexClassLoader或者PathClassLoader)时,dexopt也会被自动调用。DexClassLoader原型如下为DexClassLoader(String dexPath,StringdexOutputDir,String libPath,ClassLoader parent),其中,dexPath是输入的j ar,apk或者zip;dexOutputDir是odex文件存放的路径。DexClassLoader是Android平台上提供的一个类加载器,用于动态加载jar,zip或者apk格式的文件,构造函数如下:DexClassLoader(String dexPath,String dexOutputDir,String libPath,ClassLoader parent)。
其中,ODEX文件是指优化的dex文件,是安卓上的应用程序apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程(dexopt)优化生成一个.dex文件单独存放,原APK中的classes.dex文件会保留。这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。
ClassLoader类加载器,Java程序(class文件)并不是本地的可执行程序,当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫做Class Loader。
同样地,Dalvik虚拟机也支持类的动态载入,在执行类的动态载入时也需要将类通过dexopt程序转化为odex的格式,然后该odex格式的文件再交给Dalvik虚拟机执行。
实施例
传统的Java虚拟机可以通过ClassLoader的defineClass定义类的方法来实现类的加密,defineClass可以将内存中的一段数据转换为虚拟机的类,但Android虚拟机不提供该方法。另外,由于Android虚拟机引入了一个叫dexopt的阶段,dex文件必须通过该程序转换为odex文件,odex是运行时或者安装apk时产生的,并且存放在磁盘上。由于Android虚拟机本身的限制,导致正常的方法无法实现类的加密。
如图3所示,本发明采用替换API的方式,实现APK的加密。由于AndroidDalvik虚拟机和APK运行在同一个进程空间中,因此可以替换掉Dalvik VM的关键API,从而实现APK的运行时解密。
替换API是指替换掉系统的函数,例如替换掉本进程的I/O系统调用以及davik vm,如open,close,read等函数,实际上是劫持了系统的函数。通过安装启动代码,即安装这些替换API,执行dexopt等,安装完劫持函数后,程序在后续执行的过程中,当调用到这些API时,实际上执行替换后的函数
根据本发明的方法包括:步骤1,通过打包工具将APK文件打包成加密的APK文件;步骤2,通过拦截并且替换API的方式,进行运行时的加解密。
其中,Android一个APK主要有classes.dex、AndroidManifest.xml以及res、asset、lib几个目录组成。步骤1包括:步骤11,将Classes.dex加密后放在asset/classes.jar中;步骤12,将原来的classes.dex替换为新的启动代码;步骤13,修改AndroidManifest.xml文件,保证新的启动代码会最先执行;步骤14,加入C的运行时库,用于动态修改当前Dalvik虚拟机的代码、dexopt的代码和加解密的代码。
其中,步骤2包括:步骤21,执行新的启动代码;步骤22,拦截标准IO函数;步骤23,拦截Dalvik VM中解析Class的函数;步骤24,执行DexOpt文件,并且安装拦截IO函数;步骤25,调用DexClassLoader,装载加密后的类。
其中,步骤23还包括:步骤231,拦截Dalvik VM中执行Class的函数。
其中,步骤22,拦截标准输入输出API。具体地,通过拦截标准的系统调用的诸如open、read、write、mmap、msync等底层的IO函数,在Dalvik VM和dexopt程序中读取和写入dex文件和odex文件时,实现相应的加解密。在这种方案中,整个odex在磁盘上是加密的,但在内存中是解密的。
其中,步骤23,拦截Dalvik VM中解析Class的函数。具体地,由于dex文件在处理dexopt时,可以设置一定的标志,使得dexopt不处理dex文件中每个类的字节码。所以,可以通过拦截Dalvik VM中解析类的函数,在每个类解析时,再解密该类的字节码。
在这种方案中,整个odex在磁盘上是加密的,在内存中每个类也是部分加密的,每个类的字节码还是加密的。只有在这个类第一次被解析时,才会对该类的方法进行解密。
具体地,步骤231,拦截Dalvik VM中执行Class的函数。具体地,在步骤23的基础上,对字节码的操作符进行映射,将原有的字节码映射为新的一套字节码。运行时,拦截Dalvik VM中执行字节码的函数,使得Dalvik VM认识新的字节码,从而让Dalvik VM能够执行这套字节码。
在这种方案中,整个odex在磁盘上是加密的,在内存中每个类也是部分加密的,每个类的字节码还是加密的。同时,解密后的字节码只能在修改的Dalvik VM执行引擎中才能执行。如果将这些字节码放到正常的虚拟机中,则无法执行。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
Claims (8)
1.一种安卓操作系统的可执行程序加密方法,包括:
步骤1,通过打包工具将APK文件打包成加密的APK文件;
步骤2,通过拦截并且替换API的方式,进行运行时的加解密。
2.根据权利要求1所述的方法,其中,步骤1包括:
步骤11,将APK文件中的dex文件加密后放在asset目录的classes.jar中;
步骤12,将原来的dex文件替换为新的启动代码;
步骤13,修改AndroidManifest.xml文件,以使新的启动代码会最先执行;
步骤14,加入C运行时库,用于动态修改当前Dalvik虚拟机的代码、dexopt的代码和加解密的代码。
3.根据权利要求2所述的方法,其中,安卓操作系统文件的APK文件包括classes.dex、AndroidManifest.xml以及res、asset、lib目录文件。
4.根据权利要求2所述的方法,其中,步骤2包括:
步骤21,执行新的启动代码;
步骤22,拦截标准IO函数;
步骤23,拦截Dalvik虚拟机中解析Class的函数;
步骤24,执行DexOpt文件,并且安装拦截IO函数;
步骤25,调用DexClassLoader,装载加密后的类。
5.根据权利要求4所述的方法,其中,步骤23还包括:
步骤231,拦截Dalvik VM中执行Class的函数。
6.根据权利要求4所述的方法,其中,步骤22的拦截标准输入输出API步骤包括:通过拦截标准系统调用的诸如open、read、write、mmap、msync的底层IO函数,在Dalvik虚拟机和dexopt程序中读取和写入dex文件和odex文件时,实现相应的加解密。
7.根据权利要求4所述的方法,其中,步骤23的拦截Dalvik虚拟机中解析Class的函数步骤包括:通过拦截Dalvik虚拟机中解析类的函数,在每个类解析时,解密该类的字节码。
8.根据权利要求5所述的方法,其中,步骤231的拦截Dalvik虚拟机中执行Class的函数步骤包括:
对字节码的操作符进行映射,将原有的字节码映射为新的一套字节码;
运行时,拦截Dalvik虚拟机中执行字节码的函数,使得Dalvik虚拟机认识新的字节码,以使Dalvik虚拟机能够执行这套字节码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310004951.1A CN103914637B (zh) | 2013-01-07 | 2013-01-07 | 一种安卓平台的可执行程序加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310004951.1A CN103914637B (zh) | 2013-01-07 | 2013-01-07 | 一种安卓平台的可执行程序加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914637A true CN103914637A (zh) | 2014-07-09 |
CN103914637B CN103914637B (zh) | 2017-06-09 |
Family
ID=51040314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310004951.1A Active CN103914637B (zh) | 2013-01-07 | 2013-01-07 | 一种安卓平台的可执行程序加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914637B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239757A (zh) * | 2014-09-30 | 2014-12-24 | 北京奇虎科技有限公司 | 应用程序防止逆向的方法及装置、运行方法及终端 |
CN104281478A (zh) * | 2014-10-28 | 2015-01-14 | 小米科技有限责任公司 | 更新应用程序的方法及装置 |
CN104504327A (zh) * | 2014-12-31 | 2015-04-08 | 株洲南车时代电气股份有限公司 | 一种软件的配属方法及装置 |
CN105589701A (zh) * | 2014-10-21 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 一种客户端应用程序局部更新方法及装置 |
CN105893793A (zh) * | 2016-04-05 | 2016-08-24 | 上海携程商务有限公司 | app应用的防逆向破解的加密方法及加密系统 |
CN106055936A (zh) * | 2016-05-18 | 2016-10-26 | 深圳大学 | 可执行程序数据包加密/解密方法及装置 |
CN106295371A (zh) * | 2016-08-22 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用运行方法、文件加固方法和装置 |
CN106326733A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | 管理移动终端中应用的方法和装置 |
CN106559484A (zh) * | 2016-11-14 | 2017-04-05 | 北京海誉动想科技股份有限公司 | 实例系统免安装运行应用的方法 |
CN106709328A (zh) * | 2015-11-12 | 2017-05-24 | 财团法人资讯工业策进会 | 移动装置及一种适用于移动装置的监控方法 |
CN106843919A (zh) * | 2016-12-12 | 2017-06-13 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN107168742A (zh) * | 2017-05-19 | 2017-09-15 | 中南大学 | 基于定制安卓平台的应用快速部署方法 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN112966301A (zh) * | 2021-03-05 | 2021-06-15 | 深圳市联软科技股份有限公司 | 免人工改造的业务应用文件管理系统、读写及打开方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874149B1 (en) * | 2000-06-28 | 2005-03-29 | Microsoft Corporation | Hooking of replacement and augmented API functions |
CN102087605B (zh) * | 2011-01-28 | 2014-05-07 | 宇龙计算机通信科技(深圳)有限公司 | 一种基于android平台应用安装控制方法及系统 |
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android系统的软件保护方法及系统 |
CN102855138B (zh) * | 2012-07-20 | 2015-12-09 | 腾讯科技(深圳)有限公司 | 一种api的拦截方法、装置及移动终端 |
-
2013
- 2013-01-07 CN CN201310004951.1A patent/CN103914637B/zh active Active
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239757A (zh) * | 2014-09-30 | 2014-12-24 | 北京奇虎科技有限公司 | 应用程序防止逆向的方法及装置、运行方法及终端 |
CN104239757B (zh) * | 2014-09-30 | 2017-04-19 | 北京奇虎科技有限公司 | 应用程序防止逆向的方法及装置、运行方法及终端 |
CN105589701A (zh) * | 2014-10-21 | 2016-05-18 | 阿里巴巴集团控股有限公司 | 一种客户端应用程序局部更新方法及装置 |
CN105589701B (zh) * | 2014-10-21 | 2019-03-08 | 阿里巴巴集团控股有限公司 | 一种客户端应用程序局部更新方法及装置 |
CN104281478A (zh) * | 2014-10-28 | 2015-01-14 | 小米科技有限责任公司 | 更新应用程序的方法及装置 |
CN104504327B (zh) * | 2014-12-31 | 2018-04-24 | 株洲南车时代电气股份有限公司 | 一种软件的配属方法及装置 |
CN104504327A (zh) * | 2014-12-31 | 2015-04-08 | 株洲南车时代电气股份有限公司 | 一种软件的配属方法及装置 |
CN106326733A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | 管理移动终端中应用的方法和装置 |
CN106709328B (zh) * | 2015-11-12 | 2019-07-26 | 财团法人资讯工业策进会 | 移动装置及一种适用于移动装置的监控方法 |
CN106709328A (zh) * | 2015-11-12 | 2017-05-24 | 财团法人资讯工业策进会 | 移动装置及一种适用于移动装置的监控方法 |
CN105893793A (zh) * | 2016-04-05 | 2016-08-24 | 上海携程商务有限公司 | app应用的防逆向破解的加密方法及加密系统 |
CN106055936A (zh) * | 2016-05-18 | 2016-10-26 | 深圳大学 | 可执行程序数据包加密/解密方法及装置 |
CN106055936B (zh) * | 2016-05-18 | 2018-12-04 | 深圳大学 | 可执行程序数据包加密/解密方法及装置 |
CN106295371A (zh) * | 2016-08-22 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用运行方法、文件加固方法和装置 |
CN106295371B (zh) * | 2016-08-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 应用运行方法、文件加固方法和装置 |
CN106559484A (zh) * | 2016-11-14 | 2017-04-05 | 北京海誉动想科技股份有限公司 | 实例系统免安装运行应用的方法 |
CN106843919A (zh) * | 2016-12-12 | 2017-06-13 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN106843919B (zh) * | 2016-12-12 | 2021-02-23 | 北京奇虎科技有限公司 | 一种dex文件的存储方法和装置 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN107168742A (zh) * | 2017-05-19 | 2017-09-15 | 中南大学 | 基于定制安卓平台的应用快速部署方法 |
CN107168742B (zh) * | 2017-05-19 | 2018-01-19 | 中南大学 | 基于定制安卓平台的应用快速部署方法 |
CN112966301A (zh) * | 2021-03-05 | 2021-06-15 | 深圳市联软科技股份有限公司 | 免人工改造的业务应用文件管理系统、读写及打开方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103914637B (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914637A (zh) | 一种安卓平台的可执行程序加密方法 | |
CN103413075B (zh) | 一种通过虚拟机保护java可执行程序的方法及设备 | |
CN103413073B (zh) | 一种保护java可执行程序的方法及设备 | |
KR101518420B1 (ko) | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 | |
CN102043932B (zh) | 一种防止Java程序被反编译的方法 | |
EP3296906A1 (en) | Method for protecting dex file from being decompiled in android system | |
CN102760219B (zh) | 一种Android平台软件保护系统、方法及设备 | |
CN107908392B (zh) | 数据采集工具包定制方法、装置、终端和存储介质 | |
Zhao et al. | “TrustDroid™”: Preventing the use of SmartPhones for information leaking in corporate networks through the used of static analysis taint tracking | |
US20070089090A1 (en) | Method and system for protecting source code | |
CN105303072B (zh) | 基于art模式的软件加固方法及装置 | |
US20170024230A1 (en) | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine | |
KR101623096B1 (ko) | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 | |
CN105612527A (zh) | 为基于通用中间语言的程序提供安全性的方法 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
CN109598107B (zh) | 一种基于应用安装包文件的代码转换方法及装置 | |
CN103413076A (zh) | 一种Android应用程序分块保护的方法 | |
KR101861341B1 (ko) | 애플리케이션 코드의 역난독화 장치 및 이를 이용한 애플리케이션 코드의 역난독화 방법 | |
CN111832014B (zh) | 基于动态加载的Java SDK代码加解密方法及终端 | |
CN104866734A (zh) | 一种dex文件的保护方法及装置 | |
CN104408366A (zh) | 基于插装技术的安卓应用程序权限使用行为跟踪方法 | |
CN109840400B (zh) | 提供安全性的设备和方法以及针对通用中间语言执行安全性的设备和方法 | |
WO2015057816A1 (en) | Method and system for adaptive loading of application | |
US20150113502A1 (en) | Method and system for encapsulation of application | |
WO2016206393A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100083 Beijing City, Haidian District Xueyuan Road No. 30, building A, room 605 days. Patentee after: Beijing Bang Bang Safety Technology Co. Ltd. Address before: 100083 Beijing City, Haidian District Xueyuan Road No. 30, building A, room 605 days. Patentee before: Yangpuweiye Technology Limited |
|
CP01 | Change in the name or title of a patent holder |