java防反编译最简单的技巧分享
程序员文章站
2024-02-24 09:10:10
前言
本文主要跟大家介绍了关于java防反编译的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
示例代码:
源码使用try-catch代码...
前言
本文主要跟大家介绍了关于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 } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
上一篇: java的异常与处理机制分析【附面试题】