问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

混淆的class文件怎么进行反编译

发布网友 发布时间:2022-04-24 15:14

我来回答

1个回答

热心网友 时间:2023-10-18 12:50

一般情况下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 ;
JVM INSTR p ;
JVM INSTR swap ;
CrossTable();
CrossTable crosstable;
crosstable;
原始语句:
CrossTable crosstable = new CrossTable();
注解:
练习:
JVM INSTR new #246 ;
JVM INSTR p ;
JVM INSTR swap ;
Database();
Object obj;
obj;
例子三:带参数创建对象
反编译过来的代码如下:
JVM INSTR new #262 ;
JVM INSTR p ;
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 ;
JVM INSTR p ;
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);
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
江西服装学院究竟怎么样 江西服装学院怎样 江西服装学院怎么样啊 服装学校师资哪里比较好 江西服装学院怎么样呢 报案警察如何处理弃婴法律上如何认定 公安机关如何处理弃婴 光宗耀祖名词解释光宗耀祖的解释是什么 呼吸37度时光能量适合什么肤质 2012年1月24日(初二)从武汉天河机场到当阳,不知道是坐火车、汽车,在武... java 只有class文件怎么反编译 class文件怎么反编译java文件 如何在MyEclipse中反编译class文件 如何利用反编译软件打开并修改class文件 可以反编译.class文件吗? 怎样反编译class文件,再编译 怎么反编译java的class文件 一种树,叶子是大片,爱心状,有黄色果实。是什么树 怎么把class文件反编译成java文件 什么黄? 如何反编译class文件,简单快速 这是黄色的l. 用英语这么说? 怎么反编译class 这种黄色的花叫什么名字啊? 专家你好!请问西葫芦上有小绿点,后发展成小绿片,最后长成黄绿色大片,如图,请问这是什么病?怎么治? 这是黄色中的L(用英文) 金色用法语怎么说 德国最黄最暴力的电影 被封永久里面的好友怎么找回 赞美黄色的句子 如何反编译被加密的.class文件为Ja 个人办理营业执照有什么风险 class文件反编译软件 营业执照办理 个人 冰川融化的原因和危害是什么? 冰川融化的原因和危害 冰川为什么会融化? 冰山为什么会融化? 葱可以做些什么菜? 冰川融化对整个世界有哪些危害? 小葱可以做什么好吃的 大家给点冰山融化的资料 小葱做主菜怎么做好吃 关于冰川融化的资料 小葱下饭菜怎么做好吃 小葱可以做什么菜 我国青藏高原冰川融化,为何科学家都束手无策呢?融化原因是什么呢? 做小葱拌豆腐的时候,葱一般要切成多短? 好人帮帮忙 能否帮我提供一下近20年冰山融化的具体数据 急!有高分悬赏! 冰川融化成为独特的抗旱水源,应该怎么利用呢?