CN108491235A - 结合动态加载和函数Native化的DEX保护方法 - Google Patents
结合动态加载和函数Native化的DEX保护方法 Download PDFInfo
- Publication number
- CN108491235A CN108491235A CN201810235689.4A CN201810235689A CN108491235A CN 108491235 A CN108491235 A CN 108491235A CN 201810235689 A CN201810235689 A CN 201810235689A CN 108491235 A CN108491235 A CN 108491235A
- Authority
- CN
- China
- Prior art keywords
- function
- dex
- dynamic load
- nativeization
- file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及结合动态加载和函数Native化的DEX保护方法,属于计算机与信息科学技术领域中Android平台APP加固技术的一种。本发明第一步对应用的APK文件进行加固修改,加固过程首先通过apktool工具反编译应用APK文件,获取AndroidManifest.xml文件,修改应用启动入口,然后利用输入的待保护方法列表,生成植入代码,并植入原始DEX文件反编译得到的smali文件,重新生成DEX文件并重构,最后对DEX文件加密,输出得.jar,并重新打包生成APK。本发明第二步在APP运行过程中修改进程内存,首先启动壳DEX,运行植入的启动代码对原始DEX文件加密和动态加载,并重定向被保护的方法,接着,在函数调用时执行自定义的代码恢复被调用方法,调用原始函数,完成函数调用。
Description
技术领域
本发明涉及结合动态加载和函数Native化的DEX保护方法,属于计算机与信息科学技术领域。
背景技术
Android APP的核心业务逻辑通过Java实现,最终被编译成了DEX文件。DEX的安全问题是APP安全的核心,未加固的DEX文件不具备自我保护能力,需要针对性地对DEX进行保护,继而保证APP的安全性。本发明提出结合动态加载和函数Native化的DEX保护方法,使Java函数在内存中始终为Native形式,对抗动态恢复和动态脱壳攻击。
针对DEX文件的保护方法需要解决的基本问题是:保护Java函数在内存中的信息,避免DEX容易受到动态恢复和动态脱壳攻击。综观现有的DEX文件保护方法,通常使用方法可归为四类:
1.基于代码混淆的DEX保护方法
代码混淆技术是相对通用和成熟的方法,随着混淆技术的发展,已经出现了多个实用的混淆工具。其中包括针对Java源码的混淆工具,如Smardec公司的Allatori,针对Android程序的混淆工具,如GuardSquare公司的ProGuard,以及它的增强版DexGuard和针对DEX文件的混淆工具,如AIRO等。
代码混淆技术虽然可以降低代码可读性,提高逆向分析的难度,但是攻击者仍然可以直接获取源码,也不影响动态调试的流程,而且存在着混淆失败的风险,给APP新增漏洞,因此代码混淆只是DEX保护初级的保护方案。
2.基于动态加载的DEX保护方法
基于动态加载的DEX保护方法,通过对DEX文件整体加密,并将加密后的DEX移动到其他目录,然后在APK文件的根目录下加入壳DEX。当APP启动时,系统加载壳DEX,壳DEX解密并动态加载DEX文件。这种方法将DEX文件作为一个整体进行加载,加载到内存中的DEX文件是完整的。这种保护方法对内存dump等动态逆向方法的防护作用很小。
3.基于Java函数动态恢复的DEX保护方法
基于Java函数动态恢复的保护方法是更深层次的保护方法。以Java函数为基本单位进行DEX保护。目前国内大部分公司采取这样的方法,包括娜迦、腾讯乐固、梆梆、360、爱加密等。方法有效改进了基于动态加载的DEX保护方法在内存中的完整性问题。如梆梆的加固方法首先通过壳DEX去动态加载原始的DEX文件,但DEX文件在内存中是不完整的,部分函数的代码被剥离。该方法Hook了dvmResolveClass函数,当类被加载时,该函数被执行,此时对类中的被抽取的代码进行还原,填充Method结构体,完成动态恢复的过程。同时也保证了DEX文件的不完整性。
对于Java函数动态恢复的方法,内存中的DEX文件是不完整的。经过动态恢复的函数,虽然其在DEX文件中被描述是Native方法,但是其在内存中已经被还原成一个Java函数。可以通过遍历class_data_item中所有类的所有函数,并获取该函数在内存中的Method结构体信息,比较Method结构体对函数的描述和DEX文件对函数的描述,如果不一致,以Method结构体为准。这样可以完成对已经加载过的类的函数进行恢复。
4.基于虚拟机保护的DEX保护方法
基于虚拟机保护(VMP)的DEX保护方法是目前安全性较高的一种保护方法。VMP技术通过自定义指令集和解释器,将DEX中函数的字节码全部替换成自定义的指令,运行过程中,由自定义的解释器进行解释执行,从而使得内存中不会出现真实的字节码。基于虚拟机保护的DEX保护方法,由于其对每一条指令都进行解释执行,时间和空间损耗较大,同时由于Android系统的开源性,系统差异性较大,VMP的兼容性较差,主要用于一些关键的函数保护。
综上所述,现有DEX文件保护方法难以对DEX文件进行函数级的保护,实现函数的Native化,所以本发明提出结合动态加载和函数Native化的DEX保护方法。
发明内容
本发明的目的是实现Java函数级的DEX保护,提出结合动态加载和函数Native化的DEX保护方法。
本发明的设计原理为:首先对应用的APK文件进行加固修改,包括更换APP启动入口,代码植入,DEX重构,应用加壳几个步骤;然后进入在APP运行过程中修改进程内存的启动阶段,包括动态加载和函数重定向;最后进入在APP运行过程中修改进程内存的函数调用阶段,包括函数自修改和函数调用,最终实现动态加载和函数Native化的DEX保护。
本发明的技术方案是通过如下步骤实现的:
步骤1,对应用的APK文件进行加固修改。
步骤1.1,通过apktool工具反编译应用APK文件,获取AndroidManifest.xml文件,修改应用启动入口。
步骤1.2,利用输入的待保护方法列表,生成植入代码。
步骤1.3,反编译原始DEX文件,得到smali文件,向其中植入步骤1.2中生成的植入代码,并生成DEX文件。
步骤1.4,DEX重构第一阶段DEX函数抽取,包括函数定位和函数变换。
步骤1.5,DEX重构第二阶段DEX文件加密。
步骤1.6,应用加壳生成加固后的APK。
步骤2,在APP运行过程中修改进程内存的启动阶段。
步骤2.1,动态加载。
步骤2.2,函数重定向。
步骤3,在APP运行过程中修改进程内存的函数调用阶段。
步骤3.1,函数自修改。
步骤3.2,函数调用。
有益效果
相比于基于动态加载的DEX保护方法,本方法在防止静态攻击的同时,通过函数Native化,可以保证内存中DEX文件的不完整性,对抗动态脱壳攻击。
相比于基于Java函数动态恢复的DEX保护方法,本方法使得函数始终是Native函数,不能通过获取Method结构体信息来动态恢复DEX文件。
相比于虚拟机保护的DEX保护方法,本方法的时间增量与函数本身无关,对于执行时间较长的函数,时间损耗更少。
附图说明
图1为本发明结合动态加载和函数Native化的DEX保护方法的对应用的APK文件进行加固修改的原理图。
具体实施方式
为了更好的说明本发明的目的和优点,下面结合实例对本发明方法的实施方式做进一步详细说明。
具体流程为:
步骤1,对应用的APK文件进行加固修改。
步骤1.1,修改应用启动入口,首先点击桌面图标,触发点击事件,Launcher进程与AMS通信;然后AMS通过Socket向Zegote进程发送创建进程请求;接着Zegote进程Fork自身,新建一个应用进程;接着进入应用进程,应用进程调用ActivityThread类的main函数作为应用程序的入口;然后调用attach函数初始化应用信息;接着调用Application类中经过重载的attachBaseContext配置应用上下文,最后执行Application的onCreate()方法,进入应用程序。
步骤1.2,生成植入代码,首先修改代码文件,即读取待保护的函数,并将类名和函数名添加入代码集,然后进行Java编译,将Java代码编译成Dalvik虚拟机可执行的字节码。
步骤1.3,植入代码,将原始DEX文件反编译后的smali文本集和植入代码的smali文本集合并,并转为DEX文件。
步骤1.4,DEX重构第一阶段DEX函数抽取,首先遍历string_id段找到类名字符串和函数名字符串对应的string_id,接着遍历type_id段,确定类type_id值,然后遍历class_def段,根据type_id确定类的class_def_item,接着遍历method_ids段,根据函数名string_id和所属类的type_id确定method_id,然后遍历class_data_item的所有函数,根据method_id确定偏移code_off,完成函数定位;接着函数变为Native的方法,即将access_flags赋值为access_flags|ACC_NATIVE,其中ACC_NATIVE值为0x100,access_flags在成员函数的encode_method结构字段中,完成函数变换。
步骤1.5,DEX重构第二阶段DEX文件加密,首先利用密钥种子通过自定义的一系列操作生成一个密钥,然后利用密钥对DEX文件加密,解密程序中保存密钥种子,完成对DEX文件的整体加密。
步骤1.6,应用加壳生成加固后的APK,首先将原始的DEX文件经过DEX重构后变成.jar文件,并移动到/assets文件夹,在原DEX位置插入壳DEX文件,在/libs下插入用于脱壳的动态库,对加壳后的APK重新编译和签名,生成加壳后的APK文件。
步骤2,在APP运行过程中修改进程内存的启动阶段。
步骤2.1,动态加载,首先打开加密后的DEX文件,读取密钥种子生成密钥,对内存中的DEX文件镜像解密,解密结果仍然存在内存之中,接着将解密后的DEX文件在内存中的地址构造一个u4参数,调用openDexFile进行加载,然后通过NDK方式修改DexFile对象的cookie值,最后新建源DEX的Application对象,调用Application的attach方法,完成对源DEX动态加载和启动。
步骤2.2,函数重定向,通过将函数的method->nativeFunc地址设定为自定义函数接口,重定向函数,其中自定义函数接口的原型为void hookedMethodCallback(const u4*args,JValue*pResult,const Method*method,::Thread*self)。
步骤3,在APP运行过程中修改进程内存的函数调用阶段。
步骤3.1,函数自修改,首先通过一个指向Method结构体指针method,定位当前被调用的函数所在的DEX文件在内存中的位置;然后获取函数的信息,包括所属类的类名(Method结构体ClassObject类的属性char*descriptor指向的字符串)、函数名(Method结构体属性char*name指向的字符串)、函数声明索引编号(DexProto结构体的属性protoIdx);最后通过遍历DEX中函数抽取区域的被保护函数信息,匹配以上三个特征,找到code_item在内存中的位置,读取信息并修改Method的值。
步骤3.2,函数调用,首先通过Native形式的Method的insns字段找到Java形式的Method,通过反射方式,在native层调用Java函数。反射调用的函数原型为dvmInvokeMethod(thisObject,meth,argList,params,returnType,true);调用dvmInvokeMethod之后,返回结果,完成整个函数执行过程。
测试结果:实验基于结合动态加载和函数Native化的DEX保护方法,通过静态分析实验可以得出,结合动态加载和函数Native化的DEX文件保护方法利用动态加载方式,可以保护APP原代码不被反编译和逆向分析,防止DEX被静态分析;通过动态脱壳实验可以得出,通过对函数的Native化处理,可以保证DEX文件在内存中始终是不完整的,从而可以对抗内存dump攻击;通过Native化验证实验可以得出,通过本发明方法保护DEX,在应用运行阶段,被保护的函数始终是一个Native函数,实现了函数的Native化;通过性能分析实验可以得出,a)经过函数抽取保护的DEX,每一个被保护函数的执行时间将会有等量的延长;b)方法更适合于保护执行时间较长的函数。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.结合动态加载和函数Native化的DEX保护方法,其特征在于所述方法包括如下步骤:
步骤1,对APK文件加固修改阶段,首先对应用APK进行反编译,修改应用启动入口,接着利用输入的待保护方法列表生成植入代码,植入原smali文件,然后进行DEX重构,包括DEX函数抽取和DEX文件加密,其中DEX函数抽取又可以分为函数定位和函数变换;
步骤2,应用启动阶段,首先执行壳DEX,执行自定义的系统启动入口,运行植入的启动代码,完成对源DEX文件的动态加载和加密,并进行被保护函数的重定向;
步骤3,应用运行中的函数调用阶段,首先进行函数自修改,包括DEX文件内存定位,函数信息获取和函数修改,接着进行函数调用,返回结果,完成整个函数的执行过程。
2.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤1中DEX函数抽取中的函数变换,本发明将access_flags赋值为access_flags|ACC_NATIVE,实现了Java函数的Native化。
3.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤2中函数重定向,本发明通过将函数的Method->nativeFunc地址设置为自定义函数接口重定向函数。
4.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数自修改的DEX文件内存定位阶段,函数调用时,传递一个指向Method结构体指针method,指针指向该函数的Method结构体。
5.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数自修改的函数信息获取阶段,通过Method结构体ClassObject类的属性char*descriptor指向的字符串获取类名,通过Method结构体属性char*name指向的字符串获取函数名,通过DexProto结构体的属性protoIdx获取函数声明索引值。
6.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数自修改的函数修改阶段,首先对code_item解密,然后用code_item的registersSize、insSize、outsSize、insns复制给函数的Java形式Method信息,并将Method设置为一个Java函数。
7.根据权利要求1所述的结合动态加载和函数Native化的DEX保护方法,其特征在于:步骤3中函数调用阶段,本方法通过Native形式的Method的insns字段找到Java形式的Method,通过反射方式,在native层调用Java函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235689.4A CN108491235B (zh) | 2018-03-21 | 2018-03-21 | 结合动态加载和函数Native化的DEX保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810235689.4A CN108491235B (zh) | 2018-03-21 | 2018-03-21 | 结合动态加载和函数Native化的DEX保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108491235A true CN108491235A (zh) | 2018-09-04 |
CN108491235B CN108491235B (zh) | 2021-03-30 |
Family
ID=63318954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810235689.4A Expired - Fee Related CN108491235B (zh) | 2018-03-21 | 2018-03-21 | 结合动态加载和函数Native化的DEX保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108491235B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255235A (zh) * | 2018-09-17 | 2019-01-22 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN109492354A (zh) * | 2018-10-23 | 2019-03-19 | 海南新软软件有限公司 | 一种混淆代码的方法、装置及系统 |
CN110175067A (zh) * | 2019-03-05 | 2019-08-27 | 广东电网有限责任公司信息中心 | 一种移动应用立体防御方法和系统 |
CN110502874A (zh) * | 2019-07-19 | 2019-11-26 | 西安理工大学 | 一种基于文件自修改的Android App加固方法 |
CN110806906A (zh) * | 2019-10-30 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种Dex分包方法、装置、设备及介质 |
CN111581639A (zh) * | 2020-03-27 | 2020-08-25 | 北京大学 | 一种Android加壳应用程序通用自动化脱壳方法及系统 |
CN111832014A (zh) * | 2020-07-02 | 2020-10-27 | 北京智游网安科技有限公司 | 基于动态加载的Java SDK代码加解密方法及终端 |
CN112667975A (zh) * | 2020-12-29 | 2021-04-16 | 西北工业大学 | 一种基于混合加固Android系统应用软件安全防护方法 |
CN113254890A (zh) * | 2021-06-01 | 2021-08-13 | 中电万维信息技术有限责任公司 | 基于虚拟机多样性的android软件防护装置及其使用方法 |
CN113378123A (zh) * | 2021-06-10 | 2021-09-10 | 福建省天奕网络科技有限公司 | 一种安卓端抽取壳的实现方法及系统 |
CN114564208A (zh) * | 2022-03-17 | 2022-05-31 | 杭州云深科技有限公司 | 安卓应用程序的反编译方法、电子设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902859A (zh) * | 2013-12-25 | 2014-07-02 | 武汉安天信息技术有限责任公司 | 基于JAVA下hook技术的代码保护方法及系统 |
US20140245448A1 (en) * | 2013-02-27 | 2014-08-28 | Electronics And Telecommunications Research Institute | Apparatus and method for analyzing permission of application for mobile devices and detecting risk |
US8892876B1 (en) * | 2012-04-20 | 2014-11-18 | Trend Micro Incorporated | Secured application package files for mobile computing devices |
CN105631335A (zh) * | 2015-12-25 | 2016-06-01 | 北京奇虎科技有限公司 | 一种动态脱壳方法、装置和设备 |
CN106650330A (zh) * | 2016-12-22 | 2017-05-10 | 合肥国信车联网研究院有限公司 | 一种基于Dex加载器的Android应用软件加固保护方法 |
CN106778103A (zh) * | 2016-12-30 | 2017-05-31 | 上海掌门科技有限公司 | 一种安卓应用程序防逆向破解的加固方法、系统及解密方法 |
-
2018
- 2018-03-21 CN CN201810235689.4A patent/CN108491235B/zh not_active Expired - Fee Related
Patent Citations (6)
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 |
US20140245448A1 (en) * | 2013-02-27 | 2014-08-28 | Electronics And Telecommunications Research Institute | Apparatus and method for analyzing permission of application for mobile devices and detecting risk |
CN103902859A (zh) * | 2013-12-25 | 2014-07-02 | 武汉安天信息技术有限责任公司 | 基于JAVA下hook技术的代码保护方法及系统 |
CN105631335A (zh) * | 2015-12-25 | 2016-06-01 | 北京奇虎科技有限公司 | 一种动态脱壳方法、装置和设备 |
CN106650330A (zh) * | 2016-12-22 | 2017-05-10 | 合肥国信车联网研究院有限公司 | 一种基于Dex加载器的Android应用软件加固保护方法 |
CN106778103A (zh) * | 2016-12-30 | 2017-05-31 | 上海掌门科技有限公司 | 一种安卓应用程序防逆向破解的加固方法、系统及解密方法 |
Non-Patent Citations (3)
Title |
---|
张笈,高君丰等: "网络编码协议污点回溯逆向分析方法研究", 《信息网络安全》 * |
徐伟: "基于Android平台的应用程序安全保护研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
潘丽敏,罗森林等: "基于劫持内核入口点的隐藏进程检测方法", 《北京理工大学学报》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255235A (zh) * | 2018-09-17 | 2019-01-22 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN109255235B (zh) * | 2018-09-17 | 2021-08-24 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN109492354A (zh) * | 2018-10-23 | 2019-03-19 | 海南新软软件有限公司 | 一种混淆代码的方法、装置及系统 |
CN110175067A (zh) * | 2019-03-05 | 2019-08-27 | 广东电网有限责任公司信息中心 | 一种移动应用立体防御方法和系统 |
CN110502874B (zh) * | 2019-07-19 | 2021-05-25 | 西安理工大学 | 一种基于文件自修改的Android App加固方法 |
CN110502874A (zh) * | 2019-07-19 | 2019-11-26 | 西安理工大学 | 一种基于文件自修改的Android App加固方法 |
CN110806906A (zh) * | 2019-10-30 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种Dex分包方法、装置、设备及介质 |
CN110806906B (zh) * | 2019-10-30 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 一种Dex分包方法、装置、设备及介质 |
CN111581639A (zh) * | 2020-03-27 | 2020-08-25 | 北京大学 | 一种Android加壳应用程序通用自动化脱壳方法及系统 |
CN111581639B (zh) * | 2020-03-27 | 2022-10-14 | 北京大学 | 一种Android加壳应用程序通用自动化脱壳方法及系统 |
CN111832014A (zh) * | 2020-07-02 | 2020-10-27 | 北京智游网安科技有限公司 | 基于动态加载的Java SDK代码加解密方法及终端 |
CN111832014B (zh) * | 2020-07-02 | 2024-02-13 | 北京智游网安科技有限公司 | 基于动态加载的Java SDK代码加解密方法及终端 |
CN112667975A (zh) * | 2020-12-29 | 2021-04-16 | 西北工业大学 | 一种基于混合加固Android系统应用软件安全防护方法 |
CN112667975B (zh) * | 2020-12-29 | 2024-04-26 | 西北工业大学 | 一种基于混合加固Android系统应用软件安全防护方法 |
CN113254890A (zh) * | 2021-06-01 | 2021-08-13 | 中电万维信息技术有限责任公司 | 基于虚拟机多样性的android软件防护装置及其使用方法 |
CN113378123A (zh) * | 2021-06-10 | 2021-09-10 | 福建省天奕网络科技有限公司 | 一种安卓端抽取壳的实现方法及系统 |
CN114564208A (zh) * | 2022-03-17 | 2022-05-31 | 杭州云深科技有限公司 | 安卓应用程序的反编译方法、电子设备和介质 |
CN114564208B (zh) * | 2022-03-17 | 2024-10-11 | 杭州云深科技有限公司 | 安卓应用程序的反编译方法、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108491235B (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491235A (zh) | 结合动态加载和函数Native化的DEX保护方法 | |
CN108932406B (zh) | 虚拟化软件保护方法和装置 | |
Chen et al. | Mystique: Uncovering information leakage from browser extensions | |
Wong et al. | Tackling runtime-based obfuscation in android with {TIRO} | |
Banescu et al. | A tutorial on software obfuscation | |
US7565697B2 (en) | Systems and methods for preventing unauthorized use of digital content | |
CN108681457A (zh) | 基于代码下沉与残码解释的Android应用程序保护方法 | |
Schütte et al. | Condroid: Targeted dynamic analysis of android applications | |
US20070199074A1 (en) | Systems and methods for preventing unauthorized use of digital content | |
CN108733988A (zh) | 安卓平台上可执行程序的保护方法 | |
KR20110031426A (ko) | 소프트웨어 애플리케이션들의 화이트박스 구현들을 생성하는 시스템 및 방법 | |
AU2001292910A1 (en) | Systems and methods for preventing unauthorized use of digital content | |
US11755724B2 (en) | Securing software routines | |
Heule et al. | IFC inside: Retrofitting languages with dynamic information flow control | |
US20240143739A1 (en) | Intelligent obfuscation of mobile applications | |
US20150195106A1 (en) | Address pinning | |
CN107273723A (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN113626773B (zh) | 一种基于中间语言的代码保护方法 | |
Thiel | iOS application security: The definitive guide for hackers and developers | |
Guo et al. | A survey of obfuscation and deobfuscation techniques in android code protection | |
Farhadi et al. | Chronicle of a Java Card death | |
CN104615935B (zh) | 一种面向Xen虚拟化平台的隐藏方法 | |
Leemreize | Analyzing fileless malware for the. NET Framework through CLR profiling | |
Bishop | Improvements of User's Security and Privacy in a Web Browser | |
Sanna et al. | Oblivion: an open-source system for large-scale analysis of macro-based office malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210330 |