是否可以完全消除java项目的混淆?
我正在尝试反编译.apk以获得源代码。我遵循了一些教程,最终从.apk获得了项目。但所有的包都位于com文件夹,src文件夹是空的。当我试图将它们移动到src文件夹时,我在每个类中都遇到了错误,因为项目是模糊的。是否可以消除所有这些类的模糊。下面的代码说明了这一点。所有这些a、b、ab、c等都是模糊的类和方法。是否可以消除它们的模糊是否可以完全消除java项目的混淆?,java,android,Java,Android,我正在尝试反编译.apk以获得源代码。我遵循了一些教程,最终从.apk获得了项目。但所有的包都位于com文件夹,src文件夹是空的。当我试图将它们移动到src文件夹时,我在每个类中都遇到了错误,因为项目是模糊的。是否可以消除所有这些类的模糊。下面的代码说明了这一点。所有这些a、b、ab、c等都是模糊的类和方法。是否可以消除它们的模糊 public void a(int paramInt1, int paramInt2, int paramInt3, int paramInt4) {
public void a(int paramInt1, int paramInt2, int paramInt3, int paramInt4)
{
if ((this.H) && (paramInt4 >= 482 - this.ab.c) && (paramInt4 <= 482))
a(7, null, 5);
}
public void a(int paramInt, m paramm)
{
switch (paramInt)
{
default:
return;
case 6:
e();
a(false, 0, 0.5F);
c(6, 0);
return;
case 5:
e();
this.K.F = false;
this.P.F = false;
this.R.F = false;
this.H = false;
a(false, 0, 0.5F);
this.ac = 0;
this.J.a();
this.ao = 2;
this.ak = 1;
this.y = 0;
this.al.a();
this.A = (1 + this.A);
c(7, 0);
return;
case 2:
this.I = true;
c(0, this.y);
this.am.a();
c(8, 0);
return;
case 3:
c(11, 0);
return;
case 4:
c(13, 0);
return;
case 7:
}
c(3, 0);
}
public void a(int-paramInt1、int-paramInt2、int-paramInt3、int-paramInt4)
{
如果((this.H)&&(paramInt4>=482-this.ab.c)&(paramInt4),您可以通过使用dex2jar、JDecompiler或您正在使用的任何反编译器工具大致了解代码结构
但是,老兄,你不会从中得到确切的代码。这是为了混淆。
如果编写和窃取代码如此容易,那么为什么开发人员会得到报酬呢?
不要看别人的源代码,试着开始编写自己的源代码
顺便说一下,我同意西蒙的意见
这个问题似乎离题了,因为它可能与违反软件许可条款和条件有关,而不是与编程有关。向开发人员索取代码,或者,如果是开源的,下载代码。否则,您无权这样做
如果你知道每个类和每个方法的原始名称,你可以使用像Eclipse这样的IDE的重构/重命名功能。如果你不知道任何原始名称,那么你就无能为力了。自动?不。但是你可以手动重新创建有意义的名称。这个问题似乎离题了,因为它可能与v有关违反软件许可条款和条件,与编程无关。向开发人员索要代码,或者,如果是开源的,下载代码。否则,你无权这么做。手工?是的。分析逻辑并尝试理解所有的a和b。我们能自动完成吗?不是真的。你可能想试试Java Deobfousator(JDO)。它只是让所有内容都更具可读性。有理由这样做,而无意侵犯版权。一个例子是,如果您被迫使用第三方库,其中包含糟糕的文档,并且需要知道某个函数正在做什么。