频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Java反编译的研究

来源:java-cn 作者:佚名 出处:巧巧读书 2005-11-01 进入讨论组

  java诞生于1995年,是一门较年轻的语言。它以平台无关性,安全性,面向对象,分布式,键壮性等特点赢得了众多程序员的青睐。特别是它简洁的面向对象的语言风格,更让许多人对它爱不释手。但人们在使用java的过程中,会发现它有几个致命的弱点:运行速度慢,用户使用不便,源代码保护机制不够安全。特别是在保护源代码方面,java是基于解释一种叫java字节码的中间代码来运行其程序的,而且jvm比计算机的微处理器要简单的多,文档也很齐全,结果造成其目标程序很容易被反编译,而且所得代码和其原始代码十分相似,甚至可以一模一样,可读性相当好。这就给java的代码保护带来了不利。但要实现java程序的保护,也不是不可能的,经研究和总结,至少有三种实现方式:1.混淆器;2.网络加载重要类;3加密重要类。

一、 混淆器

  目前,开发人员使用的比较多的保护代码的方法是用混淆器。混淆器是采用一些方法将类,变量,方法,包的名字改为无意义的字符串;使用非法的字符代替符号;贴加一些代码使反编译软件崩溃;贴加一些无关的指令或永远执行不到的指令等使反编译无法成功或所得的代码可读性很差。这样就实现了反反编译的目的。我们来做个演示。原始代码如下:

 

import java.io.*;

import java.security.*;

public class sKey_kb{

public static void main(String args[]) throws Exception{

FileInputStream f=new FileInputStream("key1.dat");

ObjectInputStream b=new ObjectInputStream(f);

Key k=(Key)b.readObject();

byte[] kb=k.getEncoded();

FileOutputStream f2=new FileOutputStream("keykb1.dat");

f2.write(kb);

for(int i=0;i
System.out.print(kb[i]+",");

} } }



  使用混淆器后,再用jad反编译得代码如下:

import java.io.*;

import java.security.Key;

public class sKey_kb{

public skey() {}

public static void main(String args[]) {

FileInputStream fileinputstream=new FileInputStream(ma);

ObjectInputStream objectinputstream=new ObjectInputStream(fileinputstream);

Key key=(Key)b.readObject();

byte abyte0[]=key.getEncoded();

FileOutputStream fileoutputstream=new FileOutputStream(na);

fileoutputstream.write(abyte0);

for(int i=0;i
System.out.print(abyte0[i]+oa);

}

private static String a(String s){

int i=s.length();

char ac[]=new char[i];

for(int j=0;j
return new String(ac);

}

private static String ma="u5AA1u5AAFu5AF3u5AFBu5AE4u5AAEu5AABu5ABE";

private static String na="u5AA1u5AAFu5AB3u5AA1u5AA8u5AFBu5AE4u5AAEu5AABu5ABE";

private static String oa="u5AE6";

public static{

ma=a(ma);

na=a(ma)

oa=a(oa);

} }


更多文章 更多内容请看Java环境安装配置Java编程开发手册专题,或进入讨论组讨论。
更多专题 【深 度 阅 读】 相 关 文 章
    收藏此文】【 】【打印】【关闭
    相关图文阅读
    频道图文推荐
    健 康 咨 询
    时 尚 咨 询
    巧巧读书宗旨
    相关专题
    讨论组问题推荐
    站内各频道最新更新文档
    站内最新制作专题
    热门关键字导读
    Photoshop教 程照片处理 照片制作 PS快捷键 抠图
    计 算 机 故 障XP系统修复
    艺 术 与 设 计设计 流媒体 设计欣赏 边框
    计 算 机 安 全ARP
    站内频道文章精选
    巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章