java代码混淆思路,混淆的java如何反编译
java 代码混淆 用什么命令
Jocky的下载和配置
在番禺等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站设计 网站设计制作定制网站制作,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,外贸网站建设,番禺网站建设费用合理。
OperaMasks上的下载链接已经失效,请移步CSDN自行搜索下载
1、下载完成后解压得到名为org.apusic.jocky_1.0.3的文件夹,把这个文件夹放到eclipse根目录的plugins文件夹下(myeclipse和eclipse同理)。
2、重启eclipse,右键一个工程文件,出现Jocky选项说明OK。
3、一般是先进行设置-Jocky Settings,然后进行Jocky Now!。以下是settings界面
Enable Jocky多选框选中
Jocky build file是在项目创建一个xml文件,根据里面的配置进行混淆
Scramble level是进行混淆的代码等级,有none、private、package、protected、public、all,将根据设置对java文件中的相应修饰符修饰的方法代码进行混淆
Target VM是java虚拟机的版本,有1.4和1.5,一般选择1.5
Output directory是输出文件夹,在项目根目录下
点击确认会自动根据项目的设置生成xml文件
4、jocky_build.xml,实际上是一个ant build文件,由系统自动生成,有几处需要说明
pathelement location="bin"/ pathelement location="XXX.jar"/这类标签代表项目编译所需的jar包,由于是自动生成一般不用理睬,如果出现找不到相关的package之类的报错,那么有可能是location路径有问题。如果你安装系统时是用户名设置成了中文名,并且使用了maven,maven的jar包的下载路径设置成了默认${user}/.m2/repository/,那么jocky这里的路径会出现问题,中文名的用户名会乱码或者消失,请修改maven配置xml文件修改下载路径localRepository[自己指定的路径]/localRepository 。
javac destdir="${jocky.output.dir}/bin" target="${target}" encoding="UTF-8" 代码中如果有中文名,必须手动设定编码,默认是没有的。
src path="src"/ 设定源文件的目录,因为有时候我们只想输出src目录下的部分包而不是全部。
JAVA 有对源代码进行混淆的混淆器么
不需要对源代码混淆。class有这种功能的,在J2ME中混淆是必须的,结果跟你说的一样,不过原理不是你那么走的,混淆以后的class反编译也会让人看不懂,全部变成了a,b,c,d这样的名字。
用java实现js混淆器
简单的思路就是把所有的回车空格换行等一应格式全部去掉
然后把所有变量名字全都替换成无任何意义的简单字母和符号
这样可以让大多数人看的很头大了
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代码
混淆代码 是为了防止class文件被反编译用的 但是程序的功能还是正常的 和你正常运行一样
如果连变量名都混淆了,就是说所有有具体意义的英文变量名都用a,b,c,x,y等等来表示,那这是不可能还原的,因为电脑也不可能知道你这个a实际上代表了你的年龄而那个c代表了你老婆的胸围!
但如果只是个事混淆,那网上倒有不少工具可以格式化源代码!自己搜一搜吧!推荐一款编辑器,IntelliJ,很不错,值得一提的是,我用过的众多编辑器中,这款编辑器的代码格式化功能最强大!
求教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如何反编译
本文网址:http://ybzwz.com/article/dsssjjo.html