CN102043932A - 一种防止Java程序被反编译的方法 - Google Patents

一种防止Java程序被反编译的方法 Download PDF

Info

Publication number
CN102043932A
CN102043932A CN2010106201538A CN201010620153A CN102043932A CN 102043932 A CN102043932 A CN 102043932A CN 2010106201538 A CN2010106201538 A CN 2010106201538A CN 201010620153 A CN201010620153 A CN 201010620153A CN 102043932 A CN102043932 A CN 102043932A
Authority
CN
China
Prior art keywords
java
virtual machine
java virtual
function
self
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
Application number
CN2010106201538A
Other languages
English (en)
Other versions
CN102043932B (zh
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.)
AVIC No 631 Research Institute
Original Assignee
AVIC No 631 Research Institute
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 AVIC No 631 Research Institute filed Critical AVIC No 631 Research Institute
Priority to CN2010106201538A priority Critical patent/CN102043932B/zh
Publication of CN102043932A publication Critical patent/CN102043932A/zh
Application granted granted Critical
Publication of CN102043932B publication Critical patent/CN102043932B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种防止Java程序被反编译的方法,包括以下步骤:1)对要发布的Java字节码文件进行加密;2)用Java虚拟机工具接口监听它初始化事件;3)为Java虚拟机初始化事件指定Hook函数;4)Java虚拟机初始化完成时自动调用Hook函数,并在的Hook函数中使用Java本地接口将Java虚拟机在生成类对象时调用的函数注册为自定义的代理函数;5)Java虚拟机在生成某个类对象时调用自定义的代理函数,在自定义的代理函数中对加密过的Java字节码文件进行解密处理;6)将解密后的Java字节码文件生成相应的类对象后返回给Java虚拟机。本发明解决了现有的技术中阻止对Java字节码文件进行反编译的方法应用范围局限的技术问题,本发明保持了Java程序的跨平台特性、保持了Java虚拟机的通用性。

Description

