[FEAT] 花指令混淆几点加强建议
目前生成的花指令只是一些简单的int类型变量定义 并且定义的变量没有被调用 个人感觉比较容易通过查找引用的方法排除掉无用的指令
以下是我对花指令混淆的一些想法 1.生成的花指令不只局限于int类型变量的定义 可以扩展到所有基本数据类型 , ArrayList String等常用的数据类型 2.生成无用的方法和类 3.在生成好的无效代码基础上增加调用 4.花指令中添加控制流 并使用if(false){} 或者 制造异常并捕获来跳过花指令的执行(对于调用频率不高的方法 用户自行配置) 5.自动查找代码中的静态方法生成花指令(使用上面的方法防止方法在运行过程中被调用)
个人代码水平不高 仅代表个人观点
感谢,其中几条建议挺好的,我有空会尝试做下其中的部分内容
我目前做了下简单的 1,2 点
第 4 点加了个 if (false) 的简单混淆
先增加这些,其他功能之后再看看怎么搞
我目前做了下简单的 1,2 点
第 4 点加了个 if (false) 的简单混淆
先增加这些,其他功能之后再看看怎么搞
一点小问题 1.对于新建非基本数据类型的花指令 对性能的影响可能比较大(尤其是在经常被调用的方法中) 可以考虑放入if(false)中 2.单纯的if(!true)比较明显 可以替换为if(System.currentTimeMillis()<40 && 3<4)这样的来增大反混淆难度 或者在别处定义一个 静态变量并重新赋值后在这里调用 防止反混淆时直接复制并运行判断条件来排除花指令(实现难度较大) 3.为各种语句生成的比例增加一个配置 用户可自由调节各种花指令出现的比例或者禁用某几种花指令的生成