最简单的 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
  }
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值