zoukankan      html  css  js  c++  java
  • atitit.商业版 源码保护 与 java本地原生代码转换 的方案总结

    atitit.商业版 源码保护 与 java本地原生代码转换 的方案总结

    1. 为什么虚拟机语言容易被反编译 1

    2. 源码泄露的问题问题 1

    3. Excelsior JET 1

    4. gcj.的流程 2

    5. classloader方案,,还凑后 2

    6. 制作伪exe,其实和上一种做法是一样的,只不过做成exe,调用系统的java.exe来运行它,这样的工具有nativeJ,exe4j3

    7. 其他 3

    1. 为什么虚拟机语言容易被反编译

    ,但虚拟机的中间语言由于带了大量的“元数据”信息,所以也极容易被反编译。

    就我所知,目前把Java程序编译成本机可执行程序的方法有两种,一种是GCJ,免费的,一种是Excelsior JET,商业的

     

     

    2. 源码泄露的问题问题

     中间语言如此容易被反编译,有许多可怕之处。

    1.      知识产权

    2.       源代码泄漏,被竞争对手拿去和你竞争(这种事很多)

    就我知道的都有几起,不过不方便说出来。

    他们从客户那里想办法copy回一份别的公司的产品,然后反编译后,改改图片,图片以及版权信息和注册信息,就拿出去卖了。

     

     被别人植入恶意程序,后果得由作者或开发商承担

     

    3. Excelsior JET

     

    Excelsior JET无非就是用自己的Runtime来代替JRE,只是比JRE更加灵活,根据Java程序具体的依赖来生成对应的Runtime。其实这个Runtime也挺大的,通常10M左右,不过比起JRE,那要小很多了

     

    就我的感觉,Excelsior JET比GCJ更加灵活,也更好用,毕竟是商业版的东西

     

     

    把JAVA代码编译成本机程序的弊端也是有的,那意味着你将无法在线升级,GCJ也许可以,但是Excelsior JET是绝对不行的,这是因为它最后一步要对所有DLL进行链接,如果更换了DLL文件,它会检测出来并报错。

     

    attilax note::jeig biz ver d ,website sheo down d deush tried ver d ,cant use ..

     

     

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

     

    4. gcj.的流程


    可以把普通的Java程序做成真正的exe,也就是单一个exe就可以在没有安装JVM的机器上运行。这样的工具常见的有JETgcj.前者是收费的,而且做出来的exe还是需要一堆dll。推荐使用gcj.他有windowsLinux 版,直接下载zip包,不需要安装,里面有不少例子,一些build的批处理文件。从原理来说gcj自己实现了JVM规范,也就是你编写一个 HelloWorld.java,其中的main方法为System.out.println("foo");

    当使用gcj把它做成exe(大约2M),运行这个exe时,会启动里面的一个小型jvm,在这上面跑HelloWorld

     

    5. classloader方案,,还凑后

     

     

    6. 制作伪exe,其实和上一种做法是一样的,只不过做成exe,调用系统的java.exe来运行它,这样的工具有nativeJ,exe4j

    7. 其他

    Java开源打包工具】

    IzPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序。制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行。

    使用JSmooth将做好的JAR包装成EXE

    launch4jJava应用程序的Windows本地可执行文件 (.exe) 封装器。提供了本地弹出屏幕,应用程序图标,JRE搜索或使用绑定的JRE,启动失败反馈,传递命令行参数,ant脚本。

    VAInstall是多平台的安装程序。你要包装起来的软件可以是可执行的 java class, Windows .EXE, Linux 可执行档,或者是 UNIX shell 档案。使用者可以选择四种安装的介面,graphic, xtra, text 或是 ansiVAInstall 只需要很少的空间,他不会使用任何大的暂存档案,而且还可以很容易使用反安装功能。

    Toolshed是一个既小又简单的JAVA安装制作工具。

    AntInstaller通过XML文件定义UI,用Ant做后台。所以ANT所能做的事情AntInstaller同样也胜任。

    FreeInstaller能够把JAVA程序打包成多种平台下的应用程序比如UNIX, LINUX 和 Windows NT.

    这个工具利用 ANT 来制作在 Windows, MacOS X, Unix 平台上可执行的文件,比如 exezipjarROXES ANT Tasks 基于 GPL 发布。

    Mini Installer是用来构建JAVA安装程序一个简单类包。整个过程以脚本为驱动,最后结果是一个独特的JAR文件。用户可以通过双击来执行一个类似向导的安装过程。

    Antigen (Ant Installer Generator)这个工具结合一个ANT构建脚本与一个GUI来把Java文件打包成可执行的Jar文件。它的主要目的是从Ant脚本创造一个强大的图形安装工具。

    Packlet是一个针对Java的简单安装工具。一个Packlet类似于一个ziptgz文件。它把应用程序打包成一个单一的可分解的压缩文件。Packlet文件能够在任何有安装Java 2运行环境的机器上运行。

    Java Service Wrapper可以把Java应用程序安装成一个Windows NT服务或Unix Daemon.它同时还为应用程序提供日记功能,灵活的配置,可靠的运行性能,按需求重新启动,简化应用程序的安装等,>

    JPackIt可以把Java工程打包成一个可执行的包(:jar,classexe).包括所有Java应用程序资源如:代码,图片,属性文件和被引用的第三方包.>

    One-JAR可以解决如何把一个依赖于多个其它jar文件的应用程序发布成一个单一的可执行Jar文件.它使用一个可定制的类装载器(classloader)来打开在主Jar中的Jar文件包. >

    Autojar帮助从不同的inputs(如:自身classes,外部文档等)制作最小的 Jar文件。它从一个或多个给定的classes开始,依据字节码(bytecode)递归搜索相关联的classes,然后从input文档中提取这些 Classes,并把它们拷贝到output最终的文档将只包含真正需要的classes. 因而能够保持applet的大小并降低applet的加载时间或者让应用程序独立于第三方类库。>

    MJAR(Managed Jar Framework)Java软件分发/打包框架。它允许在相同VM内并行部署classloader分离的应用程序。MJAR使用Spring框架来管理内部组件。

    无需JRE运行java的方法 - Programmer LaoMan=new Programmer(); - ITeye技术网站.htm

    运用加密技术保护Java源代码.htm

  • 相关阅读:
    RabbitMQ(四)
    RabbitMQ(三)
    RabbitMQ(二)
    定位
    响应式布局
    学习前端的一些心得
    css样式大全
    常用标签
    HTML
    app 被拒绝原因
  • 原文地址:https://www.cnblogs.com/attilax/p/5963720.html
Copyright © 2011-2022 走看看