导航:首页 > 源码编译 > 反编译混淆

反编译混淆

发布时间:2022-01-11 20:43:26

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

一般情况下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);
}

‘贰’ 求助,谁能看懂混淆的反编译后混淆的Java代码

reactor主界面上就有几个复选框,试一下全部打勾,然后点proctect,混淆后的Dll再用反编译软件看看其中的代码,lz自然会知道结果。

‘叁’ 对已经混淆的android代码,如何进行反编译

android代码混淆是指安卓开发者或者组织为了防止自己的产品敏感信息或者技术机密被人破解,而在生成apk文件的时候,通过设置一些替换规则,使java文件中指定的代码类的名字或者成员名字变为没有任何意义的字母,然后编译成class文件的过程。

已经混淆过的android代码反编译出来的都是一些没有任何意义的名字,是很难读懂的。没有好的办法。

‘肆’ 求能反编译已经混淆过apk的软件

反编译不一定要用软件,

‘伍’ net反编译后发现代码混淆了,求助

混淆的很少有反混淆的,混淆就是把原来自己设置的有含义或无含义的属性方法修改成随机的,他又不明白人的意思,反混淆跟混淆差不多,就是反混淆产生的字段简单点。你查找替换下不就行了

‘陆’ Android源码进行了混淆,怎么通过反编译查看

android代码混淆是指安卓开发者或者组织为了防止自己的产品敏感信息或者技术机密被人破解,而在生成apk文件的时候,通过设置一些替换规则,使java文件中指定的代码类的名字或者成员名字变为没有任何意义的字母,然后编译成class文件的过程。 已经混淆过的android代码反编译出来的都是一些没有任何意义的名字,是很难读懂的。没有好的办法。

‘柒’ 被混淆的jar包如何反编译

暂时想到的只有将jar文件解压,用反编译工具反编译相关类,修改,编译成类替换原文件,再打包成。

‘捌’ javacompile混淆器怎么混淆后的class文件还是可以被反编译出来呢求高手指点....

混淆的作用并不是使class文件不能被反编译
混淆的作用是使反编译的代码更难让人阅读,比如一些计算金钱的敏感逻辑里有如下的代码(新金额=旧金额*某个倍率):
double newMoney=oldMoney*rate;
如果这样的代码直接编译成class文件,别人反编译这个class文件就能很清楚的看到金钱的计算关系,混淆后代码可能就变成这样的了:
double a=b*c;
这样的代码别人即使反编译了,也是很难看懂其中的逻辑关系的

‘玖’ 经过混淆的android安装包,还有可能被反编译么

有可能,但是还是很大的提高了阅读难度,而且需要注意的是混淆并不会保护你图片等资源,也就是除了代码难以阅读之外没有其他帮助,只是增加破解者的难度时间,对其防止破解的作用意义不是很大。拿移动应用安全行业的第三方平台来说,在Android代码混淆的基础上,以源码加壳保护、so库核心代码加壳保护、资源文件签名保护、APK防二次打包保护等方面来对APK进行保护还是比混淆有用点!

阅读全文

与反编译混淆相关的资料

热点内容
求知课堂python2020 浏览:260
kafka删除topic命令 浏览:759
phpsql单引号 浏览:86
英雄联盟压缩壁纸 浏览:452
办公app需要什么服务器 浏览:628
安卓服务器怎么获得 浏览:808
空调压缩机冷媒的作用 浏览:781
淘宝app是以什么为利的 浏览:657
java提取图片文字 浏览:924
我的世界手机版指令复制命令 浏览:35
java判断字符串为数字 浏览:926
androidrpc框架 浏览:490
云服务器essd和ssd 浏览:524
家用网关的加密方式 浏览:3
怎么从ppt导出pdf文件 浏览:973
换汽车空调压缩机轴承 浏览:845
平板怎么登录安卓端 浏览:197
图像拼接计算法 浏览:257
怎么打开饥荒服务器的本地文件夹 浏览:293
usb扫描枪编程 浏览:675