如何防止java程序源代码被反编译出来 如何防止java程序源代码被反编译过

如何防止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代码还是能够很好地防止反编译。

不同保护技术比较希望能给大家带来参考:

延伸阅读

十六进制编辑器如何修改编码

修改原理

修改流程

1、使用反编译查看源码

2、classpy.jar 查看字节码

3、修改字节码

3.1 先修改大于号

3.2 修改 32 为 2100000000

4、反编译class文件查看

到这里就大功告成了,希望对你有帮助

网上有好多都是反编译,然后拷贝到项目下,进行修改。这种只能针对没有混淆源码的class文件。
还有就是用 javassist.jar 包修改的,这种针对混淆源码厉害的,也是无能为力。
下面是我自己的修改方法,在网上找了好多资料才整理出来的。

如何修改jar包里面的.class文件

该过程需要经历四个步骤:解压,反编译,修改,打包。

解压:jar文件和我们平常的rar和zip文件一样是属于压缩文件,通过一般的解压缩工具(例如:winrar)都能解压。解压之后生成的文件为**.class的字节码文件。

反编译:互联网上有很多的字节码文件反编译工具(例如:jad)。

他能够将**.class文件或者直接能够将jar文件反编译为**.java文件。

得到java文件以后就可以修改里面的源代码了。

将修改好的代码编译成**.class字节码文件以后再添加替换掉原来jar包中的class文件,或者重新将修改后的java代码转换成java工程,再生成jar文件都行。这个过程的完成需要熟悉java基础,编译环境等相关知识。尤其是对jar包的理解很重要。

反编译在互连网上就能直接找到很多工具。打包则很简单不做累述。


为您推荐