java防反编译最简单的技巧分享
前言
本文主要跟大家介绍了关于java防反编译的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例代码:
源码使用try-catch代码包装下,如下:
publicclassCompileForbid{ publicstaticvoidmain(String[]args){ try{ System.out.println("-------"); //防止反编译的处理 if(654789==newRandom().nextInt()){ thrownewException("fewt43"); } }catch(Exceptionex){ ex.printStackTrace(); }finally{ try{ //防止反编译的处理 if(654789==newRandom().nextInt()){ thrownewException("fewt43"); } }catch(Exceptionex){ System.out.print(ex); } } } }
使用jd反编译工具翻遍后的效果,别的反编译可能会反编译出来,效果不是很好,但是简单实用
publicclassCompileForbid { //ERROR// publicstaticvoidmain(java.lang.String[]args) { //Bytecode: //0:getstatic16java/lang/System:outLjava/io/PrintStream; //3:ldc22 //5:invokevirtual24java/io/PrintStream:println(Ljava/lang/String;)V //8:ldc30 //10:new31java/util/Random //13:dup //14:invokespecial33java/util/Random:()V //17:invokevirtual34java/util/Random:nextInt()I //20:if_icmpne+90->110 //23:new38java/lang/Exception //26:dup //27:ldc40 //29:invokespecial42java/lang/Exception: (Ljava/lang/String;)V //32:athrow //33:astore_1 //34:aload_1 //35:invokevirtual44java/lang/Exception:printStackTrace()V //38:ldc30 //40:new31java/util/Random //43:dup //44:invokespecial33java/util/Random: ()V //47:invokevirtual34java/util/Random:nextInt()I //50:if_icmpne+93->143 //53:new38java/lang/Exception //56:dup //57:ldc40 //59:invokespecial42java/lang/Exception: (Ljava/lang/String;)V //62:athrow //63:astore_3 //64:getstatic16java/lang/System:outLjava/io/PrintStream; //67:aload_3 //68:invokevirtual47java/io/PrintStream:print(Ljava/lang/Object;)V //71:goto+72->143 //74:astore_2 //75:ldc30 //77:new31java/util/Random //80:dup //81:invokespecial33java/util/Random: ()V //84:invokevirtual34java/util/Random:nextInt()I //87:if_icmpne+21->108 //90:new38java/lang/Exception //93:dup //94:ldc40 //96:invokespecial42java/lang/Exception: (Ljava/lang/String;)V //99:athrow //100:astore_3 //101:getstatic16java/lang/System:outLjava/io/PrintStream; //104:aload_3 //105:invokevirtual47java/io/PrintStream:print(Ljava/lang/Object;)V //108:aload_2 //109:athrow //110:ldc30 //112:new31java/util/Random //115:dup //116:invokespecial33java/util/Random: ()V //119:invokevirtual34java/util/Random:nextInt()I //122:if_icmpne+21->143 //125:new38java/lang/Exception //128:dup //129:ldc40 //131:invokespecial42java/lang/Exception: (Ljava/lang/String;)V //134:athrow //135:astore_3 //136:getstatic16java/lang/System:outLjava/io/PrintStream; //139:aload_3 //140:invokevirtual47java/io/PrintStream:print(Ljava/lang/Object;)V //143:return // //Exceptiontable: //fromtotargettype //03333java/lang/Exception //386363java/lang/Exception //03874finally //75100100java/lang/Exception //110135135java/lang/Exception } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。