代码保护--java代码保护⽅案Java防⽌反编译的⼀种解决⽅案
⼀、使⽤ProGuard对代码进⾏混淆
1  下载并启动ProGuard代码混淆器
2  Input/output中选择要加密的Jar⽂件,并导⼊该项⽬使⽤的Jar
java源代码加密3  设置混淆参数选项
4  保存混淆配置
5  重新启动ProGuard载⼊保存的配置⽂件
6  混淆成功
7  使⽤JD-gui反编译软件进⾏混淆前后对⽐
结论:使⽤代码混淆仅增加了程序理解的难度,程序的逻辑及流程仍然清晰可见,(但可以将函数名、参数名、设置的更凌乱⼀些,进⼀步增加阅读难度)。
⼆、使⽤Excelsior JET将java可执⾏程序转化为C++可执⾏程序
1  安装并启动Excelsior JET
2  发布运⾏
3  再系统盘内不到该程序运⾏的jar⽂件,通过查壳⼯具PEID查看该可执⾏⽂件,未加密
4  通过静态反汇编⼯具OD查看该⽂件汇编代码
⾄此,对该java项⽬的逆向⼯程的难度同C++写的程序⼀样困难,较难以得到程序的源代码。在此操作之上还可以进⼀步采取⼿段阻挠对源代码的逆向⼯程,如下所⽰的加壳操作。
三、使⽤VMProtect等⼯具对.exe⽂件进⾏加壳保护
1  使⽤VMProtect⼯具对该程序加壳
2  在使⽤VirboxProtector增加第⼆层保护壳时弹出如下提醒
猜测是VMProtect已经进⾏了虚拟化保护,在使⽤同样机制的VirboxProtector加密后出现了⼀些问题。
3  在使⽤UPX加壳软件增加第⼆层保护壳时同样提醒出现了错误

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。