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

反编译混淆

发布时间: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进行保护还是比混淆有用点!

阅读全文

与反编译混淆相关的资料

热点内容
python3什么时候 浏览:706
惠州房车app哪个好 浏览:971
编译器查看内存 浏览:738
荣耀4a怎样加密短信 浏览:459
创建学生管理数据库的命令是什么 浏览:297
程序员渣女 浏览:30
androideclipse界面设计 浏览:350
向日葵传输桌面文件在哪个文件夹 浏览:97
linux怎么查看命令 浏览:99
linux设置可写权限 浏览:263
app为用户解决什么 浏览:824
微信营销pdf 浏览:915
舵机51单片机 浏览:715
驻波值命令 浏览:1003
易语言225编译器 浏览:234
苹果手机视频存储文件夹 浏览:453
剪映软件app怎么剪音乐 浏览:560
dos命令攻击 浏览:903
解压属于什么分类 浏览:283
golang编程规范 浏览:918