前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

Java反编译的研究-Java教程 首页学院源码字体下载软件电脑书 | 素材素材模板PSDPPT壁纸图片矢量酷站图标设计笔刷纹理美图|小游戏博客QQ表情投票计数器 首页|网络编程|站长之家|网页制作|图形图象|操作系统|冲浪宝典|软件教学|网络办公|手机学院|邮件系统|网络安全|认证考试 ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器 迅雷 | 电驴 | Win7 | QQ空间 | 输入法 | Ghost | Word | Excel | asp | php | Sql | Dreamweaver | Javascript | css | photoshop | fireworks | Flash 当前位置 > 网站建设学院 > 网络编程 > Java教程 Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket Java反编译的研究 发表日期:2008-1-5 新浪微博 QQ空间 QQ微博 百度搜藏 腾讯朋友 QQ收藏 百度空间 人人网 开心网   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;iSystem.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;iSystem.out.print(abyte0[i]+oa); }private static String a(String s){ int i=s.length(); char ac[]=new char[i]; for(int j=0;jreturn 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); } }   混淆后,再反编译所仍然能得到源代码,但显然,所得代码与原始代码比,变得难以读懂,代码中多了其他的方法,文件名等信息也被打乱了。并且,把以上代码写进sKey_kb.java中,无法通过编译。   但是,假如在编写软件时,在软件中写入某些注册信息,或一些简单的算法,通过反编译,还是有可能得到这些信息的,从而未能达到保护软件的目的。反编译器与混淆器之间的斗争是永无止尽的。所以从其他角度去保护java的源代码是很有必要。 上一篇:由基本概念开始全面认识JAVA (人气:1845) 下一篇:Jboss入门精简篇(人气:5522) 教程搜索服务 本月文章推荐 ·《Java编程思想》(第二版)第. ·软件开发规范(2). ·经验分享:开发SWT应用两点心. ·Java手机软件图形界面API之F. ·[JAVA100例]062、多线程. ·树形结构的实现. ·论J2EE开发Web应用程序中的安. ·使用JDBC连接SYBASE的3种方法. ·将Java的class文件转为EXE的. ·用java向XML增加一个结点元素. ·java设计模式之Flyweight(元. ·开发Java的又一利器-Visual . ·.Net中掌握Windows窗体间数据. ·体验JAVA5的新增语言特性. ·到底选择合成还是继承. 项目外包信息 ·网站设计 ·二线城市专业技术团队 承接各种 ·股指俱乐部创业计划 ·6年div网页制作经验承接相关业务 ·logo设计 2000元 ·想找个有棋牌设计经验的网页美工 ·公司网站改版 ·网络公司网站设计(静态页面) ·地方门户首页模板设计与系统整合 ·金融类网站 ·淘宝店铺装修 ·长期承接WEB应用、数据库外包项 ·游戏UI外包公司承接游戏UI美术外 ·一共3个页面切图 ·长期网页设计外包 发布信息 浏览信息 邮件订阅服务 输入你的邮件地址,你将不会错过任何关于<Java教程>的内容 网络编程文章分类 ASP教程 ASP实例 ASP技巧 ASP文摘 PHP教程 PHP技巧 PHP实例 PHP文摘 JSP教程 JSP技巧 JSP实例 JSP文摘 ASP.NET教程 ASP.NET技巧 ASP.NET实例 ASP.NET应用 xml教程 xsl教程 xml技巧 C#教程 C#应用 Delphi教程 Perl教程 Shell教程 Ajax教程 Visual Basic教程 Java教程 J2EE/J2ME教程 C/C++教程 移动解决方案 移动短信技术 移动行业动态 软件工程 WordPress Android开发 站长工具:Google PR查询 Alexa排名查询 网站速度测试 CSS在线编辑器 OPEN参数生成器 弹出式窗口代码产生器 密码登录生成器 在线按钮生成器 Meta标签生成器 邮箱图标在线生成 多色彩特效字代码生成器 网页代码调试器 在线FTP登陆 Flash取色器 配色代码对照表 配色辞典 CSS生成器 CSS在线压缩 广告代码 框架网页代码生成器 js/vbs加密 md5加密 进制转换 UTF-8 转换工具 在线调色板 Html转换js Html转换asp Html转换php Html转换perl HTML/JS格式化 ASCII字形生成器 页面转换效果生成器 系统进程实用工具:汉字翻译拼音 拼音字典 在线翻译 天气预报 火星文 在线网速测试 符号对照表 个税计算 苹果壁纸 理财工具 黄金价格 白银价格 购房银行按揭利率计算 汇率查询 金融导航 经典小工具 汉字简繁转换 普通单位换算 公制单位换算 生辰老黄历 国内电话区号 国家代码与域名缩写 文字加密解密 元素周期表 健康查询 世界时间 全国各地车牌查询 全国车辆交通违章查询 万年历 二十四节气 汉字横竖排版 手机号码查询 计算器 ip搜索 酒店预订 机票预订 广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅 Copyright &copy; 2000-2014 www.knowsky.com All rights reserved | 沪ICP备05001343号