java防反编译最简单的技巧分享
更新时间:2017年09月01日 09:16:14 作者:jijs
这篇文章主要给大家分享了关于java防反编译最简单的技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
前言
本文主要跟大家介绍了关于java防反编译的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例代码:
源码使用try-catch代码包装下,如下:
public class CompileForbid {
public static void main(String[] args) {
try {
System.out.println("-------");
//防止反编译的处理
if (654789 == new Random().nextInt()) {
throw new Exception("fewt43");
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
//防止反编译的处理
if (654789 == new Random().nextInt()) {
throw new Exception("fewt43");
}
} catch (Exception ex) {
System.out.print(ex);
}
}
}
}
使用 jd 反编译工具翻遍后的效果,别的反编译可能会反编译出来,效果不是很好,但是简单实用
public class CompileForbid
{
// ERROR //
public static void main(java.lang.String[] args)
{
// Byte code:
// 0: getstatic 16 java/lang/System:out Ljava/io/PrintStream;
// 3: ldc 22
// 5: invokevirtual 24 java/io/PrintStream:println (Ljava/lang/String;)V
// 8: ldc 30
// 10: new 31 java/util/Random
// 13: dup
// 14: invokespecial 33 java/util/Random:<init> ()V
// 17: invokevirtual 34 java/util/Random:nextInt ()I
// 20: if_icmpne +90 -> 110
// 23: new 38 java/lang/Exception
// 26: dup
// 27: ldc 40
// 29: invokespecial 42 java/lang/Exception:<init> (Ljava/lang/String;)V
// 32: athrow
// 33: astore_1
// 34: aload_1
// 35: invokevirtual 44 java/lang/Exception:printStackTrace ()V
// 38: ldc 30
// 40: new 31 java/util/Random
// 43: dup
// 44: invokespecial 33 java/util/Random:<init> ()V
// 47: invokevirtual 34 java/util/Random:nextInt ()I
// 50: if_icmpne +93 -> 143
// 53: new 38 java/lang/Exception
// 56: dup
// 57: ldc 40
// 59: invokespecial 42 java/lang/Exception:<init> (Ljava/lang/String;)V
// 62: athrow
// 63: astore_3
// 64: getstatic 16 java/lang/System:out Ljava/io/PrintStream;
// 67: aload_3
// 68: invokevirtual 47 java/io/PrintStream:print (Ljava/lang/Object;)V
// 71: goto +72 -> 143
// 74: astore_2
// 75: ldc 30
// 77: new 31 java/util/Random
// 80: dup
// 81: invokespecial 33 java/util/Random:<init> ()V
// 84: invokevirtual 34 java/util/Random:nextInt ()I
// 87: if_icmpne +21 -> 108
// 90: new 38 java/lang/Exception
// 93: dup
// 94: ldc 40
// 96: invokespecial 42 java/lang/Exception:<init> (Ljava/lang/String;)V
// 99: athrow
// 100: astore_3
// 101: getstatic 16 java/lang/System:out Ljava/io/PrintStream;
// 104: aload_3
// 105: invokevirtual 47 java/io/PrintStream:print (Ljava/lang/Object;)V
// 108: aload_2
// 109: athrow
// 110: ldc 30
// 112: new 31 java/util/Random
// 115: dup
// 116: invokespecial 33 java/util/Random:<init> ()V
// 119: invokevirtual 34 java/util/Random:nextInt ()I
// 122: if_icmpne +21 -> 143
// 125: new 38 java/lang/Exception
// 128: dup
// 129: ldc 40
// 131: invokespecial 42 java/lang/Exception:<init> (Ljava/lang/String;)V
// 134: athrow
// 135: astore_3
// 136: getstatic 16 java/lang/System:out Ljava/io/PrintStream;
// 139: aload_3
// 140: invokevirtual 47 java/io/PrintStream:print (Ljava/lang/Object;)V
// 143: return
//
// Exception table:
// from to target type
// 0 33 33 java/lang/Exception
// 38 63 63 java/lang/Exception
// 0 38 74 finally
// 75 100 100 java/lang/Exception
// 110 135 135 java/lang/Exception
}
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
相关文章
IDEA提示 add *** to custom tags问题及解决
文章介绍了如何在文档注释中添加自定义注解(@xxx),并提供了添加和删除注解的方法,总结了个人经验,希望对大家有所帮助2024-12-12
Spring+SpringMVC+Hibernate项目环境搭建的步骤(图文)
这篇文章主要介绍了Spring+SpringMVC+Hibernate项目环境搭建的步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-05-05
使用 Spring AI + Ollama 构建生成式 AI 应用的方法
通过集成SpringBoot和Ollama,本文详细介绍了如何构建生成式AI应用,首先,介绍了AI大模型服务的两种实现方式,选择使用ollama进行部署,随后,通过SpringBoot+SpringAI来实现应用构建,本文为开发者提供了一个实用的指南,帮助他们快速入门生成式AI应用的开发2024-11-11


最新评论