Java项目源码为什么要做代码混淆
楼上只说了其一,没说其二: 混淆器的还有一个作用那就是对代码进行压缩,比如一个j2me程序打完包是400KB,使用混淆器混淆后就被压缩成100KB的文件,这对于手机这种内存空间比较宝贵的设备来说显得尤为必须。
混淆是故意制造混淆代码的行为,即让人难以理解的源代码或机器码。它类似于加密,但机器能够理解代码并能够执行:它。
不需要对源代码混淆。class有这种功能的,在J2ME中混淆是必须的,结果跟你说的一样,不过原理不是你那么走的,混淆以后的class反编译也会让人看不懂,全部变成了a,b,c,d这样的名字。
代码混淆 代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。
混淆的工具很多,最常用的为retroguard.Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译。
如何分析经过混淆后的java代码
1、混淆也只能是对方法名,变量名称进行混淆;内部代码也只能是对字符串进行混淆,以及压缩等。
2、想要看到都能java代码,需要了解编程的基础知识,变量,表达式,程序执行结构,逻辑判断等等。最重要是要学会如何调试代码,慢慢练习,熟练了自然就会了。
3、Java混淆工具也非常多,包括商业的、免费的、开放源代码的。Sun公司也提供了自己的混淆工具。它们大多都是对Class文件进行混淆处理,也有少量工具首先对源代码进行处理,然后再对Class进行处理,这样加大了混淆处理的力度。
4、即使不混淆也不可能100%的反编译。。混淆之后几乎是不可能的,或者代码没什么价值了。
5、混淆的工具很多,最常用的为retroguard.Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译。
6、从理论上来说,如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。
在java中常出现的异常和解决方法?
java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。
异常处理就是捕捉可能在运行时被抛出的异常事件的一项技术。Java通过try-catch-finally的异常处理语句为我们提供了强大的异常处理解决方案。而在另一方面,你也可以使用已经声明的异常事件,如ArithmeticException, NullPointerException等。
你同样可以使用Java7的新功能,以移除重复项。
在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
Java 异常的处理 在 Java 应用程序中,对异常的处理有两种方式:处理异常和声明异常。处理异常:try、catch 和 finally 若要捕获异常,则必须在代码中添加异常处理器块。
javacompile混淆器怎么混淆后的class文件还是可以被反编译出来呢?求高…
1、一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。从研究的角度,浅析如何读懂这种反编译过来的文件。
2、即使不混淆也不可能100%的反编译。。混淆之后几乎是不可能的,或者代码没什么价值了。
3、是的,.class 文件可以反编译成.java文件,在网上就。
4、反编译:下载一个jad 反编译工具jad简单用法 以下假设jad.exe在c:/java目录下 基本用法 Usage: jad [option(s)]直接输入类文件名,且支持通配符,如下所示。
5、选择一款反编译工具即可 JD-GUI JD-GUI 是显示java 源代码 *.class文件的 图形界面工具。可以在这里下载:JD-GUI-DownLoad 下载下来后,打开该工具,直接将jar包 拖拽到 显示窗口即可查看源代码。
6、jd-gui这个工具可以进行反编译的操作。 不过反编译的质量随着混淆的程度而定。特别复杂的代码(如加密算法)反编译一般都有问题。可以建议用 javap -c -p 来看字节码。然后参考jvm指令。
如何保护Java程序
1、自定义的ClassLoader首先找到加密的类,而后进行解密,最后将解密后的类装载到JVM当中。
2、如果Java 包不是封闭的,那么攻击者就可以向包内引入新类并使用该新类来访问您想保护的内容。诸如 java.lang 之类的一些包缺省是封闭的,一些 JVM 也让您封闭自己的包。然而,您最好假定包是不封闭的。
3、排除其中的恶意程序,确保上传的文件是安全的。除了上述措施,还可以采用加密传输、访问权限控制等技术手段来保证文件上传的安全性。这些措施可以有效地防范黑客攻击,保护用户隐私和服务器安全。
java的源代码隐藏问题
Jocky混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修改了其中的代码生成过程,对编译器生成的中间代码进行混淆,最后再生成class文件,这样编译和混淆只需要一个步骤就可以完成。
其实用这种硬编码不能完全屏蔽,在IE工具条中的查看里,有一个选项,源文件。
对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。
你应该通过了解方法的声明去解决你问的这个问题。如果一个方法是该类私有,不允许外部访问,则声明为private方法。如果一个方法允许在同一个包内的类访问,则声明为protected方法。