如何有效的保护 JAVA 程序】的更多相关文章

从头到尾保护 JAVA 目前关于 JAVA 程序的加密方式不外乎 JAVA 模糊处理(Obfuscator)和运用 ClassLoader 方法进行加密处理这两种方式(其他的方式亦有,但大多是这两种的延伸和变异).这两种方式不管给 JAVA 反编译器造成多少困难, 毕竟还是有迹可寻,有机可乘的.本文介绍的方法是对 ClassLoader 方式加密处理的一种改进,使之达到传统二进制程序代码安全. 0 评论: 胡宪利 (samenhu@yahoo.com.cn)中兴通讯SoftSwitch产品部 2…
Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此,Java中间代码的反编译就变得非常容易.目前市场上有许多免费的.商用的反编译软件,都能够生成高质量的反编译后的源代码.所以,对开发人员 来说,如何保护Java程序就变成了一个非常重要的挑战.下面我们就结合实例讨论 保护Java程序的基本方法然后对代码混淆问题进行深入研究,最后结合一个实际的应用程序…
通常C.C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码.通常所有的源文件被编译.链接成一个可执行文件.在这些可执行文件中,编译器删除了程序中的变量名称.方法名称等信息,这些信息往往是由内存地址表示,例如如果需要使用一个变量,往往是通过这个变量的地址来访问的.因此,反编译这些本地的目标代码就是非常困难的. Java语言的出现,使得反编译变得非常容易而有效.原因如下:1.由于跨平台的需求,Java的指令集比较简单而通用,较容易得出程序的语义信息:2.Java编…
第 1 部分: 架构概览和安全过滤器 Acegi Security System 是一种功能强大并易于使用的替代性方案,使您不必再为 Java 企业应用程序编写大量的安全代码.虽然它专门针对使用 Spring 框架编写的应用程序,但是任何类型的 Java 应用程序都没有理由不去使用 Acegi.这份共分三部分的系列文章详细介绍了 Acegi,并展示了如何使用它保护简单的企业应用程序以及更复杂的应用程序. 本系列首先介绍企业应用程序中常见的安全问题,并说明 Acegi 如何解决这些问题.您将了解…
理论上讲,不存在牢不可破的漏洞,只是时间和成本问题.通常我们认为的不可破解,说的是破解需要难以接受的时间和成本.对于java程序来说,class文件很容易被反编译,所以理论上而言,对java程序做license限制,无法真正起到保护软件被盗窃的作用.但是,如果增加被反编译的成本,或者增加被反编译后能读懂源码的成本,也能从一定程度上起到保护软件被盗用的目的.针对不同的应用程序,可以使用不同的方法. 1. Android应用程序由于Android应用程序时需要下载才能被安装的,所以用户很容易可以得到…
建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它们都是在运行期解释执行的.为什么Java这种强编译型语言会需要这些脚本语言呢?那是因为脚本语言的三大特征,如下所示: 灵活:脚本语言一般都是动态类型,可以不用声明变量类型而直接使用,可以再运行期改变类型. 便捷:脚本语言是一种解释性语言,不需要编译成二进制代码,也不需要像Java一样生成字节码.它的…
Java程序员岗位面试题有哪些?   1.面向对象的特征有哪些方面(1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.(2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新…
http://www.tuicool.com/articles/IRnM7f http://transcoder.baidu.com/from=1012852q/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1004%2Cta%40iphone_2_6.0_11_8.1/baiduid=BF9750A8FBBD8D7B1A6C0FF1B11B9361/w=0_10_/t=iphone/l=3/tc?ref=www_iphone&lid=11…
为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以.遗憾的是,Java程序的源代码很容易被别人偷看.只要有一个反编译器,任何人都可以分析别人的代码.Java的灵活性使得源代码很容易被窃取,但与此同时,它也使通过加密保护代码变得相对容易,我们唯一需要了解的就是Java的ClassLoader对象.当然,在加密过程中,有关Java Cryptography Extension(JCE)的知识也是必不可少的. 有几种技术可以“模糊”Java类文件,…
一个基本的java程序一般包括几个部分,分别是程序所在的包名.程序中用到的其他包的路径.程序的类.类中的方法.变量和字面量. package demo; import java.util.Date; public class Demo { public static void main(String[] args) { int num; num=1; String str=new String(); Date date=new Date(); System.out.println(str); S…