【问题标题】:What are the parameters that prove Obfuscated code is better than simple code in java. [closed]有哪些参数可以证明混淆代码优于 java 中的简单代码。 [关闭]
【发布时间】:2015-01-10 05:31:37
【问题描述】:

我有两个 java 移动代理程序。这些程序是简单且经过混淆的 java 移动代理。

**Program 1**
package myfirst;
import com.ibm.aglet.*;
public class MyAglet extends Aglet
{
   public void run()
    {
    int a=1;
         System.out.println("Hello this is the first important part of the program \n");      
         System.out.println("Hello this is the second important part of the program \n");
    }
}

方案 2

package myfirst;
import com.ibm.aglet.*;
public class MyAglet1 extends Aglet
{
   public void run()
    {
    int a=1;
     System.out.println("Hello this is the first important part of the program \n");
        if(a>0)
     System.out.println("Hello this is the second important part of the program \n");      
    else
         {abc();
          System.out.println("Hello this is the second important part of the program \n");
      }
    }
public static void abc()
{
  int x=12,y=123,z=32;
   x=y;
   y=z;
   z=x;
    System.out.println("The part to be printed is "+x+y+z);
}
}

现在有哪些因素可以用来评估混淆代码比普通代码更好。

【问题讨论】:

  • 这就是问题所在......我们如何比较这两个代码。
  • 你想证明一个更好。问题是:在哪些方面更好?您希望您的代码快速、易于维护、难以阅读、紧凑,还是什么?其中许多标准是相互排斥的。没有通用的“更好”
  • 我想证明,与简单的 java 代码相比,对混淆代码进行逆向工程是很困难的。怎么可能。
  • 不可能用更少的行数来解释。这就是为什么这样做

标签: java obfuscation agent javaagents


【解决方案1】:

我质疑你关于混淆代码比简单代码更好的说法。事实上,你应该尝试写dumb code

除了更易于维护、增强和测试简单代码之外,通常速度更快。由于 JVM 托管语言、JIT、优化编译器,甚至现代 CPU 设计(分支停顿、缓存局部性和乱序执行)的动态特性,优化速度并非易事。

即使是古老的 XFree86 通过删除 Duff's Device 优化也看到了 performance improvements。那是真实的世界,被混淆的比Java低的级别和“愚蠢”的代码仍然更好。

【讨论】:

  • 我想要的参数是我可以比较它们的基础......可能是圈复杂度等等......
猜你喜欢
  • 1970-01-01
  • 2010-10-20
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
  • 2010-09-18
相关资源
最近更新 更多