CN103902859A - 基于JAVA下hook技术的代码保护方法及系统 - Google Patents
基于JAVA下hook技术的代码保护方法及系统 Download PDFInfo
- Publication number
- CN103902859A CN103902859A CN201310725462.5A CN201310725462A CN103902859A CN 103902859 A CN103902859 A CN 103902859A CN 201310725462 A CN201310725462 A CN 201310725462A CN 103902859 A CN103902859 A CN 103902859A
- Authority
- CN
- China
- Prior art keywords
- code
- protected
- program
- class
- call
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000012856 packing Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 241000282414 Homo sapiens Species 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 27
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
Images
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
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)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供一种基于JAVA下hook技术的代码保护方法及系统。本发明方法主要利用JNI机制,通过修改类标志信息为native,改变类调用,在动态链接库中自定义nativeFunc;将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;最终输出替换后的待保护程序。发明还相应的提供了对应系统结构。通过本发明的方法,能够将函数的调用隐藏在编译为二进制机器指令的动态链接库文件中,从而大大增加了对其逆向的难度。
Description
技术领域
本发明涉及移动终端应用安全领域,特别涉及一种基于JAVA下hook技术的代码保护方法及系统。
背景技术
随着Android移动终端平台的日益发展,第三方应用程序的数量呈现出爆炸式增长的趋势,移动平台开发者开发了各式各样的第三方应用程序,其中不乏娱乐、游戏、社交及各种工具等类型。由于Android系统下应用程序主要使用JAVA语言开发,并采用ZIP格式打包成APK文件进行发布,所以很容易通过反编译工具对其逆向分析,并对其盗版和重打包。非法开发者利用dex2jar和JD-GUI、JAD等反编译工具能方便的还原第三方应用的JAVA代码,并对其代码流程,及其函数调用等过程进行逆向分析,能够很清晰的分析出其代码间的调用关系。
发明内容
本发明提供了一种基于JAVA下hook技术的代码保护方法及系统,解决了程序中函数调用易于被逆向发现的问题,将函数调用隐藏在编译为二进制机器指令的动态链接库文件中,从而增加了代码的安全性。
本发明主要利用JAVA中的JAVA本地调用机制,实现对JAVA类方法的hook技术,并应用于应用程序,实现对其代码流程的隐藏和保护。JAVA本地调用机制使JAVA能够与其他语言编写的代码进行交互。因此使得JAVA程序可以调用本地其他语言编写的代码,而如果想将一个方法做为一个本地方法的话,那么必须声明该方法为native的,因此我们基于上述原理,则能够实现对程序中函数调用的隐藏。
本发明提供一种基于JAVA下hook技术的代码保护方法,包括:
待保护程序预处理,对待保护程序进行代码结构分析,获得待保护程序中存在的代码调用;所述待保护程序为源代码或打包的APK文件;
指定要保护的代码调用,并提取类方法的调用关系;
将accessFlags指定的标志信息更改为native本地方法;
在动态链接库中自定义nativeFunc;
将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;
将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;
输出替换后的待保护程序。
所述的方法中,还包括:自定义加载器,将实现的类由自定义类加载器托管。
所述的方法中,在输出替换后的待保护程序前,还包括:对自定义的nativeFunc及字符串信息加密。
一种基于JAVA下hook技术的代码保护系统,包括:
预处理模块,对待保护程序进行代码结构分析,获得待保护程序中存在的代码调用;所述待保护程序为源代码或打包的APK文件;
信息提取模块,用于指定要保护的代码调用,并提取类方法的调用关系;
标识信息更改模块,将accessFlags指定的标志信息更改为native本地方法;
替换模块,用于在动态链接库中自定义nativeFunc;将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;
将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;
输出模块,用于输出替换后的待保护程序。
所述的系统中,还包括:自定义加载器,将实现的类由自定义类加载器托管。
所述的系统中,在输出替换后的待保护程序前,还包括:对自定义的nativeFunc及字符串信息加密。
本发明方法优势在于,当Dalvik虚拟机在解析执行一个类方法的时候,如果发现方法的标志信息为一个native函数,则会以JNI的方式执行相关的函数代码。本发明利用了这个特性,通过修改类方法的标志信息,让Dalvik虚拟机以JNI的方式执行指定的方法,从而改变JAVA类方法的调用流程。这样在反编译后,无法很容易分析出代码的调用流程,增强了对应用功能的代码流程保护。
本发明提供一种基于JAVA下hook技术的代码保护方法及系统。本发明方法主要利用JNI机制,通过修改类标志信息为native,改变类调用,在动态链接库中自定义nativeFunc;将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;最终输出替换后的待保护程序。发明还相应的提供了对应系统结构。通过本发明的方法,能够将函数的调用隐藏在编译为二进制机器指令的动态链接库文件中,从而大大增加了对其逆向的难度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于JAVA下hook技术的代码保护方法流程图;
图2为本发明基于JAVA下hook技术的代码保护系统结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明提供了一种基于JAVA下hook技术的代码保护方法及系统,解决了程序中函数调用易于被逆向发现的问题,将函数调用隐藏在编译为二进制机器指令的动态链接库文件中,从而增加了代码的安全性。
本发明主要利用JAVA中的JAVA本地调用机制,实现对JAVA类方法的hook技术,并应用于应用程序,实现对其代码流程的隐藏和保护。JAVA本地调用机制使JAVA能够与其他语言编写的代码进行交互。因此使得JAVA程序可以调用本地其他语言编写的代码,而如果想将一个方法做为一个本地方法的话,那么必须声明该方法为native的,因此我们基于上述原理,则能够实现对程序中函数调用的隐藏。
本发明提供一种基于JAVA下hook技术的代码保护方法,如图1所示,包括:
S101:待保护程序预处理,对待保护程序进行代码结构分析,获得待保护程序中存在的代码调用;所述待保护程序为源代码或打包的APK文件;
S102:指定要保护的代码调用,并提取类方法的调用关系;
S103:将accessFlags指定的标志信息更改为native本地方法;假设带保护程序类方法为method,则实现动态链接库中将其accessFlags更改为native的方法为:
method = dvmSlotToMethod(class, slot);
SET_METHOD_FLAG(method, ACC_NATIVE);
method->nativeFunc = native_func;
首先使用JAVA反射机制获取method在当前类的Field对象,并得到slot值;然后修改method的acessFlags为ACC_NATIVE;
S104:在动态链接库中自定义nativeFunc,如为p_method,当然还可以由用户任意定制;
S105:将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;如带保护代码为A调用了method,则将method内部代码添加到自定义的p_method中,并将method中的代码用任意无效代码替换;
S106:将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;
S107:输出替换后的待保护程序。如果为源代码,则直接导出源代码程序,如果为APK文件,则导出打包的APK文件。
所述的方法中,还包括:自定义加载器,将实现的类由自定义类加载器托管。
所述的方法中,在输出替换后的待保护程序前,还包括:对自定义的nativeFunc、类方法名及字符串信息加密。通过进行加密保护,是的反编译后也无法直接获取到有用信息。
一种基于JAVA下hook技术的代码保护系统,如图2所示,包括:
预处理模块201,对待保护程序进行代码结构分析,获得待保护程序中存在的代码调用;所述待保护程序为源代码或打包的APK文件;
信息提取模块202,用于指定要保护的代码调用,并提取类方法的调用关系;
标识信息更改模块203,将accessFlags指定的标志信息更改为native本地方法;
替换模块204,用于在动态链接库中自定义nativeFunc;将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;
将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;
输出模块205,用于输出替换后的待保护程序。
所述的系统中,还包括:自定义加载器,将实现的类由自定义类加载器托管。
所述的系统中,在输出替换后的待保护程序前,还包括:对自定义的nativeFunc及字符串信息加密。
本发明方法优势在于,当Dalvik虚拟机在解析执行一个类方法的时候,如果发现方法的标志信息为一个native函数,则会以JNI的方式执行相关的函数代码。本发明利用了这个特性,通过修改类方法的标志信息,让Dalvik虚拟机以JNI的方式执行指定的方法,从而改变JAVA类方法的调用流程。这样在反编译后,无法很容易分析出代码的调用流程,增强了对应用功能的代码流程保护。
本发明提供一种基于JAVA下hook技术的代码保护方法及系统。本发明方法主要利用JNI机制,通过修改类标志信息为native,改变类调用,在动态链接库中自定义nativeFunc;将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;最终输出替换后的待保护程序。发明还相应的提供了对应系统结构。通过本发明的方法,能够将函数的调用隐藏在编译为二进制机器指令的动态链接库文件中,从而大大增加了对其逆向的难度。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
Claims (6)
1.一种基于JAVA下hook技术的代码保护方法,其特征在于,包括:
待保护程序预处理,对待保护程序进行代码结构分析,获得待保护程序中存在的代码调用;所述待保护程序为源代码或打包的APK文件;
指定要保护的代码调用,并提取类方法的调用关系;
将accessFlags指定的标志信息更改为native本地方法;
在动态链接库中自定义nativeFunc;
将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;
将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;
输出替换后的待保护程序。
2.如权利要求1所述的方法,其特征在于,还包括:自定义加载器,将实现的类由自定义类加载器托管。
3.如权利要求1所述的方法,其特征在于,在输出替换后的待保护程序前,还包括:对自定义的nativeFunc、类方法名及字符串信息加密。
4.一种基于JAVA下hook技术的代码保护系统,其特征在于,包括:
预处理模块,对待保护程序进行代码结构分析,获得待保护程序中存在的代码调用;所述待保护程序为源代码或打包的APK文件;
信息提取模块,用于指定要保护的代码调用,并提取类方法的调用关系;
标识信息更改模块,将accessFlags指定的标志信息更改为native本地方法;
替换模块,用于在动态链接库中自定义nativeFunc;将指定要保护的代码调用过程中所调用的类方法代码,添加到自定义的nativeFunc函数代码中,并将指定要保护的代码调用中所调用的类方法代码用任意无效代码替换;
将待保护程序中指定要保护的代码调用中所调用的类方法,替换为动态链接库导出的通用接口函数;
输出模块,用于输出替换后的待保护程序。
5.如权利要求4所述的系统,其特征在于,还包括:自定义加载器,将实现的类由自定义类加载器托管。
6.如权利要求4所述的系统,其特征在于,在输出替换后的待保护程序前,还包括:对自定义的nativeFunc、类方法名及字符串信息加密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310725462.5A CN103902859A (zh) | 2013-12-25 | 2013-12-25 | 基于JAVA下hook技术的代码保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310725462.5A CN103902859A (zh) | 2013-12-25 | 2013-12-25 | 基于JAVA下hook技术的代码保护方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103902859A true CN103902859A (zh) | 2014-07-02 |
Family
ID=50994176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310725462.5A Pending CN103902859A (zh) | 2013-12-25 | 2013-12-25 | 基于JAVA下hook技术的代码保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902859A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227554A (zh) * | 2015-09-29 | 2016-01-06 | 江苏金源锻造股份有限公司 | 一种程控便携式割草机 |
CN105245513A (zh) * | 2015-09-29 | 2016-01-13 | 江苏金源锻造股份有限公司 | 一种用于实现电源控制的机械装置电源电路 |
CN105306196A (zh) * | 2015-09-29 | 2016-02-03 | 江苏金源锻造股份有限公司 | 一种用于机械设备控制系统的硬件加解密装置 |
CN105335151A (zh) * | 2014-08-14 | 2016-02-17 | 优视科技有限公司 | 安装文件的保护方法及装置 |
CN105844150A (zh) * | 2016-03-23 | 2016-08-10 | 青岛海信传媒网络技术有限公司 | 一种应用程序的数据保护方法和装置 |
CN105893860A (zh) * | 2016-05-05 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 关键代码保护方法以及代码生成装置和代码运行装置 |
CN105930744A (zh) * | 2016-04-22 | 2016-09-07 | 北京奇虎科技有限公司 | 一种文件加固方法及装置 |
CN106022098A (zh) * | 2016-05-10 | 2016-10-12 | 青岛海信传媒网络技术有限公司 | 一种应用程序的签名验证方法和装置 |
CN106371940A (zh) * | 2015-07-21 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种程序崩溃解决方法及装置 |
CN107844687A (zh) * | 2017-11-22 | 2018-03-27 | 上海勋立信息科技有限公司 | 一种安卓信息拦截方法及装置 |
CN108427559A (zh) * | 2018-03-14 | 2018-08-21 | 新华三技术有限公司 | 一种脚本文件生成和调用方法以及装置 |
CN108491235A (zh) * | 2018-03-21 | 2018-09-04 | 北京理工大学 | 结合动态加载和函数Native化的DEX保护方法 |
CN109032687A (zh) * | 2018-06-11 | 2018-12-18 | 北京奇艺世纪科技有限公司 | 屏蔽sdk危险调用的方法及装置 |
CN109255235A (zh) * | 2018-09-17 | 2019-01-22 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN109408073A (zh) * | 2018-09-21 | 2019-03-01 | 北京大学 | 一种Android非侵入式应用重打包方法 |
CN109614772A (zh) * | 2018-11-20 | 2019-04-12 | 江苏通付盾信息安全技术有限公司 | 基于应用安装包文件的代码转换方法及装置 |
CN109918872A (zh) * | 2019-01-28 | 2019-06-21 | 中国科学院数据与通信保护研究教育中心 | Android应用加固方法 |
CN109960510A (zh) * | 2019-03-20 | 2019-07-02 | 北京智游网安科技有限公司 | Android应用动态链接库的加固方法及相关设备 |
CN110309630A (zh) * | 2019-06-28 | 2019-10-08 | 南京冰鉴信息科技有限公司 | 一种Java代码加密方法及装置 |
CN111585961A (zh) * | 2020-04-03 | 2020-08-25 | 北京大学 | 一种网页挖矿攻击检测及保护方法和装置 |
CN111752591A (zh) * | 2019-03-27 | 2020-10-09 | 北京奇虎科技有限公司 | 一种加固应用的运行方法和装置以及应用加固方法和装置 |
CN112052459A (zh) * | 2020-08-05 | 2020-12-08 | 北京智游网安科技有限公司 | 一种代码虚拟化加密方法、终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020129337A1 (en) * | 2001-03-08 | 2002-09-12 | International Business Machines Corporation | Debugger probe for object oriented programming |
CN102360412A (zh) * | 2011-09-26 | 2012-02-22 | 飞天诚信科技股份有限公司 | Java源代码的保护方法和系统 |
CN102708322A (zh) * | 2012-05-12 | 2012-10-03 | 北京深思洛克软件技术股份有限公司 | 安卓系统中java应用程序的保护方法 |
CN103136458A (zh) * | 2013-01-21 | 2013-06-05 | 中标软件有限公司 | 一种Linux操作系统的代码保护方法及其模块 |
CN103413075A (zh) * | 2013-07-10 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种通过虚拟机保护java可执行程序的方法及设备 |
CN103413073A (zh) * | 2013-07-09 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种保护java可执行程序的方法及设备 |
-
2013
- 2013-12-25 CN CN201310725462.5A patent/CN103902859A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020129337A1 (en) * | 2001-03-08 | 2002-09-12 | International Business Machines Corporation | Debugger probe for object oriented programming |
CN102360412A (zh) * | 2011-09-26 | 2012-02-22 | 飞天诚信科技股份有限公司 | Java源代码的保护方法和系统 |
CN102708322A (zh) * | 2012-05-12 | 2012-10-03 | 北京深思洛克软件技术股份有限公司 | 安卓系统中java应用程序的保护方法 |
CN103136458A (zh) * | 2013-01-21 | 2013-06-05 | 中标软件有限公司 | 一种Linux操作系统的代码保护方法及其模块 |
CN103413073A (zh) * | 2013-07-09 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种保护java可执行程序的方法及设备 |
CN103413075A (zh) * | 2013-07-10 | 2013-11-27 | 北京深思数盾科技有限公司 | 一种通过虚拟机保护java可执行程序的方法及设备 |
Non-Patent Citations (4)
Title |
---|
WWW.MYEXCEPTION.CN网友: "Android热补丁技术—dexposed原理简析(手机淘宝采取方案)", 《HTTP://WWW.MYEXCEPTION.CN/OPERATING-SYSTEM/2071716.HTML》 * |
WXYYXC1992: "Android Hook框架Xposed原理与源代码分析", 《HTTP://WWW.IT610.COM/ARTICLE/3914199.HTM》 * |
ZIRCONSDU: "How dvm calls native method", 《HTTP://BLOG.CSDN.NET/ZIRCONSDU/ARTICLE/DETAILS/8954887》 * |
王下邀月熊-WXCHEVALIER: "Android Hook框架Xposed原理与源代码分析", 《HTTP://BLOG.CSDN.NET/WXYYXC1992/ARTICLE/DETAILS/17320911》 * |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335151A (zh) * | 2014-08-14 | 2016-02-17 | 优视科技有限公司 | 安装文件的保护方法及装置 |
CN106371940A (zh) * | 2015-07-21 | 2017-02-01 | 腾讯科技(深圳)有限公司 | 一种程序崩溃解决方法及装置 |
CN106371940B (zh) * | 2015-07-21 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种程序崩溃解决方法及装置 |
CN105245513A (zh) * | 2015-09-29 | 2016-01-13 | 江苏金源锻造股份有限公司 | 一种用于实现电源控制的机械装置电源电路 |
CN105306196A (zh) * | 2015-09-29 | 2016-02-03 | 江苏金源锻造股份有限公司 | 一种用于机械设备控制系统的硬件加解密装置 |
CN105227554A (zh) * | 2015-09-29 | 2016-01-06 | 江苏金源锻造股份有限公司 | 一种程控便携式割草机 |
CN105844150A (zh) * | 2016-03-23 | 2016-08-10 | 青岛海信传媒网络技术有限公司 | 一种应用程序的数据保护方法和装置 |
CN105930744A (zh) * | 2016-04-22 | 2016-09-07 | 北京奇虎科技有限公司 | 一种文件加固方法及装置 |
CN105930744B (zh) * | 2016-04-22 | 2019-03-08 | 北京奇虎科技有限公司 | 一种文件加固方法及装置 |
CN105893860A (zh) * | 2016-05-05 | 2016-08-24 | 百度在线网络技术(北京)有限公司 | 关键代码保护方法以及代码生成装置和代码运行装置 |
CN106022098A (zh) * | 2016-05-10 | 2016-10-12 | 青岛海信传媒网络技术有限公司 | 一种应用程序的签名验证方法和装置 |
CN107844687A (zh) * | 2017-11-22 | 2018-03-27 | 上海勋立信息科技有限公司 | 一种安卓信息拦截方法及装置 |
CN107844687B (zh) * | 2017-11-22 | 2021-06-25 | 上海勋立信息科技有限公司 | 一种安卓信息拦截方法及装置 |
CN108427559A (zh) * | 2018-03-14 | 2018-08-21 | 新华三技术有限公司 | 一种脚本文件生成和调用方法以及装置 |
CN108491235A (zh) * | 2018-03-21 | 2018-09-04 | 北京理工大学 | 结合动态加载和函数Native化的DEX保护方法 |
CN108491235B (zh) * | 2018-03-21 | 2021-03-30 | 北京理工大学 | 结合动态加载和函数Native化的DEX保护方法 |
CN109032687A (zh) * | 2018-06-11 | 2018-12-18 | 北京奇艺世纪科技有限公司 | 屏蔽sdk危险调用的方法及装置 |
CN109032687B (zh) * | 2018-06-11 | 2021-09-03 | 北京奇艺世纪科技有限公司 | 屏蔽sdk危险调用的方法及装置 |
CN109255235A (zh) * | 2018-09-17 | 2019-01-22 | 西安电子科技大学 | 基于用户态沙箱的移动应用第三方库隔离方法 |
CN109408073A (zh) * | 2018-09-21 | 2019-03-01 | 北京大学 | 一种Android非侵入式应用重打包方法 |
CN109408073B (zh) * | 2018-09-21 | 2021-10-08 | 北京大学 | 一种Android非侵入式应用重打包方法 |
CN109614772B (zh) * | 2018-11-20 | 2021-02-02 | 江苏通付盾信息安全技术有限公司 | 基于应用安装包文件的代码转换方法及装置 |
CN109614772A (zh) * | 2018-11-20 | 2019-04-12 | 江苏通付盾信息安全技术有限公司 | 基于应用安装包文件的代码转换方法及装置 |
CN109918872A (zh) * | 2019-01-28 | 2019-06-21 | 中国科学院数据与通信保护研究教育中心 | Android应用加固方法 |
CN109960510A (zh) * | 2019-03-20 | 2019-07-02 | 北京智游网安科技有限公司 | Android应用动态链接库的加固方法及相关设备 |
CN109960510B (zh) * | 2019-03-20 | 2022-09-06 | 北京智游网安科技有限公司 | Android应用动态链接库的加固方法及相关设备 |
CN111752591A (zh) * | 2019-03-27 | 2020-10-09 | 北京奇虎科技有限公司 | 一种加固应用的运行方法和装置以及应用加固方法和装置 |
CN110309630A (zh) * | 2019-06-28 | 2019-10-08 | 南京冰鉴信息科技有限公司 | 一种Java代码加密方法及装置 |
CN111585961A (zh) * | 2020-04-03 | 2020-08-25 | 北京大学 | 一种网页挖矿攻击检测及保护方法和装置 |
CN111585961B (zh) * | 2020-04-03 | 2021-08-20 | 北京大学 | 一种网页挖矿攻击检测及保护方法和装置 |
CN112052459A (zh) * | 2020-08-05 | 2020-12-08 | 北京智游网安科技有限公司 | 一种代码虚拟化加密方法、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902859A (zh) | 基于JAVA下hook技术的代码保护方法及系统 | |
EP2962193B1 (en) | Compiler based obfuscation | |
Hoffmann et al. | Slicing droids: program slicing for smali code | |
US8595138B2 (en) | Packaging system for customizing software | |
KR101328012B1 (ko) | 애플리케이션 코드 난독화 장치 및 그 방법 | |
Kim et al. | ScanDal: Static analyzer for detecting privacy leaks in android applications | |
CN105046116B (zh) | Android系统中保护dex文件不被反编译的方法 | |
CN108733988A (zh) | 安卓平台上可执行程序的保护方法 | |
US20170024230A1 (en) | Method, apparatus, and computer-readable medium for ofuscating execution of an application on a virtual machine | |
Lu et al. | DeepAutoD: Research on distributed machine learning oriented scalable mobile communication security unpacking system | |
KR101234591B1 (ko) | Jni를 이용한 안드로이드 난독화 방법 | |
CN101158911A (zh) | .Net程序保护方法及装置 | |
CN112748946B (zh) | 应用程序安装文件生成方法和装置、计算设备、存储介质 | |
CN105303073A (zh) | 软件代码保护方法 | |
CN108399319A (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
CN103116715A (zh) | Windows平台可执行文件API延迟导入保护方法 | |
CN105068853A (zh) | 渠道包的输出方法及装置 | |
Shah et al. | Code obfuscating a Kotlin-based App with Proguard | |
CN111381816A (zh) | 应用程序的获取方法、装置、设备及存储介质 | |
CN103885784A (zh) | 具有安全模块可插拔功能的Android平台构建方法 | |
WO2015058639A1 (zh) | 一种应用程序保护系统和方法 | |
Pizzolotto et al. | Oblive: seamless code obfuscation for java programs and android apps | |
CN104751026A (zh) | 安卓系统的软件保护方法、软件应用方法及相关装置 | |
CN113282294B (zh) | 基于安卓平台Java字符串混淆的方法和装置 | |
Schütte et al. | lios: Lifting ios apps for fun and profit |
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: 20140702 Application publication date: 20140702 |