一种防止Java程序被反编译的方法
技术领域
本发明是用于阻止对Java字节码文件进行反编译以获取Java程序源代码,即用于Java程序的保护。
背景技术
Java是一种跨平台的、解释型语言。Java编译工具将Java源代码被编译成为Java字节码文件,由Java虚拟机负责对Java字节码文件进行解释执行。与本地目标代码不同,Java字节码文件中仍然保留了方法名称、变量名称,并且通过这些名称来访问变量和方法,这些符号往往带有许多语义信息。因此,对Java字节码文件进行反编译就显得比较容易。有许多Java的反编译工具都能够从Java字节码文件生成高质量的源代码。为阻止对Java字节码文件进行反编译,目前主要采用的有以下几种方法:
(1)隔离Java程序:是指将关键的Java字节码文件放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Java字节码文件。这样黑客就无法反编译Java字节码文件。但是对于单机运行的程序是无法采用这种方法进行隔离的。
(2)字节码混淆:主要是通过将定义的类、变量、方法和包的名字改为无意义的字符串、使用非法的字符代替变量符号和在软件中添加一些无关的指令或永远执行不到的指令等手段来增加反编译和对反编译后源代码阅读的难度。但这种方法并不能真正阻止反编译,而且混淆都有一定的规律可循,如果掌握这些规律,在反编译时仍然可以得到一定质量的源代码。
(3)转换本地代码:即将Java程序像C/C++程序一样编译成本机可执行的二进制代码。但是这样做使得Java程序失去其跨平台的特性,而且这种技术目前并不十分成熟,因此不适用于大型应用程序。
(4)自定义类加载器:是指首先将Java字节码文件进行加密处理,然后自已编写一个Java类装载器在Java字节码文件装载时再进行解密处理。这种方法的缺点在于虽然经过加密的Java字节码文件无法被反编译,但自定义的类加载器本身却不能防止被反编译。因此,加密过的Java字节码文件仍然是不安全的。
发明内容
为了解决现有的技术中阻止对Java字节码文件进行反编译的方法应用范围局限、不能从根本上杜绝Java字节码文件被反编译的技术问题,本发明提供一种防止Java程序被反编译的方法。
本发明的技术解决方案:
一种防止Java程序被反编译的方法,其特殊之处在于:包括以下步骤:
1】采用加密算法对要发布的Java字节码文件进行加密;
2】采用Java虚拟机工具接口监听Java虚拟机初始化事件;
3】采用Java虚拟机工具接口为步骤2】中Java虚拟机监听到的Java虚拟机初始化事件指定Hook函数;
4】Java虚拟机初始化完成时自动调用相应的Hook函数,并在的Hook函数中使用Java本地接口将Java虚拟机在生成类对象时调用的函数注册为自定义的代理函数;
5】Java虚拟机在生成某个类对象时调用相应的自定义的代理函数,在自定义的代理函数中对在步骤1】中加密过的Java字节码文件进行解密处理;
6】将解密后的Java字节码文件生成相应的类对象后返回给Java虚拟机。
上述步骤4】中所述Java虚拟机在生成类对象时调用的函数是函数java.lang.ClassLoader.defineclass1。
本发明所具有的优点:
1、保持了Java程序的跨平台特性:Java虚拟机工具接口和Java本地接口是Java虚拟机提供的机制,在所有支持Java虚拟机的平台上都可以应用本方法。
2、保持了Java虚拟机的通用性:不需要修改源代码重新生成Java虚拟机。
3、解密过程对用户透明:解密过程被嵌入到了Java虚拟机的类装载过程中,不保存解密后的Java字节码文件。
4、保证了解密过程的安全性:使用Java虚拟机工具接口和Java本地接口编写的程序(包括解密程序)全部编译为本机可执行的二进制代码。
附图说明
图1为本发明中与java虚拟机工具接口进行交互的时序图;
图2为Java虚拟机的初始化过程:
其中图a为现有的Java虚拟机的初始化过程;图b为使用本发明方法时Java虚拟机的初始化过程;
图3为Java虚拟机加载Java字节码的过程:
其中图a为不使用本发明方法时Java虚拟机加载Java字节码的过程;图b为使用本发明方法后Java虚拟机加载Java字节码的过程;
图4是Java反编译软件对Java字节码文件的处理结果:
其中图a为Java反编译软件对没有经过本发明方法加密的Java字节码文件的处理结果;图b为Java反编译软件对经本分明方法加密的Java字节码文件的处理结果。
具体实施方式
本发明的目的是提供一种在保持Java跨平台特性和不修改Java虚拟机基础上的能够将解密过程嵌入到Java虚拟机的类装载过程中的方法。这种方法使解密过程对Java软件的使用者完全透明,且Java程序的使用者无法得到解密后的Java字节码文件。本方法的目的是通过下述的步骤实现的:
1】使用加密算法对要发布的Java字节码文件进行加密。
2】使用Java虚拟机工具接口监听Java虚拟机初始化事件。
3】使用Java虚拟机工具接口为第1步中监听到的Java虚拟机初始化事件指定Hook函数。这样在Java虚拟机初始化完成时会自动调用该Hook函数。
4】在第3步指定的Hook函数中使用Java本地接口将Java虚拟机在生成类对象时必然会调用的函数注册为自定义的一个代理函数,当Java虚拟机在生成某个类的对象时,它会调用自定义的代理函数。
5】在第4步中注册的代理函数中对在第1步中加密过的Java字节码文件进行解密处理。
6】将解密后的Java字节码文件生成相应的类对象后返回给Java虚拟机。
本方法的关键点是第4步中如何确定Java虚拟机在生成类对象时必然会调用的函数。通过对Java虚拟机源代码的分析可知:加载用户自定义类的加载器为AppClassLoader,AppClassLoader继承于URLClassLoader,URLClassLoader继承于SecureClassLoader,SecureClassLoader继承于ClassLoader。在ClassLoader中生成类对象的函数中除defineclass0和defineclass2外其他都必须调用defineclassl,经大量测试(即向Java虚拟机输入大量的Java字节码文件,然后分别在这三个函数中读取这些Java字节码文件)表明:在defineclass0中无法得到任何的Java字节码文件;在defineclass2中能够得到极少数,只有在defineclassl中能够得到所有输入的Java字节码文件。综合对源代码的分析及测试数据可以得出结论:defineclassl是Java虚拟机在生成类对象时必然会调用的函数。
实施例:
在保持Java跨平台特性和不修改Java虚拟机基础上的能够将解密过程嵌入到Java虚拟机的类装载过程中的方法。
(1)创建一个动态链接库项目。
(2)将Java虚拟机提供的Java虚拟机工具接口和Java本地接口相关的支持头文件引入到第1步中建立的项目里。
(3)在第1步中建立的项目里创建名为Agent_OnLoad的函数,在该函数中通过GetEnv函数获取Java虚拟机工具接口环境。
(4)通过jvmti接口函数向Java虚拟机预定VMInit事件的通知,并设置VMInit事件的回调函数。
(5)在第4步中创建的回调函数中利用jni接口将自定义的本地代理方法注册到JVM的类对象生成方法(java.lang.ClassLoader.defineclassl)上。
(6)完成自定义的本地代理函数,在该函数中实现对字节码的解密。
(7)调用java.dll中的接口函数将解密后的字节码转换为Class对象并将这个对象作为Agent_OnLoad函数的返回值返回给Java虚拟机。
(8)构建第1步中建立的项目生成动态链接库。
实施例(假设在上述第8步中生成的动态链接库的名称为agentlib.dll):
WEB应用程序:假设用户的Java Web Server为Tomcat,平台为Windows,Tomcat的存放目录为C:\Tomcat 5.5,agentlib.dll存放在c:\windows目录中,在Tomcat的bin目录中新建一个文件setenv.bat,setenv.bat中的内容:setJAVA_OPTS=-agentlib:c:\windows\agentlib%JAVA_OPTS%,保存setenv.bat文件,重新启动Tomcat后就可以正确加载加密类了。
独立的Java应用程序:Test.class文件的package为com.test,在运行Test.class或Jar时使用以下方式:java-agentlib:<agentlib.dll的存放目录>\agentlib<-classpath jar文件>com.test.Test。这样就可以运行加密过的Test.class文件了。
Eclipse插件:将加密过的插件放到Eclipse平台的pluging目录下。打开Eclipse目录下的eclipse.ini文件,在“-vmargs”的下一行添加如下内容“-agentlib:<agentlib.dll的存放目录>\agentlib”,保存eclipse.ini文件,重新启动Eclipse平台后就可以运行加密过的插件了。

