JAVA代码混淆,jar混淆反编译

  JAVA代码混淆,jar混淆反编译

  一般情况下爪哇应用的开发者为了保护代码不被别人抄袭,在生成班级文件的时候都爪哇岛文件进行了混淆,这种班级文件用反编译工具得到的结果很难看懂,并且不能进行编译。本文从研究的角度,浅析如何读懂这种反编译过来的文件。

  例子一:赋值

  反编译过来的代码如下:

  节点节点;

  节点node1=_$3.getChildNodes().项目(0);

  节点1

  节点1

  JVM INSTR交换;

  节点;

  getChildNodes();

  0;

  item();

  getChildNodes();

  0;

  item();

  getNodeValue();

  字符串s;

  s;

  原始语句:

  节点节点;

  节点node 1=币种单据。获取子节点().项目(0);

  节点=节点1

  String s=node.getChildNodes().项目(0)。getChildNodes().项目(0)。getNodeValue();

  注解:

  JVM INSTR交换;//赋值语句

  练习:

  字符串S1;

  String s8=node.getChildNodes().第(1)项getChildNodes().项目(0)。getNodeValue();

  S8;

  S8;

  JVM INSTR交换;

  S1;

  10;

  整数。parse int();

  int I;

  我;

  例子二:不带参数创建对象

  反编译过来的代码如下:

  JVM INSTR新#244类交叉表

  虚拟机(Java Virtual Machine的缩写)指令民主统一党

  JVM INSTR交换;

  CrossTable();

  交叉表交叉表;

  交叉表;

  原始语句:

  CrossTable CrossTable=new CrossTable();

  注解:

  练习:

  JVM INSTR新的#246类数据库

  虚拟机(Java Virtual Machine的缩写)指令民主统一党

  JVM INSTR交换;

  database();

  对象目标文件

  目标文件

  例子三:带参数创建对象

  反编译过来的代码如下:

  JVM INSTR新# 262类字符串缓冲区

  虚拟机(Java Virtual Machine的缩写)指令民主统一党

  JVM INSTR交换;

  字符串。(S2)的价值;

  字符串缓冲区();

  s.substring(j,I);

  append();

  S6;

  append();

  toString();

  S2;

  原始语句:

  S2=(新字符串缓冲区(字符串。(S2的)价值.append(s.substring(j,I))。追加(s6).toString();

  注解:

  此语句实际上是:s2=s.substring(j,I)S6;

  练习:

  例子四:用于循环

  反编译过来的代码如下:

  int k=0;

  goto _L4

  _L8:

  .

  k;

  _L4:

  如果(k为。长度)goto _ L8否则转到_L7

  原始语句:

  for(int k=0;k为长度;k)

  {

  .

  }

  注解:

  例子五:当循环

  反编译过来的代码如下:

  字符串S1=" ";

  去腰神经2

  _L3:

  JVM INSTR新# 262类字符串缓冲区

  虚拟机(Java Virtual Machine的缩写)指令民主统一党

  JVM INSTR交换;

  字符串。(S1)的价值;

  字符串缓冲区();

  _$2(结果集,s,l);

  append();

  toString();

  S1;

  _L1:

  if(resultset。next())goto _ L3;否则去L2

  原始语句:

  字符串S1=" ";

  while(resultset.next())

  {

  S1=S1结果集tostring(结果集,s,l);

  }

  注解:

  http://apps.hi.baidu.com/share/detail/17189115

  欢迎有此兴趣的朋友和我交流。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: