CN103324872A - 基于指令混淆的Android应用程序保护方法及系统 - Google Patents
基于指令混淆的Android应用程序保护方法及系统 Download PDFInfo
- Publication number
- CN103324872A CN103324872A CN2013102917114A CN201310291711A CN103324872A CN 103324872 A CN103324872 A CN 103324872A CN 2013102917114 A CN2013102917114 A CN 2013102917114A CN 201310291711 A CN201310291711 A CN 201310291711A CN 103324872 A CN103324872 A CN 103324872A
- Authority
- CN
- China
- Prior art keywords
- application program
- obscuring
- interpreter
- module
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种信息安全技术领域的基于指令混淆的Android应用程序保护方法及系统,通过生成混淆应用程序时所需要的置换矩阵,并对Android应用程序的二进制代码进行混淆,使得混淆后的代码无法被逆向;然后生成用于执行混淆后应用程序的系统镜像文件并搭建安全执行平台,执行混淆后应用程序。该系统包括矩阵生成模块、应用程序混淆模块、解释器生成模块、系统文件生成模块以及执行模块。本发明能够有效的保护Android应用程序抵抗来自攻击者的逆向和篡改等攻击。
Description
技术领域
本发明涉及的是一种信息安全技术领域的方法及系统,具体是一种涉及在Android平台上对应用程序使用指令混淆技术,对应用程序进行防逆向、防篡改保护的方法及系统。
背景技术
在移动智能终端安全领域,对于Android平台上应用程序的保护是目前的焦点问题。由于Android平台本身的特性,导致运行在该平台上的应用程序能够轻易的被逆向、篡改、重打包。经过攻击者恶意篡改过的应用程序会携带对用户有害的恶意代码,安装使用经过恶意篡改过的应用程序会对用户的终端设备造成不同程度的破坏。
Android应用程序使用Java语言编写,编写完成后会被编译打包成APK文件,APK文件(AndroidPackage安卓压缩包)即是Android平台上应用程序的安装文件,该类型文件能够被轻易的逆向成攻击者可以阅读的smali代码,同时攻击者也能通过修改smali代码并重编译来完成对APK文件的篡改。目前已知的Android平台应用程序保护方案十分匮乏,仅有Google提供的开源工具ProGuard以及一些Java代码的混淆保护技术。ProGuard只能够对应用程序中的关键变量名、函数名、类名等信息进行混淆,仅能够增加攻击者逆向理解应用程序的难度,并不能从本质上保护应用程序的逻辑结构不被攻击者理解,此外ProGuard无法保护应用程序不被攻击者篡改。而以往针对Java语言的混淆保护技术应用在Android应用程序上时候会出现大量的兼容性问题,并不能够实际用于保护Android应用程序。
经过对现有技术的检索发现,中国专利文献号CN102831342,公开日2012-12-19,记载了一种提高Android系统应用程序保护强度的方法,该技术包括:创建安全虚拟机,所述安全虚拟机用于执行对应于所述应用程序中第一程序代码指令的第二程序代码指令;创建由Dalvik虚拟机执行的第一程序代码指令与由所述安全虚拟机执行的所述第二程序代码指令的映射表;根据所述映射表将所述应用程序中的所述第一程序代码指令转换为所述第二程序代码指令;将所述第一程序代码指令从所述应用程序中删除,并将所述应用程序中调用所述已删除的第一程序代码指令的调用方式更改为本地调用方式;创建本地调用接口;当需要执行所述应用程序中第一程序代码指令时,所述Dalvik虚拟机执行所述本地调用接口;所述本地调用接口调用所述安全虚拟机,由所述安全虚拟机执行所述第二程序代码指令。但该技术对应用程序的保护需要对源代码进行修改,过于繁琐;另一方面,该技术中的核心虚拟机是存在于Dalvik虚拟机之上的,这样在系统中新增一个虚拟机的做法将会大幅度影响程序的运行效率。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于指令混淆的Android应用程序保护方法及系统,能够有效的保护Android应用程序抵抗来自攻击者的逆向和篡改等攻击。
本发明是通过以下技术方案实现的:
本发明涉及一种基于指令混淆的Android应用程序保护方法,包括以下步骤:
第一步、生成混淆应用程序时所需要的置换矩阵,具体为:对Android平台中的Dalvik虚拟机所使用的操作码进行随机排列,生成一个用于置换Dalvik字节码的置换矩阵。
第二步、对Android应用程序的二进制代码进行混淆,混淆后的代码无法被逆向,具体步骤包括:
2.1解包待保护的应用程序,解包后获得带有二进制代码的dex文件(Dalvik VM executes,Dalvik虚拟机执行代码)和应用程序资源文件;
2.2对dex文件进行解析,使用第一步得到的置换矩阵对其中每一条指令进行置换操作;
2.3将完成混淆的dex文件重打包成apk文件,此时的应用程序已经过混淆保护,能够抵抗静态逆向分析。
第三步、生成用于执行混淆后应用程序的系统镜像文件,具体步骤包括:
3.1使用第一步得到的置换矩阵生成混淆解释器;
所述的混淆解释器结构和Dalvik虚拟机解释器一致并具有Dalvik虚拟机的全部功能,能够执行混淆后的应用程序。
3.2采用生成的混淆解释器制作成Android系统的镜像文件。
第四步、搭建安全执行平台,执行混淆后应用程序,具体步骤包括:
4.1使用第三步制作的镜像文件在目标设备上部署拥有安全执行能力的Android系统。
4.2在部署完成的Android系统上安装使用混淆后的应用程序,操作流程和在普通Android系统上安装使用普通Android应用程序一样,整个安全执行流程对用户来说完全透明。
本发明涉及实现上述方法的系统,包括:矩阵生成模块、应用程序混淆模块、解释器生成模块、系统文件生成模块以及执行模块,其中:矩阵生成模块分别和应用程序混淆模块以及解释器生成模块相连并输出置换矩阵;应用程序混淆模块和执行模块相连并输出混淆后的应用程序;解释器生成模块和系统文件生成模块相连并输出混淆解释器;系统文件生成模块和执行模块相连并输出能够部署拥有安全执行能力系统的镜像文件;执行模块则对应用程序进行执行操作。
技术效果
与现有技术相比,本发明对Android平台应用程序的保护更加彻底,被混淆后的APK文件能够同时抵抗静态和动态逆向技术,并无法被篡改。该方案不要求提供源代码,可对已经编译完成的APK文件进行混淆保护。通过精心设计,该保护方案不会为系统带来额外的性能损害。
附图说明
图1为本发明方法流程示意图。
图2为本发明系统架构示意图。
图3为实施例应用示意图。
图4为指令置换流程示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
如图1所示,本实施例涉及一种方法,其具体步骤包括:
1、使用矩阵生成模块生成置换矩阵,如图4所示,为置换矩阵的样例;该置换矩阵由一个操作码映射表组成,通过将操作码根据映射表进行一一对应的置换的同时,保留操作数不做修改并生成新的字节码和对应的指令。
2、使用应用程序混淆模块对APK文件进行混淆。
3、使用解释器生成模块生成对应的混淆解释器。
4、使用系统文件生成模块将混淆解释器制作成镜像文件。
5、使用执行模块将镜像文件安装在目标设备中,之后可正常使用混淆后的应用程序。
如图2所示,本实施例涉及实现上述方法的系统,具体包括:
矩阵生成模块、应用程序混淆模块、解释器生成模块、系统文件生成模块以及执行模块,其中:矩阵生成模块分别和应用程序混淆模块以及解释器生成模块相连并输出置换矩阵;应用程序混淆模块和执行模块相连并输出混淆后的应用程序;解释器生成模块和系统文件生成模块相连并输出混淆解释器;系统文件生成模块和执行模块相连并输出能够部署拥有安全执行能力系统的镜像文件;执行模块则对应用程序进行执行操作。
所述的矩阵生成模块用来生成后续步骤所需的置换矩阵;
所述的应用程序混淆模块使用置换矩阵对应用程序进行混淆保护;
所述的解释器生成模块使用置换矩阵生成混淆解释器;
所述的系统文件生成模块是用来将混淆解释器制作成易用的镜像文件;
所述的执行模块将使用镜像文件来搭建一个能够执行混淆应用程序的执行环境。
如图3所示,为本实施例应用程序发布商使用APK混淆器生成混淆后的Android应用程序,并使用解释器生成器来构造配套的Android系统底层解释器。作为配套的应用程序和解释器,在对应用程序进行混淆时使用的置换矩阵应该和构造解释器时使用的置换矩阵保持一致,以此来保证混淆后应用程序的正常运行。
APK混淆器是运行于windows平台的APK处理程序,拥有解包APK、解析二进制代码文件、混淆二进制代码、重写二进制代码文件的功能。该工具使用事先选定的置换矩阵来对APK文件中的二进制代码进行逐条置换,最后完成对整个二进制代码文件的混淆。
解释器生成器是跨平台的脚本工具,该工具使用事先选定的置换矩阵来生成执行对应混淆后应用程序所必须的Android系统底层解释器,并将解释器封装成Android系统升级包的形式。
软件发行商将混淆后的应用程序和配套的升级包同时发送给用户,用户首先通过安装系统升级包,在自己的设备上建立起能够执行混淆后应用程序的执行环境,之后就能在该执行环境中就能正常的使用混淆后的一系列应用程序。
Claims (7)
1.一种基于指令混淆的Android应用程序保护方法,其特征在于,包括以下步骤:
第一步、生成混淆应用程序时所需要的置换矩阵,即:对Android平台中的Dalvik虚拟机所使用的操作码进行随机排列,生成一个用于置换Dalvik字节码的置换矩阵;
第二步、对Android应用程序的二进制代码进行混淆,使得混淆后的代码无法被逆向;
第三步、生成用于执行混淆后应用程序的系统镜像文件;
第四步、搭建安全执行平台,执行混淆后应用程序。
2.根据权利要求1所述的方法,其特征是,所述的置换矩阵由一个操作码映射表组成,通过将操作码根据映射表进行一一对应的置换的同时,保留操作数不做修改并生成新的字节码和对应的指令。
3.根据权利要求1所述的方法,其特征是,所述的第二步具体包括:
2.1)解包待保护的应用程序,解包后获得带有二进制代码的dex文件和应用程序资源文件;
2.2)对dex文件进行解析,使用第一步得到的置换矩阵对其中每一条指令进行置换操作;
2.3)将完成混淆的dex文件重打包成apk文件,此时的应用程序已经过混淆保护,能够抵抗静态逆向分析。
4.根据权利要求1所述的方法,其特征是,所述的第三步具体包括:
3.1)使用第一步得到的置换矩阵生成混淆解释器;
3.2)采用生成的混淆解释器制作成Android系统的镜像文件。
5.根据权利要求4所述的方法,其特征是,所述的混淆解释器结构和Dalvik虚拟机解释器一致并具有Dalvik虚拟机的全部功能,能够执行混淆后的应用程序。
6.根据权利要求1所述的方法,其特征是,所述的第四步具体包括:
4.1)使用第三步制作的镜像文件在目标设备上部署拥有安全执行能力的Android系统;
4.2)在部署完成的Android系统上安装使用混淆后的应用程序。
7.一种实现上述任一权利要求所述方法的系统,其特征在于,包括:矩阵生成模块、应用程序混淆模块、解释器生成模块、系统文件生成模块以及执行模块,其中:矩阵生成模块分别和应用程序混淆模块以及解释器生成模块相连并输出置换矩阵;应用程序混淆模块和执行模块相连并输出混淆后的应用程序;解释器生成模块和系统文件生成模块相连并输出混淆解释器;系统文件生成模块和执行模块相连并输出能够部署拥有安全执行能力系统的镜像文件;执行模块则对应用程序进行执行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310291711.4A CN103324872B (zh) | 2013-07-12 | 2013-07-12 | 基于指令混淆的Android应用程序保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310291711.4A CN103324872B (zh) | 2013-07-12 | 2013-07-12 | 基于指令混淆的Android应用程序保护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103324872A true CN103324872A (zh) | 2013-09-25 |
CN103324872B CN103324872B (zh) | 2016-04-27 |
Family
ID=49193611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310291711.4A Active CN103324872B (zh) | 2013-07-12 | 2013-07-12 | 基于指令混淆的Android应用程序保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103324872B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544415A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动平台应用软件的加固方法 |
CN103678961A (zh) * | 2013-11-07 | 2014-03-26 | 北京深思数盾科技有限公司 | 代码动态生成的方法 |
CN103927164A (zh) * | 2014-03-10 | 2014-07-16 | 珠海市君天电子科技有限公司 | 一种脚本混淆方法及系统 |
CN104573427A (zh) * | 2015-01-06 | 2015-04-29 | 北京邮电大学 | 一种可执行应用的混淆方法和装置 |
CN104573424A (zh) * | 2013-10-23 | 2015-04-29 | 中国银联股份有限公司 | 一种应用程序保护系统和方法 |
CN104573426A (zh) * | 2015-01-06 | 2015-04-29 | 北京邮电大学 | 一种可执行应用的混淆方法和装置 |
CN104751026A (zh) * | 2013-12-25 | 2015-07-01 | 中国移动通信集团公司 | 安卓系统的软件保护方法、软件应用方法及相关装置 |
CN104834838A (zh) * | 2015-04-29 | 2015-08-12 | 福建天晴数码有限公司 | 防止dex文件从内存中转存的方法及装置 |
CN104866734A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种dex文件的保护方法及装置 |
CN105303122A (zh) * | 2015-10-13 | 2016-02-03 | 北京大学 | 基于重构技术实现敏感数据云端锁定的方法 |
CN105389508A (zh) * | 2015-11-10 | 2016-03-09 | 工业和信息化部电信研究院 | 一种安卓重打包应用的检测方法及装置 |
CN105868589A (zh) * | 2016-03-30 | 2016-08-17 | 网易(杭州)网络有限公司 | 一种脚本加密方法、脚本运行方法及装置 |
CN106960140A (zh) * | 2016-01-08 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 虚拟机指令的混淆方法及装置、虚拟机保护系统 |
CN107038354A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 代码混淆方法、代码运行方法及装置 |
CN108027737A (zh) * | 2015-04-07 | 2018-05-11 | 瑞安安全股份有限公司 | 通过二进制和存储器多样性进行混淆的系统和方法 |
CN108563926A (zh) * | 2018-04-24 | 2018-09-21 | 北京顶象技术有限公司 | 数据保护方法及装置 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN108733990A (zh) * | 2018-05-22 | 2018-11-02 | 深圳壹账通智能科技有限公司 | 一种基于区块链的文件保护方法及终端设备 |
CN108733379A (zh) * | 2018-05-28 | 2018-11-02 | 常熟理工学院 | 基于dex字节码抽离映射混淆的安卓应用加固方法 |
CN109697339A (zh) * | 2017-10-20 | 2019-04-30 | 南京理工大学 | 一种基于动态虚拟指令变换的Android应用安全保护方法 |
WO2020082230A1 (en) * | 2018-10-23 | 2020-04-30 | Huawei Technologies Co., Ltd. | Device and method for validation of virtual function pointers |
CN112231703A (zh) * | 2020-11-09 | 2021-01-15 | 北京理工大学 | 一种结合api模糊处理技术的恶意软件对抗样本生成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831342A (zh) * | 2012-07-28 | 2012-12-19 | 北京深思洛克软件技术股份有限公司 | 一种提高安卓系统中应用程序保护强度的方法 |
US8881290B2 (en) * | 2008-03-12 | 2014-11-04 | Apple Inc. | Method and apparatus for computer code obfuscation and deobfuscation using boot installation |
-
2013
- 2013-07-12 CN CN201310291711.4A patent/CN103324872B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881290B2 (en) * | 2008-03-12 | 2014-11-04 | Apple Inc. | Method and apparatus for computer code obfuscation and deobfuscation using boot installation |
CN102831342A (zh) * | 2012-07-28 | 2012-12-19 | 北京深思洛克软件技术股份有限公司 | 一种提高安卓系统中应用程序保护强度的方法 |
Non-Patent Citations (4)
Title |
---|
张宝国: "基于JAVA的代码混淆研究", 《中国优秀硕士学位论文全文数据库 信息科技辑(月刊 )》, vol. 2009, no. 04, 29 April 2009 (2009-04-29) * |
李勇,左志宏: "目标代码混淆技术综述", 《计算机技术与发展》, vol. 17, no. 4, 29 April 2007 (2007-04-29) * |
罗汉,邓远北: "广义置换矩阵的性质", 《湖南大学学报》, vol. 18, no. 1, 31 December 1991 (1991-12-31) * |
袁家斌,叶峰: "一种全新的基于置换密钥矩阵加密算法", 《南京航空航天大学学报》, vol. 37, no. 6, 12 January 2006 (2006-01-12) * |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573424A (zh) * | 2013-10-23 | 2015-04-29 | 中国银联股份有限公司 | 一种应用程序保护系统和方法 |
WO2015058639A1 (zh) * | 2013-10-23 | 2015-04-30 | 中国银联股份有限公司 | 一种应用程序保护系统和方法 |
CN103544415A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动平台应用软件的加固方法 |
CN103678961B (zh) * | 2013-11-07 | 2016-07-06 | 北京深思数盾科技股份有限公司 | 代码动态生成的方法 |
CN103678961A (zh) * | 2013-11-07 | 2014-03-26 | 北京深思数盾科技有限公司 | 代码动态生成的方法 |
CN104751026B (zh) * | 2013-12-25 | 2018-11-02 | 中国移动通信集团公司 | 安卓系统的软件保护方法、软件应用方法及相关装置 |
CN104751026A (zh) * | 2013-12-25 | 2015-07-01 | 中国移动通信集团公司 | 安卓系统的软件保护方法、软件应用方法及相关装置 |
CN104866734B (zh) * | 2014-02-25 | 2018-10-09 | 北京娜迦信息科技发展有限公司 | 一种dex文件的保护方法及装置 |
CN104866734A (zh) * | 2014-02-25 | 2015-08-26 | 北京娜迦信息科技发展有限公司 | 一种dex文件的保护方法及装置 |
CN103927164A (zh) * | 2014-03-10 | 2014-07-16 | 珠海市君天电子科技有限公司 | 一种脚本混淆方法及系统 |
CN103927164B (zh) * | 2014-03-10 | 2017-06-06 | 珠海市君天电子科技有限公司 | 一种脚本混淆方法及系统 |
CN104573427B (zh) * | 2015-01-06 | 2017-09-08 | 北京邮电大学 | 一种可执行应用的混淆方法和装置 |
CN104573427A (zh) * | 2015-01-06 | 2015-04-29 | 北京邮电大学 | 一种可执行应用的混淆方法和装置 |
CN104573426A (zh) * | 2015-01-06 | 2015-04-29 | 北京邮电大学 | 一种可执行应用的混淆方法和装置 |
CN104573426B (zh) * | 2015-01-06 | 2017-06-06 | 北京邮电大学 | 一种可执行应用的混淆方法和装置 |
CN108027737B (zh) * | 2015-04-07 | 2021-07-27 | 瑞安安全股份有限公司 | 通过二进制和存储器多样性进行混淆的系统和方法 |
CN108027737A (zh) * | 2015-04-07 | 2018-05-11 | 瑞安安全股份有限公司 | 通过二进制和存储器多样性进行混淆的系统和方法 |
CN104834838A (zh) * | 2015-04-29 | 2015-08-12 | 福建天晴数码有限公司 | 防止dex文件从内存中转存的方法及装置 |
CN104834838B (zh) * | 2015-04-29 | 2017-11-24 | 福建天晴数码有限公司 | 防止dex文件从内存中转存的方法及装置 |
CN105303122B (zh) * | 2015-10-13 | 2018-02-09 | 北京大学 | 基于重构技术实现敏感数据云端锁定的方法 |
CN105303122A (zh) * | 2015-10-13 | 2016-02-03 | 北京大学 | 基于重构技术实现敏感数据云端锁定的方法 |
CN105389508A (zh) * | 2015-11-10 | 2016-03-09 | 工业和信息化部电信研究院 | 一种安卓重打包应用的检测方法及装置 |
CN106960140A (zh) * | 2016-01-08 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 虚拟机指令的混淆方法及装置、虚拟机保护系统 |
CN107038354A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 代码混淆方法、代码运行方法及装置 |
CN105868589A (zh) * | 2016-03-30 | 2016-08-17 | 网易(杭州)网络有限公司 | 一种脚本加密方法、脚本运行方法及装置 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN109697339A (zh) * | 2017-10-20 | 2019-04-30 | 南京理工大学 | 一种基于动态虚拟指令变换的Android应用安全保护方法 |
CN108563926A (zh) * | 2018-04-24 | 2018-09-21 | 北京顶象技术有限公司 | 数据保护方法及装置 |
CN108733990A (zh) * | 2018-05-22 | 2018-11-02 | 深圳壹账通智能科技有限公司 | 一种基于区块链的文件保护方法及终端设备 |
CN108733379A (zh) * | 2018-05-28 | 2018-11-02 | 常熟理工学院 | 基于dex字节码抽离映射混淆的安卓应用加固方法 |
WO2020082230A1 (en) * | 2018-10-23 | 2020-04-30 | Huawei Technologies Co., Ltd. | Device and method for validation of virtual function pointers |
CN112889045A (zh) * | 2018-10-23 | 2021-06-01 | 华为技术有限公司 | 虚拟函数指针验证设备及方法 |
US11755723B2 (en) | 2018-10-23 | 2023-09-12 | Huawei Technologies Co., Ltd. | Device and method for validation of virtual function pointers |
CN112889045B (zh) * | 2018-10-23 | 2024-05-03 | 华为技术有限公司 | 虚拟函数指针验证设备及方法 |
CN112231703A (zh) * | 2020-11-09 | 2021-01-15 | 北京理工大学 | 一种结合api模糊处理技术的恶意软件对抗样本生成方法 |
CN112231703B (zh) * | 2020-11-09 | 2022-08-05 | 北京理工大学 | 一种结合api模糊处理技术的恶意软件对抗样本生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103324872B (zh) | 2016-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103324872A (zh) | 基于指令混淆的Android应用程序保护方法及系统 | |
DeMarinis et al. | Sysfilter: Automated system call filtering for commodity software | |
CN107992723A (zh) | 一种基于动态链接库的Java源码保护方法 | |
Snow et al. | Just-in-time code reuse: On the effectiveness of fine-grained address space layout randomization | |
Homescu et al. | Librando: transparent code randomization for just-in-time compilers | |
CN108932406B (zh) | 虚拟化软件保护方法和装置 | |
Rolles | Unpacking Virtualization Obfuscators. | |
Kemerlis et al. | {kGuard}: Lightweight kernel protection against {Return-to-User} attacks | |
Younan et al. | Runtime countermeasures for code injection attacks against C and C++ programs | |
CN103413076B (zh) | 一种Android应用程序分块保护的方法 | |
CN103413073B (zh) | 一种保护java可执行程序的方法及设备 | |
Gionta et al. | Preventing kernel code-reuse attacks through disclosure resistant code diversification | |
CN109948308A (zh) | 代码安全保护方法、装置、电子设备和计算机可读存储介质 | |
CN112163195B (zh) | 一种基于堆栈隐藏的虚拟机软件保护方法 | |
Ghosh et al. | Replacement attacks against vm-protected applications | |
CN105303073A (zh) | 软件代码保护方法 | |
CN109697339A (zh) | 一种基于动态虚拟指令变换的Android应用安全保护方法 | |
CN103514027B (zh) | 一种增强软件保护易用性的方法 | |
CN103729579A (zh) | 函数级的软件保护方法 | |
Moreira et al. | DROP THE ROP fine-grained control-flow integrity for the Linux kernel | |
CN107315930A (zh) | 一种保护Python程序的方法 | |
Joly et al. | Security analysis of CHERI ISA | |
Mu et al. | ROPOB: obfuscating binary code via return oriented programming | |
Zhao et al. | Compile-time code virtualization for android applications | |
CN111782334B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |