网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.软件开发规范.
.JAVA正则表达式4种常用功能.
.Eclipse Forms设计漂亮UI之高级组.
.Javascript实例教程(7) 利用Java.
.Java入门:Java多线程程序设计详.
.java.util包.
.kjava安全技术文档草案.
.实现游戏中的简单打字功能.
.Java中的父子关系及inverse详解.
.Size 属性.
.新建eclipse(roller2.1.1)工程.
.构建器的调用顺序.
.英文打字练习.
.java线程简介(线程的生命).
.Eclipse3.0配置SQLExplorer数据库.
.在 WAS 中使用 Java 安全套接字扩.
.1100行代码设计一个线程池.
.小议如何在Applet中显示图象.
.Java进阶学习:jar打包详解.
.ThreadLocal的设计与使用.

关于扰乱器与反编译

发表日期:2008-1-5



  作者:icelight

以下摘录于Delphibbs中Dr.yysun 的回答,希望对你有帮助

用 Java 编程的人, 假如不想公开源程序, 就得与反编译器作斗争,
必须使用反编译器,先看看别人将会如何看你的程序,再看看Obfuscators(扰乱器)的效果.

JAD 是 Windows 下效果极佳的反编译器 http://www.geocities.com/SiliconValley/Bridge/8617/jad.Html
围绕这个引擎, 有很多图形界面, 例如 FrontEnd. (我常用)

JODE 是免费的 Java 反编译器和优化器.
http://jode.sourceforge.net/

Intr@byte 是个 JBuilder 的外挂工具 (OpenTool), 使得您在 JB 中能打开 *.class
http://www.webappcabaret.com/bjb/index.jsp
它也使用 JAD 引擎, 并限制为只反编译器类的定义部分.

有些网站可以帮您反编译, 您给个 URL, 它分析出其中有多少个 applet,
然后, 再反编译掉. http://www.jreveal.org/

最后, 您想了解反编译原理, 想自己编个反编译器和扰乱器, 这里有本免费得书 .
http://www.riis.com/depile.html

其他到 yahoo 里找吧, 太多了.

JJams_King: 扰乱器就是把 bytecode 中的类名,方法名,变量名等变成无意义的符号。
例如,以下源程序:
package temp;
public class HelloWorld {
String helloWorld = "Hello World";
String byeWorld = "Bye World";
public static void main(String[] args) {
new HelloWorld(true);
new HelloWorld(false);
}
HelloWorld(boolean isHappy) {
if (isHappy) {
System.out.println(helloWorld);
}
else {
System.out.println(byeWorld);
}
}
}
加扰后,再反编译出来是:
package a;
import java.io.PrintStream;
public class a
{
String a;
String b;
a(boolean flag)
{
a = "Hello World";
b = "Bye World";
if (flag)
System.out.println(a);
else
System.out.println(b);
}
public static void main(String astring[])
{
new a(true);
new a(false);
}
}

而更高级的扰乱器,还能加密字符常量和扰乱程序流。加扰后,再反编译后变成这样:
package a;
import java.io.PrintStream;
public class a
{
String a;
String b;
public static boolean c;
a(boolean flag)
{
a = a("q
上一篇:关于学习JAVA的一点经验 人气:507
下一篇:花1K内存实现高效I/O的RandomAccessFile类 人气:1697
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