|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。编译以下摘录于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中的类名,办法名,变量名等酿成偶然义的标记。
比方,以下源程序:
packagetemp;
publicclassHelloWorld{
StringhelloWorld="HelloWorld";
StringbyeWorld="ByeWorld";
publicstaticvoidmain(String[]args){
newHelloWorld(true);
newHelloWorld(false);
}
HelloWorld(booleanisHappy){
if(isHappy){
System.out.println(helloWorld);
}
else{
System.out.println(byeWorld);
}
}
}
加扰后,再反编译出来是:
packagea;
importjava.io.PrintStream;
publicclassa
{
Stringa;
Stringb;
a(booleanflag)
{
a="HelloWorld";
b="ByeWorld";
if(flag)
System.out.println(a);
else
System.out.println(b);
}
publicstaticvoidmain(Stringastring[])
{
newa(true);
newa(false);
}
}
而更初级的侵扰器,还能加密字符常量和侵扰程序流。加扰后,再反编译后酿成如许:
packagea;
importjava.io.PrintStream;
publicclassa
{
Stringa;
Stringb;
publicstaticbooleanc;
a(booleanflag)
{
a=a("q 041 33/ 3162 05,]");
b=a("{ 308W 27V 231 23");
if(!flag)goto42else26;
System.out.println(a);
if(!c)goto52else42;
System.out.println(b);
}
publicstaticvoidmain(Stringastring[])
{
newa(1);
newa(0);
}
privatestaticStringa(Stringstring)
{
charach[];
inti;
intj;
intk;
ach=string.toCharArray();
i=ach.length;
j=0;
k=0;
expression57
expressionach
expressionj
expression97
expressionach
expressionj
expression93
expressionach
expressionj
expression119
expressionach
expressionj
expression64
expressionach
expressionj
dup2over1
push[]
^
pop[]
j++;
k++;
if(i==j)
returnnewString(ach);
expressionk
switch
case1:goto21
case2:goto29
case3:goto37
case4:goto45
case5:goto10
default:goto54
}
}
你想破译个中的思绪可就难了:)
以上材料摘自:http://www.zelix.com/klassmaster/
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点, |
|