java 防止反编译_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: ()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: (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: ()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: (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: ()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: (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: ()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: (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

}

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值