金蝶有关于的java代码 金蝶代码是什么( 二 )


2、混淆主要针对Xlet、Midlet等应用 , 混淆库文件时配置文件将会很复杂 。
二、Jocky
Jocky是金蝶中间件技术领袖袁红岗先生的个人作品(旧有名称JOC) 。原本是方便Apusic 应用服务器的开发,现在开放出来 , 供大家自由使用 。Jocky混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的 , 修改了其中的代码生成过程 , 对编译器生成的中间代码进行混淆 , 最后再生成class文件,这样编译和混淆只需要一个步骤就可以完成 。也就是说,它是直接从源码上做文章,这是Jocky与其它混淆编译器最大的不同之处 。另外可以在源程序中插入符号保留指令来控制哪些符号需要保留 , 将混淆过程与开发过程融合在一起,不需要单独的混淆选项配置文件 。Jocky的上述特点较适合于java类库的混淆 。
Jad反编译混淆后class得到的代码:
public class SimpleBean
implements Serializable
{
public SimpleBean()
{
this;
String as[] = new String[4];
as;
as[0] = "name0";
as;
JVM INSTR swap ;
1;
"name1";
JVM INSTR aastore ;
JVM INSTR dup ;
JVM INSTR swap ;
2;
"name2";
JVM INSTR aastore ;
JVM INSTR dup ;
JVM INSTR swap ;
3;
"name3";
JVM INSTR aastore ;
_$2;
_$1 = null;
return;
}
public void SimpleBean()
{
this;
JVM INSTR new #9Class ArrayList;
JVM INSTR dup ;
JVM INSTR swap ;
4;
ArrayList();
_$1;
}
public void init_public()
{
_$1.add("name");
for(int i = 1; i4; i++)
_$1(i);
}
private void _$1(int i)
{
_$1.add(_$2[i]);
}
private void writeObject(ObjectOutputStream objectoutputstream)
throws IOException
{
}
private String _$2[];
private List _$1;
}
优点:
1、除符号混淆外增加了数据混淆(字符数组初始化);
2、有一些语句反编译只能得到字节码指令;
3、在Sun JDK中提供的Java编译器(javac)的基础上完成 , 编译和混淆一体完成,不需要先生成class文件再混淆;
4、提供了Eclipse的插件,能够直接在Eclipse中使用Jocky 。
缺点:
1、混淆选项粒度较粗,使用中可能要在具体代码中添加@preserve指令来实现,工作量大;
2、没有控制流混淆 。
三、Allatori 3.1_demo
Allatori属于第二代混淆器,具有全方位保护你的知识产权的能力 。Allatori具有以下几种保护方式:命名混淆 , 流混淆,调试信息混淆,字符串编码 , 以及水印技术 。对于教育和非商业项目来说这个混淆器是免费的 。2.1版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加有效日期 。
Jad反编译混淆后class得到的代码:
public class SimpleBean
implements Serializable
{
public void init_public()
{
d.add(c.k("{u{0"));
int i = 1;
goto _L1
_L3:
H(i);
++i;
_L1:
4;
JVM INSTR icmplt 21;
goto _L2 _L3
_L2:
}
public void SimpleBean()
{
d = new ArrayList(4);
}
private void H(int a)
{
d.add(c[a]);
}
public SimpleBean()
{
d = null;
}
private void H(ObjectOutputStream objectoutputstream)
throws IOException
{
}
private String c[] = {
c.k("\177q\177te"), c.k("\177q\177td"), c.k("\177q\177tg"), c.k("\177q\177tf")
};
private List d;
}
注:c.k是为进行字符串加密额外生成的类c的静态方法 。
优点:

推荐阅读