Java混淆,重点是添加无用的操作码

C-O*_*tto 10 java obfuscation static-analysis

我正在寻找一个Java字节混淆器,它"扰乱"现有的操作码并添加新的(无用的)代码.我对任何类型的重命名都不感兴趣,这是大多数混淆者似乎都会做的事情.

一点背景:作为我的博士论文的一部分,我正在开发一个工具,用于识别(Java字节码)程序的无用部分.为了呈现不错的结果,我希望有一些带有大量无用代码的输入程序.除了我目前关注的例子(它有一些使代码无用的微妙错误,认为用一个错误的参数调用"等于")我还需要一些只有"怪异"代码的例子 - 由代码混淆器生成.

我已经玩过ProGuard,但它似乎只是稍微优化(并因此修改)代码.重命名方法,字段......的部分与我无关,这就是我将其关闭的原因.

Ale*_*exR 2

你的任务非常有趣,但听起来它不是java字节代码混淆器的设计目的。

如果您想向某个项目添加无用的代码,为什么不直接添加另一个项目(或其中的一部分)。显然,添加的代码将是“有用的”:没有人真正从原始项目中调用它。您可以添加来自完全不同项目的部分源代码甚至字节代码。显然这段代码将被写在不同的类中。

如果您想将代码添加到现有的类中,您可以使用例如 CGLIB 开发自己的工具,该工具甚至可以获取一些现有的字节代码并将其附加到类的字节代码中。假设附加静态方法不会破坏现有类的一致性。