jar包如何防止反编译_jar包可以反编译成源码吗

jar包如何防止反编译_jar包可以反编译成源码吗方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串)。那么无效的代码又怎么能正确运行呢?答案就是,你要保证你的代码永远不会执行到那一步。我作一个简单的例子说明:我们建立一个项目:packagecom.TestJar;publicclassMain{ publicstaticvoidmain(String[]args){ System.out.println(Info.g…

(待验证)

方法就是,向Jar注入无效代码(不合法的,或者根本不是代码的字符串)。

那么无效的代码又怎么能正确运行呢?

答案就是,你要保证你的代码永远不会执行到那一步。

我作一个简单的例子说明:

我们建立一个项目:

jar包如何防止反编译_jar包可以反编译成源码吗

package com.TestJar;
 
public class Main { 
   
 
	public static void main(String[] args){ 
   
		System.out.println(Info.getMessage());
	}
}
package com.TestJar;
 
public class Info { 
   
 
	public static String getMessage(){ 
   
		return "Hello World!";
	}
	
	private class Invalid{ 
   
		
	}
}

很简单,运行结果是 Hello World!

然后我们将Info类输出Jar

jar包如何防止反编译_jar包可以反编译成源码吗

现在项目改成这样:

jar包如何防止反编译_jar包可以反编译成源码吗

运行结果仍然是 Hello World!

我们用jd-gui反编译看看:

jar包如何防止反编译_jar包可以反编译成源码吗

反编译看得清清楚楚。

我们的私有内部类Invalid在程序中是没有用。

现在,我们向Invalid类注入无效代码。

注入方法很简单,用WinRar之类的解压软件打开,修改,然后保存就行了

打开这个Invalid内部类

jar包如何防止反编译_jar包可以反编译成源码吗

我们将图中所选择的字符’d’删除

jar包如何防止反编译_jar包可以反编译成源码吗

然后保存

jar包如何防止反编译_jar包可以反编译成源码吗

刷新一下,程序仍然运行:Hello World!

jar包如何防止反编译_jar包可以反编译成源码吗

再用jd-gui打开Info.jar

jar包如何防止反编译_jar包可以反编译成源码吗

它反编译到那里就出错了。

注意不能将这个方法运行用Android项目上,Android有另一套规则,它需要把Jar转换成dex的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230865.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • DOS命令大全–具体解释

    DOS命令大全–具体解释

    2021年12月1日
  • 英特尔处理器性能排行2021_intel芯片组天梯图

    英特尔处理器性能排行2021_intel芯片组天梯图用于企业服务站和工作站的电脑硬件要求会比较高,常用的处理器可能会用到英特尔至强xeonCPU处理器。而至强xeon系列的型号有很多,不同的型号的性能也有差异,那么至强cpu哪些比较好呢?下面小编就给大家分享下英特尔2021至强cpu性能排行天梯图,供大家参考。2021至强cpu性能排行天梯图前100名情况如下:(图片来源于网络)以上便是英特尔2021至强cpu性能排行天梯图前100名cpu的情况,大家可以根据自己的需求选择合适的cpu处理器即可。更多有用的系统知识和重.

    2022年9月20日
  • 高级创意,单片机电子DIY制作精华资料汇总「建议收藏」

    高级创意,单片机电子DIY制作精华资料汇总「建议收藏」高级创意,单片机电子DIY制作精华资料汇总今天给大家分享创意小生活,电子DIY制作精华资料汇总,资料有点多,将近400个电子创意,够同学们学习和交作业的了,需要的可以在闯客网技术论坛下载,有问题加群解决:813238832下载链接:https://bbs.usoftchina.com/thread-203642-1-1.html一、温度控制和湿度控制  1.简单实用的恒温控制器 …

    2022年6月23日
  • pyecharts画图_vue 数据可视化

    pyecharts画图_vue 数据可视化Python3的Pyecharts制作**Sunburst(旭日图)**时需要使用的设置参数和常用模板案例,可根据实际情况对案例中的内容进行调整即可。

    2022年9月26日
  • Nginx搭建视频点播和视频直播服务器[通俗易懂]

    Nginx搭建视频点播和视频直播服务器[通俗易懂]Nginx搭建视频点播和视频直播服务器一·、环境:Centos7,(推荐,Ubuntu不是很好用,经常会有一些莫名其妙的报错)Nginx1.10.1二、系统环境搭建首先,我是不建议自己一个个去安装这些软件的,耗时耗力,而且,容易出错,所以,最好使用yuminstall***命令安装,出错的概率小。资源链接:链接:https://pan.baidu.com/s/1WmJYpQ_b…

    2022年6月14日
  • 深刻解读的意思_tdma和cdma区别

    深刻解读的意思_tdma和cdma区别简介  TD-SCDMA——TimeDivision-SynchronousCodeDivisionMultipleAccess(时分同步的码分多址技术)。  TD-SCDMA作为中国提出的第三代移动通信标准(简称3G),自1998年正式向ITU(国际电联)提交以来,已经历经十来年的时间,完成了标准的专家组评估、ITU认可并发布、与3GPP(第三代伙伴项目)体系的融合、新技术特性的…

    2022年9月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号