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
}
}        
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。