最简单的 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 防反编译技巧相关推荐
- 【Unity】防反编译之windows平台加密dll
功能取决于需求,在实现这功能之前,却有一个小小的插曲,有同学认为,并不需要去实现游戏加密,再怎样也会被破解,何必浪费精力.虽然这样说,但是我们所做的加密至少也会增加一点破解成本,不会让我们辛苦写的代码 ...
- 给大家推荐一个.Net的混淆防反编译工具ConfuserEx
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- Java 7 –反编译项目硬币
大家好,该是从2012年开始写作的时候了.正如您在其他博客中可能已经看到的那样,有一些更改可以使您使用Java编程时的开发人员生活变得更加轻松:Diamond运算符,Switchs中的Strings, ...
- java如何编译和反编译,JAVA 如何反编译的自己的程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 JAVA 如何反编译的自己的程序 反编译的工具有好多, 在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎--JAD,其中主要包括:F ...
- 如何在Eclipse 3.3上安装jadclipse[java的反编译工具] 收藏
如何在Eclipse 3.3上安装jadclipse[java的反编译工具] 收藏 jad是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好 找到eclips ...
- Java的反编译工具提供官网下载
今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...
- 【项目实战】Java代码反编译工具的使用 以及 如何对Java代码进行混淆?
一.背景 现在交付给客户的代码,虽然不是以源码的形式交付,但是还经常会需要进行反编译,如何更好的做到反编译呢?本文探讨的是如何进行反编译的方法. 二. Java代码反编译工具的使用 (1)使用jad ...
- python防反编译_用Python和Smali模拟器搞定一个加混淆、防篡改的APK逆向
这个周末我和好友聊天时,他向我求助修改一个他正在编写Python脚本.他试图通过解混淆一个APK,来理解该APK的混淆基址和防篡改保护机制.同我以往的APK逆向过程(dex2jar->jd-gu ...
- Android笔记:防反编译、代码混淆中,解决第三方jar包不被混淆的一些心得,及gson防混淆方法...
为了防止代码被反编译,一般在签名导出前需要对代码进行混淆.最近发现自己的一个项目工程在代码混淆后,使用中出现了异常.以下是自己这几天在解决代码混淆以及引入第三方jar包导致混淆出现的问题处理的一些心得 ...
最新文章
- VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。
- go语言有哪些劣势?
- 【网址收藏】WIN10进入超级管理员账号(Administrator)
- WebIDE Initialization process
- java在集合中的方法变动的类_java中级面试题 之基础篇
- php mysql html 转义字符_php, html, javascript, mysql 之间的特殊字符处理
- Python天天美味(35) - 细品lambda(转)
- ifconfig命令举例
- window.onload和jQuery的ready函数区别
- 小米商城抢购脚本_小米十周年感恩季-816活动攻略
- 20191117每日一句 EVERYBODY DIES, BUT NOT EVERYBODY LIVES
- 0代码实现接口自动化测试-RF框架实践
- python snap7开发手册_python-snap7开发笔记
- 金士顿U盘格式化后不能识别,0字节存储空间
- 正则表达式 Regular Express
- Windows 10免费影音制作下载(Windows Movie Maker 2012)
- composer设置镜像
- NISP一级题库100题
- 希腊字母及对应的英文
- 把音频中的某个人声去掉_能不能把一段音频中的人声和背景音乐分开