前往Shuct.Net首页

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

关于反编译的搜索

【java虚拟机】如何看懂Java混淆后的反编译代码 我的图样 个人中心 修改密码 1314活动 用户名: 密码: dozb的博客 http://dozb.bokee.com 首页 博文 图样 博客网 > --> 【java虚拟机】如何看懂Java混淆后的反编译代码 作者: dozb2005-08-31 23:46分类:默认分类标签: 如何看懂Java混淆后的反编译代码作者:dozb一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。本文从研究的角度,浅析如何读懂这种反编译过来的文件。例子一:赋值反编译过来的代码如下: Node node; Node node1 = _$3.getChildNodes().item(0); node1; node1; JVM INSTR swap ; node; getChildNodes(); 0; item(); getChildNodes(); 0; item(); getNodeValue(); String s; s;原始语句: Node node; Node node1 = currDocument.getChildNodes().item(0); node = node1; String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();注解: JVM INSTR swap ; //赋值语句练习: String s1; String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue(); s8; s8; JVM INSTR swap ; s1; 10; Integer.parseInt(); int i; i; 例子二:不带参数创建对象反编译过来的代码如下: JVM INSTR new #244 <Class CrossTable>; JVM INSTR dup ; JVM INSTR swap ; CrossTable(); CrossTable crosstable; crosstable;原始语句: CrossTable crosstable = new CrossTable();注解:练习: JVM INSTR new #246 <Class Database>; JVM INSTR dup ; JVM INSTR swap ; Database(); Object obj; obj;例子三:带参数创建对象反编译过来的代码如下: JVM INSTR new #262 <Class StringBuffer>; JVM INSTR dup ; JVM INSTR swap ; String.valueOf(s2); StringBuffer(); s.substring(j, i); append(); s6; append(); toString(); s2; 原始语句: s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();注解: 此语句实际上是:s2 += s.substring(j, i) + s6;练习:例子四:for循环反编译过来的代码如下: int k = 0; goto _L4_L8: ... k++;_L4: if(k < as.length) goto _L8; else goto _L7原始语句: for(int k=0;k < as.length;k++) { ... }注解:例子五:while循环反编译过来的代码如下: String s1 = ""; goto _L1_L3: JVM INSTR new #262 <Class StringBuffer>; JVM INSTR dup ; JVM INSTR swap ; String.valueOf(s1); StringBuffer(); _$2(resultset, s, l); append(); toString(); s1;_L1: if(resultset.next()) goto _L3; else goto _L2原始语句: String s1 = ""; while(resultset.next()) { s1 = s1 + resultSetToString(resultset, s, l); }注解:欢迎有此兴趣的朋友和我交流。 +1+1 --> 00 【@dozb : 【java虚拟机】如何看懂Java混淆后的反编译代码】 点击(0) 评论(0) 支持(0) 芊芊公主第八天-累累累 / 芊芊公主第六天-回家啦 >> 请注意使用文明用语 0/200 表情验证码: dozb 文章总数:0 文章点击数:0 评论数:0 支持数:0 反对数:0 --> 个人排行 点击 支持 评论 博文分类 · 全部博文(0) 日期归档 Copyright 2001 - 2013 bokee.com, All Rights Reserved 增值电信业务经营许可证编号:B2-20100256  京ICP证050706  客户服务热线:15110263473