Claims (2)

1.一种防止Java程序被反编译的方法,其特征在于:包括以下步骤:
1】采用加密算法对要发布的Java字节码文件进行加密;
2】采用Java虚拟机工具接口监听Java虚拟机初始化事件;
3】采用Java虚拟机工具接口为步骤2】中Java虚拟机监听到的Java虚拟机初始化事件指定Hook函数;
4】Java虚拟机初始化完成时自动调用相应的Hook函数,并在的Hook函数中使用Java本地接口将Java虚拟机在生成类对象时调用的函数注册为自定义的代理函数;
5】Java虚拟机在生成某个类对象时调用相应的自定义的代理函数,在自定义的代理函数中对在步骤1】中加密过的Java字节码文件进行解密处理;
6】将解密后的Java字节码文件生成相应的类对象后返回给Java虚拟机。
2.根据权利要求1所述的防止Java程序被反编译的方法,其特征在于:包括以下步骤:所述步骤4】中所述Java虚拟机在生成类对象时调用的函数是函数java.lang.ClassLoader.defineclass 1。
CN2010106201538A 2010-12-31 2010-12-31 一种防止Java程序被反编译的方法 Active CN102043932B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010106201538A CN102043932B (zh) 2010-12-31 2010-12-31 一种防止Java程序被反编译的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010106201538A CN102043932B (zh) 2010-12-31 2010-12-31 一种防止Java程序被反编译的方法

Publications (2)

Publication Number Publication Date
CN102043932A true CN102043932A (zh) 2011-05-04
CN102043932B CN102043932B (zh) 2012-07-18

Family

ID=43910065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010106201538A Active CN102043932B (zh) 2010-12-31 2010-12-31 一种防止Java程序被反编译的方法

Country Status (1)

