java代码混淆花指令 代码混淆是什么意思

代码混淆的介绍代码混淆(Obfuscated code)亦称花指令java代码混淆花指令,是将计算机程序的代码java代码混淆花指令,转换成一种功能上等价,但是难于阅读和理解的形式的行为 。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码 。执行代码混淆的程序被称作代码混淆器 。目前已经存在许多种功能各异的代码混淆器 。将代码中的各种元素 , 如变量,函数 , 类的名字改写成无意义的名字 。比如改写成单个字母,或是简短的无意义字母组合 , 甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途 。重写代码中的部分逻辑 , 将其变成功能上等价,但是更难理解的形式 。比如将for循环改写成while循环,将循环改写成递归 , 精简中间变量,等等 。打乱代码的格式 。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等 。代码混淆器也会带来一些问题 。主要的问题包括java代码混淆花指令:被混淆的代码难于理解,因此调试除错也变得困难起来 。开发人员通常需要保留原始的未混淆的代码用于调试 。对于支持反射的语言,代码混淆有可能与反射发生冲突 。代码混淆并不能真正阻止反向工程 , 只能增大其难度 。因此,对于对安全性要求很高的场合,仅仅使用代码混淆并不能保证源代码的安全 。
如何对java的class类进行加密可以使用Virbox Protector Standalone 加壳工具对java的class类进行加密,支持各种开发语言的程序加密 。可防止代码反编译,更安全,更方便
产品简介
Virbox Protector Standalone提供了强大的代码虚拟化、高级混淆与智能压缩技术 , 保护您的程序免受逆向工程和非法修改 。
Virbox Protector Standalone 将被保护的程序代码转换为虚拟机代码,程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆 。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑 。高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析 。应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止.Net、PE 程序的直接反编译 。
特点
多种加密策略:代码虚拟化、高级混淆、智能压缩
性能分析:智能分析引擎,一键分析各个函数模块调用的次数
支持多种开发语言:多种开发语言加壳支持
源码级保护:保护到汇编级别,c#保护IL级别
免费更新:免费版本升级
javaweb项目做混淆的详细步骤混淆的工具很多,最常用的为retroguard.
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候 。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译 。反编译工具有很多种,其中非常强大的一种是 jad 。
为了避免出现这种情况,保护开发者的劳动,又有一种叫做 Java 混淆器的工具被开发出来 。Java 混淆器的作用是对编译好的代码进行混淆,使得其无法被反编译或者反编译后的代码混乱难懂 。Java 混淆器也有很多种,其中比较强大的一种是 RetroGuard(只说比较强大是因为我对其功效还是有些怀疑的) 。
这里我介绍一下 RetroGuard 的使用方法 。
将下载的 .tar.gz 或者 .zip 文件解压 。有用的只有 retroguard.jar 一个文件 , 其它的是源代码和文档 。
RetroGuard 是针对 jar 文件做混淆的 。使用之前需要先配置一下 。可以手工编辑配置文件 , 更好的方法是使用 RetroGuard 提供的 GUI 工具来生成配置文件 。使用方法如下:
java -classpath retroguard.jar;xxx.jar;yyy.zip;... RGgui
然后在 GUI 的 Wizard 中设置各个参数 。上面的 -classpath 中应该列出要混淆的 jar 所依赖的所有的包 。
RGgui 的详细使用方法可以看 RetroGuard 的文档 docs.html 。
配置文件生成后 , 就可以运行 RetroGuard 进行混淆了 。使用方法如下:
java -classpath xxx.jar;yyy.zip;... RetroGuard vvv-unofb.jar vvv.jar vvv.rgs vvv.log
其中 vvv-unofb.jar 是未混淆的 jar 文件,vvv.jar 是混淆后生成的 jar 文件,vvv.rgs 是配置文件,vvv.log 是日志文件 。缺省的配置文件名称为 script.rgs,缺省的日志文件名称为 retroguard.log 。
在生成配置文件时需要注意的是:
1、所有 public 的类名、方法名、变量名应该全部保留 。因为所有设置为 public 的内容代表了整个包对外表现的接口 。若某个内容不想为外界访问,就不应该设置为 public 的 。
2、若包中某个类使用了 java.lang.Class 或者 java.lang.ClassLoader 中的某个方法加载了一个类,若这个类在包外,不需要特别处理;若这个类在包内,则需要保留这个类的类名,否则混淆后会找不到这个类 。
3、在包中的所有调试信息(源文件名、行号、变量/参数信息等等)应全部删除 。
求教Java web项目一般怎样做代码混淆或加密一、java web项目混淆
proguard4.8工具,说是支持war的 , 可混淆过后少了classes目录了,自然成功不了 。网上搜的过程不详说了,最后找着--“J2EE-web工程ProGuard代码混淆07_28” , 网址:
根据提示一步步完成 。
把web项目打成jar包后用proguard进行混淆,然后把混淆过后的class目录替换发布包war中的对应目录,启动运行是正常的 。
主要注意利用proguard生成xxx.pro文件 , 然后手动加工-keep class WebRoot.WEB-INFO.lib.* 等项目中不需要混淆的包和类 。
二、java web项目打成.exe
没找到免费的,这搜到个收费的--Jinstall,试了下功能挺好 ,
可以加密、集成jdk、tomcat,如果数据库是mysql也集成,其他数据库的话要设置数据库的url.
【java代码混淆花指令 代码混淆是什么意思】关于java代码混淆花指令和代码混淆是什么意思的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读