最近在看java混淆器的一些东西,看有这么一个帖子说有的混淆器可以把代码全部移到return的后面,通过这种方式来方式来防止被反编译,我想问一下那种混淆器可以做到啊?谢谢

解决方案 »

  1.   

    现在用的就是proguard,但是好像没有看到这个功能。
      

  2.   

    混淆器可以把代码全部移到return的后面,通过这种方式来方式来防止被反编译不懂,混淆器一个作用是减少生成的二进制的类的大小,
    一个作用就是让反编译过来后,别人也很难看出程序的结构
      

  3.   

    我在网上看到了这么一篇文章,他里面有提到

    五、预防性混淆这种混淆通常是针对一些专用的反编译器而设计的,一般来说,这些技术利用反编译器的弱点或者Bug来设计混淆方案。例如,有些反编译器对于 Return后面的指令不进行反编恰将译,而有些混淆方案恰代码放在Return语句后面。这种混淆的有效性对于不同反编译器的作用也不太相同的。一个好的混淆工具,通常会综合使用这些混淆技术。
      

  4.   

    这篇文章被很多地方转载了,但就是找不到相关的一些东西,好郁闷啊,组长给我一天的时间,说找不到就算了,我很想找出来,自己试了一下往.class文件里面写东西,比如public void a()
    {
       System.out.println("xxx");
    }
    我在打印语句之前加上一个return,反编译之后打印语句就不见了,但是.class里面却还有。很有趣!
    超级想找出那种混淆器,谁来帮忙找找
      

  5.   

    你理解错我的意思了,上面的代码没有经过混淆的,我只是强行的往.class里面写了个return语句,然后反编译。
      

  6.   

    打印语句前加return,你能编译过?
      

  7.   

    说了是强行的往.class里面加嘛,没通过编译的。
    问题提出来好几天了,现在我们组长已经不报什么希望了,呵呵,我也要转移工作中心了,想问一下谁对polish比较熟悉,我用polish打包的时候,打出来的jar很大,里面有些polish自己的类库,而且我是加了sePolishGui="false"这个属性的,哪位来帮帮忙。。
      

  8.   

    对混淆器没什么研究,不知道IDE们(NetBeans,Eclipse)自带的混淆器有没有这个功能,你可以试试,通常混淆器都是以组件或插件的形式存在的。
      

  9.   

    ide插件形式的都没啥用,因为都是用脚本打出来的包,需要在脚本里面添加。结贴了
      

  10.   

    哎呀,我先写个程序,编译好,然后直接修改它的class文件,没说一定要改java代码才能改.class文件吧,直接改.class文件需要编译么?