java代码禁止反编译 java防止反编译工具

有哪些防止反编译 Java 类库 jar 文件的办法java本就是开源的,你加密感觉怪怪的 。
想防止反编译,最简单的方法就是你可以向Jar注入无效代码 。比如建一个类,建一个没有意义的方法private class Invalid{ },然后输出为jar 。用解压缩软件打开这个jar,以文本方式找到那个类的class,然后将那个方法名的一个字母删掉,然后更新入压缩文件中 。用jd-gui反编译提示错误 。这种方式不能用于android中 。
还有种方法就是混淆代码,加密class和高级加密class,方式比较复杂,可以自行百度 。
怎么防止Java开发出来的程序被别人反编译防止Java开发出来的程序被别人反编译有很多种方法,下面给你介绍几种:
1、隔离Java程序
最简单的方法就是让用户不能够访问到Java Class程序 , 这种方法是最根本的方法,具体实现有多种方式 。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件 。这样黑客就没有办法反编译Class文件 。目前 , 通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等 。但是有很多应用都不适合这种保护方式 , 例如对于单机运行的程序就无法隔离Java程序 。
2、对Class文件进行加密
为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密 , 例如对注册码、序列号管理相关的类等 。在使用这些被加密的类之前,程序首先需要对这些类进行解密 , 而后再将这些类装载到JVM当中 。这些类的解密可以由硬件完成,也可以使用软件完成 。
3、转换成本地代码
将程序转换成本地代码也是一种防止反编译的有效方法 。因为本地代码往往难以被反编译 。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换 。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用 。
4、代码混淆
代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义) 。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的 , 因此反编译人员很难得出程序的真正语义 。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具 。但是从实际情况来看 , 由于混淆技术的多元化发展 , 混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译 。
不同保护技术比较希望能给大家带来参考:
如何防止java文件被反编译无法防止 。.class文件的标准是公开的,无法防止别人反编译你的代码 。
你顶多可以用代码扰乱工具扰乱你的代码,这样反编译的代码就难以阅读 。比如可以试试用proguard来扰乱(“加密”)和反扰乱(“解密”)你的代码 。
【java代码禁止反编译 java防止反编译工具】但是java有那么多很不错的代码阅读分析工具 , 即使你用了扰乱器,也不能保证代码的安全 。
如何防止JAVA程序源代码被反编译我们都知道JAVA是一种解析型语言,这就决定JAVA文件编译后不是机器码,而是一个字节码文件,也就是CLASS文件 。而这样的文件是存在规律的,经过反编译工具是可以还原回来的 。例如Decafe、FrontEnd,YingJAD和Jode等等软件 。下面是《Nokia中Short数组转换算法》
类中Main函数的ByteCode:0 ldc #162 invokestatic #185 astore_16 return其源代码是:short [] pixels = parseImage("/ef1s.png");

推荐阅读