首页 > 编程 > Java > 正文

java防反编译最简单的技巧分享

2019-11-26 11:31:52
字体:
来源:转载
供稿:网友

前言

本文主要跟大家介绍了关于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 }}

总结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表