Country Link
CN (1) CN102043932B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360412A (zh) * 2011-09-26 2012-02-22 飞天诚信科技股份有限公司 Java源代码的保护方法和系统
CN103065081A (zh) * 2013-01-11 2013-04-24 北京搜狐新媒体信息技术有限公司 一种PaaS平台的安全运行方法和PaaS平台
CN103093136A (zh) * 2012-12-27 2013-05-08 飞天诚信科技股份有限公司 一种java应用访问智能密钥装置的方法
CN103218549A (zh) * 2012-01-19 2013-07-24 阿里巴巴集团控股有限公司 一种Java源代码加解密的方法及装置
CN103218551A (zh) * 2013-05-03 2013-07-24 飞天诚信科技股份有限公司 一种保护java程序的方法
CN103413074A (zh) * 2013-07-08 2013-11-27 北京深思数盾科技有限公司 一种通过api实现软件保护的方法和装置
CN103745141A (zh) * 2013-12-02 2014-04-23 上海斐讯数据通信技术有限公司 智能终端android系统中防止应用程序反编译的方法
CN104200137A (zh) * 2014-09-04 2014-12-10 成都卫士通信息产业股份有限公司 一种保护java程序自身安全的方法
CN106203120A (zh) * 2016-07-15 2016-12-07 北京邮电大学 一种针对Android加固应用的多点Hook逆向方法
CN106845169A (zh) * 2016-12-26 2017-06-13 北京握奇智能科技有限公司 一种Jar包加固方法及系统
CN106933610A (zh) * 2015-12-30 2017-07-07 北京金山安全软件有限公司 一种应用程序安装包生成方法、装置及电子设备
CN107122631A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 一种脚本文件的透明加密方法和装置
CN107832058A (zh) * 2017-10-31 2018-03-23 北京小米移动软件有限公司 数据处理方法及装置
CN108304158A (zh) * 2016-08-24 2018-07-20 北京花甲科技有限公司 一种动态库的代理方法及设备
CN108898007A (zh) * 2018-06-26 2018-11-27 焦点科技股份有限公司 一种基于JavaAgent和dll增强Java分发软件的安全方法
CN109426703A (zh) * 2017-08-30 2019-03-05 武汉斗鱼网络科技有限公司 一种ios平台上对核心代码的保护方法和装置
CN109460640A (zh) * 2018-11-13 2019-03-12 杭州涂鸦信息技术有限公司 一种Java程序保护方法、装置、设备及可读存储介质
CN109784007A (zh) * 2018-12-04 2019-05-21 厦门中控智慧信息技术有限公司 一种字节码加密的方法、字节码解密的方法及终端
CN110059455A (zh) * 2019-04-09 2019-07-26 北京迈格威科技有限公司 代码加密方法、装置、电子设备和计算机可读存储介质
CN110597496A (zh) * 2019-09-10 2019-12-20 腾讯科技(深圳)有限公司 应用程序的字节码文件获取方法及装置
CN112685049A (zh) * 2021-01-22 2021-04-20 大连高德瑞信科技有限公司 一种java字节码编译方法
CN112764827A (zh) * 2020-12-31 2021-05-07 重庆广播电视大学重庆工商职业学院 一种具有安全验证的Java类热加载方法
CN113094665A (zh) * 2021-04-09 2021-07-09 每日互动股份有限公司 一种防止java程序被反编译的系统
CN113094666A (zh) * 2021-04-09 2021-07-09 每日互动股份有限公司 一种防止java程序被反编译的系统
CN117828555A (zh) * 2024-03-05 2024-04-05 山东浪潮科学研究院有限公司 一种低成本Java源代码保护方法及装置
CN117932648A (zh) * 2024-03-20 2024-04-26 厦门星纵数字科技有限公司 一种字节码保护方法、终端设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797263A (zh) * 2004-12-27 2006-07-05 胡敏 变换指令存储加密技术
WO2006134304A2 (fr) * 2005-06-14 2006-12-21 France Telecom Procede de protection d'un code-source en langage semi-interprete
JP2007172526A (ja) * 2005-12-26 2007-07-05 Nippon Computer Co Ltd 情報処理システム、情報処理方法
CN101814124A (zh) * 2010-04-20 2010-08-25 浪潮电子信息产业股份有限公司 一种基于Java的软件安全性加强的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797263A (zh) * 2004-12-27 2006-07-05 胡敏 变换指令存储加密技术
WO2006134304A2 (fr) * 2005-06-14 2006-12-21 France Telecom Procede de protection d'un code-source en langage semi-interprete
JP2007172526A (ja) * 2005-12-26 2007-07-05 Nippon Computer Co Ltd 情報処理システム、情報処理方法
CN101814124A (zh) * 2010-04-20 2010-08-25 浪潮电子信息产业股份有限公司 一种基于Java的软件安全性加强的方法

