十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
楼上只说了其一,没说其二: 混淆器的还有一个作用那就是对代码进行压缩,比如一个j2me程序打完包是400KB,使用混淆器混淆后就被压缩成100KB的文件,这对于手机这种内存空间比较宝贵的设备来说显得尤为必须。
目前成都创新互联公司已为数千家的企业提供了网站建设、域名、网页空间、成都网站托管、企业网站设计、五常网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
混淆也只能是对方法名,变量名称进行混淆;内部代码也只能是对字符串进行混淆,以及压缩等。
不需要对源代码混淆。class有这种功能的,在J2ME中混淆是必须的,结果跟你说的一样,不过原理不是你那么走的,混淆以后的class反编译也会让人看不懂,全部变成了a,b,c,d这样的名字。
ProGuard是一款免费的Java类文件压缩器、优化器和混淆器。它能发现并删除无用类、字段(field)、方法和属性值(attribute)。它也能优化字节码并删除无用的指令。最后,它使用简单无意义的名字来重命名你的类名、字段名和方法名。
DashO Pro 是由Preemptive Solutions开发的商业化的混淆器. 免费的评估版可以到http://下载。DashO Pro代码保护能力强大易用,方便灵活(商业软件,非开源)。
楼上只说了其一,没说其二: 混淆器的还有一个作用那就是对代码进行压缩,比如一个j2me程序打完包是400KB,使用混淆器混淆后就被压缩成100KB的文件,这对于手机这种内存空间比较宝贵的设备来说显得尤为必须。
不需要对源代码混淆。class有这种功能的,在J2ME中混淆是必须的,结果跟你说的一样,不过原理不是你那么走的,混淆以后的class反编译也会让人看不懂,全部变成了a,b,c,d这样的名字。
其中 vvv-unofb.jar 是未混淆的 jar 文件,vvv.jar 是混淆后生成的 jar 文件,vvv.rgs 是配置文件,vvv.log 是日志文件。缺省的配置文件名称为 script.rgs,缺省的日志文件名称为 retroguard.log。
代码混淆 代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。
图 Java程序的代码混淆过程 经过混淆的代码在功能上是没有变化的,但是去掉了部分名称中的语义信息。因为种种限制,这类混淆也不可能对所有的名称都进行替换。
混淆也只能是对方法名,变量名称进行混淆;内部代码也只能是对字符串进行混淆,以及压缩等。
Java混淆工具也非常多,包括商业的、免费的、开放源代码的。Sun公司也提供了自己的混淆工具。它们大多都是对Class文件进行混淆处理,也有少量工具首先对源代码进行处理,然后再对Class进行处理,这样加大了混淆处理的力度。
想要看到都能java代码,需要了解编程的基础知识,变量,表达式,程序执行结构,逻辑判断等等。最重要是要学会如何调试代码,慢慢练习,熟练了自然就会了。
项目发布之前混淆是必不可少的工作,混淆可以增加别人反编译阅读代码的难度,还可以缩小APK包。
混淆的工具很多,最常用的为retroguard.Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译。