java中代码混淆器 javascript代码混淆

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混淆器是做什么的?楼上只说了其一,没说其二: 混淆器的还有一个作用那就是对代码进行压缩,比如一个j2me程序打完包是400KB,使用混淆器混淆后就被压缩成100KB的文件,这对于手机这种内存空间比较宝贵的设备来说显得尤为必须 。
请教,谁会用Java代码混淆器ProGuard4.8混淆器负责把一个软件转成让人看不懂.
【java中代码混淆器 javascript代码混淆】前提是原来的软件正确无误.
当它发现软件中含有不正常的写法,
就会要求先改好, 才能进行混淆.
若强制用'-ignorewarnings' 选项, 可以直接进行混淆,
但出来的结果很可能会有错误, 要自求多福.
什么是Java混淆编译器由于Java程序运行时是动态连接java中代码混淆器的,因此编译成java中代码混淆器的目标文件中包含有符号表, 使得Java程序很轻易被反编译,混淆器可以打乱class文件中的符号信息,使反向工程变得非常困难 。
JAVA 有对源代码进行混淆的混淆器么不需要对源代码混淆 。class有这种功能java中代码混淆器的java中代码混淆器 , 在J2ME中混淆是必须java中代码混淆器的,结果跟java中代码混淆器你说的一样,不过原理不是你那么走的 , 混淆以后的class反编译也会让人看不懂,全部变成java中代码混淆器了a,b,c,d这样的名字 。

推荐阅读