Cited By (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013044709A1 (zh) * 2011-09-26 2013-04-04 飞天诚信科技股份有限公司 Java源代码的保护方法和系统
CN102360412A (zh) * 2011-09-26 2012-02-22 飞天诚信科技股份有限公司 Java源代码的保护方法和系统
US9443064B2 (en) 2011-09-26 2016-09-13 Feitian Technologies Co., Ltd. Protecting method and system of java source code
CN102360412B (zh) * 2011-09-26 2014-07-02 飞天诚信科技股份有限公司 Java源代码的保护方法和系统
CN103218549A (zh) * 2012-01-19 2013-07-24 阿里巴巴集团控股有限公司 一种Java源代码加解密的方法及装置
CN103218549B (zh) * 2012-01-19 2015-11-25 阿里巴巴集团控股有限公司 一种Java源代码加解密的方法及装置
CN103093136B (zh) * 2012-12-27 2015-05-27 飞天诚信科技股份有限公司 一种java应用访问智能密钥装置的方法
CN103093136A (zh) * 2012-12-27 2013-05-08 飞天诚信科技股份有限公司 一种java应用访问智能密钥装置的方法
CN103065081A (zh) * 2013-01-11 2013-04-24 北京搜狐新媒体信息技术有限公司 一种PaaS平台的安全运行方法和PaaS平台
CN103065081B (zh) * 2013-01-11 2015-10-21 北京搜狐新媒体信息技术有限公司 一种PaaS平台的安全运行方法和PaaS平台
US9665730B2 (en) 2013-05-03 2017-05-30 Feitian Technologies Co., Ltd. Method for protecting java program
CN103218551A (zh) * 2013-05-03 2013-07-24 飞天诚信科技股份有限公司 一种保护java程序的方法
WO2014176950A1 (zh) * 2013-05-03 2014-11-06 飞天诚信科技股份有限公司 一种保护java程序的方法
CN103218551B (zh) * 2013-05-03 2016-04-06 飞天诚信科技股份有限公司 一种保护java程序的方法
CN103413074B (zh) * 2013-07-08 2016-03-16 北京深思数盾科技有限公司 一种通过api实现软件保护的方法和装置
CN103413074A (zh) * 2013-07-08 2013-11-27 北京深思数盾科技有限公司 一种通过api实现软件保护的方法和装置
CN103745141A (zh) * 2013-12-02 2014-04-23 上海斐讯数据通信技术有限公司 智能终端android系统中防止应用程序反编译的方法
CN104200137A (zh) * 2014-09-04 2014-12-10 成都卫士通信息产业股份有限公司 一种保护java程序自身安全的方法
CN106933610A (zh) * 2015-12-30 2017-07-07 北京金山安全软件有限公司 一种应用程序安装包生成方法、装置及电子设备
CN106203120A (zh) * 2016-07-15 2016-12-07 北京邮电大学 一种针对Android加固应用的多点Hook逆向方法
CN106203120B (zh) * 2016-07-15 2019-03-05 北京邮电大学 一种针对Android加固应用的多点Hook逆向方法
CN108304158A (zh) * 2016-08-24 2018-07-20 北京花甲科技有限公司 一种动态库的代理方法及设备
CN106845169A (zh) * 2016-12-26 2017-06-13 北京握奇智能科技有限公司 一种Jar包加固方法及系统
CN106845169B (zh) * 2016-12-26 2023-04-07 北京握奇智能科技有限公司 一种Jar包加固方法及系统
CN107122631A (zh) * 2017-04-26 2017-09-01 北京洋浦伟业科技发展有限公司 一种脚本文件的透明加密方法和装置
CN109426703B (zh) * 2017-08-30 2023-11-24 喀斯玛汇智(无锡)科技有限公司 一种ios平台上对核心代码的保护方法和装置
CN109426703A (zh) * 2017-08-30 2019-03-05 武汉斗鱼网络科技有限公司 一种ios平台上对核心代码的保护方法和装置
CN107832058A (zh) * 2017-10-31 2018-03-23 北京小米移动软件有限公司 数据处理方法及装置
CN108898007A (zh) * 2018-06-26 2018-11-27 焦点科技股份有限公司 一种基于JavaAgent和dll增强Java分发软件的安全方法
CN109460640A (zh) * 2018-11-13 2019-03-12 杭州涂鸦信息技术有限公司 一种Java程序保护方法、装置、设备及可读存储介质
CN109784007A (zh) * 2018-12-04 2019-05-21 厦门中控智慧信息技术有限公司 一种字节码加密的方法、字节码解密的方法及终端
CN109784007B (zh) * 2018-12-04 2021-03-12 厦门熵基科技有限公司 一种字节码加密的方法、字节码解密的方法及终端
CN110059455A (zh) * 2019-04-09 2019-07-26 北京迈格威科技有限公司 代码加密方法、装置、电子设备和计算机可读存储介质
CN110597496B (zh) * 2019-09-10 2021-09-24 腾讯科技(深圳)有限公司 应用程序的字节码文件获取方法及装置
CN110597496A (zh) * 2019-09-10 2019-12-20 腾讯科技(深圳)有限公司 应用程序的字节码文件获取方法及装置
CN112764827A (zh) * 2020-12-31 2021-05-07 重庆广播电视大学重庆工商职业学院 一种具有安全验证的Java类热加载方法
CN112764827B (zh) * 2020-12-31 2023-04-07 重庆广播电视大学重庆工商职业学院 一种具有安全验证的Java类热加载方法
CN112685049A (zh) * 2021-01-22 2021-04-20 大连高德瑞信科技有限公司 一种java字节码编译方法
CN112685049B (zh) * 2021-01-22 2024-02-13 大连高德瑞信科技有限公司 一种java字节码编译方法
CN113094665A (zh) * 2021-04-09 2021-07-09 每日互动股份有限公司 一种防止java程序被反编译的系统
CN113094666A (zh) * 2021-04-09 2021-07-09 每日互动股份有限公司 一种防止java程序被反编译的系统
CN113094666B (zh) * 2021-04-09 2022-06-24 每日互动股份有限公司 一种防止java程序被反编译的系统
CN117828555A (zh) * 2024-03-05 2024-04-05 山东浪潮科学研究院有限公司 一种低成本Java源代码保护方法及装置
CN117828555B (zh) * 2024-03-05 2024-05-28 山东浪潮科学研究院有限公司 一种低成本Java源代码保护方法及装置
CN117932648A (zh) * 2024-03-20 2024-04-26 厦门星纵数字科技有限公司 一种字节码保护方法、终端设备及存储介质
CN117932648B (zh) * 2024-03-20 2024-06-04 厦门星纵数字科技有限公司 一种字节码保护方法、终端设备及存储介质

Also Published As

Publication number Publication date
CN102043932B (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102043932B (zh) 一种防止Java程序被反编译的方法
US10853270B2 (en) Cryptographic pointer address encoding
KR101471589B1 (ko) 공통중간언어 기반 프로그램을 위한 보안 제공 방법
US9213826B2 (en) System and method to protect Java bytecode code against static and dynamic attacks within hostile execution environments
CN102831342B (zh) 一种提高安卓系统中应用程序保护强度的方法
CN103914637B (zh) 一种安卓平台的可执行程序加密方法
CN103413076B (zh) 一种Android应用程序分块保护的方法
US20180129794A1 (en) Method for Protecting Dex File from Decompilation in Android System
WO2013170724A1 (zh) 安卓系统中java应用程序的保护方法
CN103745141A (zh) 智能终端android系统中防止应用程序反编译的方法
CN105022936A (zh) 一种类class文件加密解密方法和装置
CN101957903A (zh) 一种保护类文件的方法和装置
CN112052433B (zh) 一种Jar文件的虚拟化保护方法、终端及存储介质
CN110309630B (zh) 一种Java代码加密方法及装置
CN103116715A (zh) Windows平台可执行文件API延迟导入保护方法
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
CN103971034A (zh) 一种保护Java软件的方法及装置
CN109840400B (zh) 提供安全性的设备和方法以及针对通用中间语言执行安全性的设备和方法
von Styp-Rekowsky et al. Idea: Callee-site rewriting of sealed system libraries
CN108170433A (zh) 一种Java代码的混淆方法、恢复方法及其装置
JP2013045277A (ja) プログラム難読化方法およびリモートデバッグシステム
CN110109717A (zh) 一种安卓插件的加载控制方法、装置和计算机设备
JP2011204105A (ja) スクリプト起動プログラム、スクリプト起動プログラムの生成プログラム、およびプログラムセット
Jiang et al. A code protection scheme via inline hooking for Android applications
Haoliang et al. The Design and Implementation on the Android Application Protection System

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