jar-obfuscator icon indicating copy to clipboard operation
jar-obfuscator copied to clipboard

[FEAT] 花指令混淆几点加强建议

Open Nippaku-Zanmu opened this issue 1 year ago • 4 comments

目前生成的花指令只是一些简单的int类型变量定义 并且定义的变量没有被调用 个人感觉比较容易通过查找引用的方法排除掉无用的指令

以下是我对花指令混淆的一些想法 1.生成的花指令不只局限于int类型变量的定义 可以扩展到所有基本数据类型 , ArrayList String等常用的数据类型 2.生成无用的方法和类 3.在生成好的无效代码基础上增加调用 4.花指令中添加控制流 并使用if(false){} 或者 制造异常并捕获来跳过花指令的执行(对于调用频率不高的方法 用户自行配置) 5.自动查找代码中的静态方法生成花指令(使用上面的方法防止方法在运行过程中被调用)

Nippaku-Zanmu avatar Jul 05 '24 10:07 Nippaku-Zanmu

个人代码水平不高 仅代表个人观点

Nippaku-Zanmu avatar Jul 05 '24 10:07 Nippaku-Zanmu

感谢,其中几条建议挺好的,我有空会尝试做下其中的部分内容

4ra1n avatar Jul 08 '24 10:07 4ra1n

我目前做了下简单的 1,2 点

第 4 点加了个 if (false) 的简单混淆

先增加这些,其他功能之后再看看怎么搞

4ra1n avatar Jul 08 '24 18:07 4ra1n

我目前做了下简单的 1,2 点

第 4 点加了个 if (false) 的简单混淆

先增加这些,其他功能之后再看看怎么搞

一点小问题 1.对于新建非基本数据类型的花指令 对性能的影响可能比较大(尤其是在经常被调用的方法中) 可以考虑放入if(false)中 2.单纯的if(!true)比较明显 可以替换为if(System.currentTimeMillis()<40 && 3<4)这样的来增大反混淆难度 或者在别处定义一个 静态变量并重新赋值后在这里调用 防止反混淆时直接复制并运行判断条件来排除花指令(实现难度较大) 3.为各种语句生成的比例增加一个配置 用户可自由调节各种花指令出现的比例或者禁用某几种花指令的生成

Nippaku-Zanmu avatar Jul 09 '24 04:07 Nippaku-Zanmu