Java、.Net 源代码保护技术
第0章 摘要 章
近年来,java 虚拟机和.net 虚拟机技术得到了空前的发展和广泛的应用,然 而随之而来的问题也出现了。 这种基于虚拟机的语言的目标代码中包含了大部分 的源代码结构信息,所以很容易对他们进行逆向工程,从而
源代码被提取,这给 新型技术的发展造成了威胁。 所以,如何保护源代码就显得尤为重要,需要一种有效的哦方法来保护软件 和软件知识产权。代码混淆作为一种防止逆向工程技术就应运而生。而在实际应 用中,对软件提供绝对安全保护是不现实的,只要使攻击者攻击时付出较高的代 价,就可以认为达到了安全保护的作用。 本文主要对安全
问题和软件保护做了介绍,同时也对 java 和.net 技术做了相 应的说明。
关键字:java
.net
代码混淆
安全性
第1章 Java 和.net 平台的介绍
1.1 java 平台
Java, 是由 Sun Microsystems 公司于1995年5月推出的 Java 程序设计语言 和 Java 平台的总称。用 Java 实现的 HotJava 浏览器显示了 Java 的魅力:跨平 台、动态的 Web、Internet 计算。从此,Java 被广泛接受并推动了 Web 的迅速 发展,常用的浏览器现在均支持 Java applet。
1.1.1 历史背景
Java 平台和语言最开始只是升阳公司在 1990 年 12 开始研究的一个内部项 目。 升阳公司的一个叫做帕特里克?诺顿的工程师被升阳自己开发的 C 和 C 语言 编译器搞得焦头烂额,因为其中的 API 极其难用。帕特里克决定改用 NeXT,同 时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。“Stealth 计划” 后来改名为“Green 计划”,詹姆斯?高斯林和麦克?舍林丹也加入了帕特里克的工 作小组。 他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小 工作室里面研究开发新技术,瞄准下一代智能家电的程序设计,升阳公司预料未 来科技将在家用电器领域大显身手。团队最初考虑使用 C 语言,但是很多成员 包括升阳的首席科学家比尔?乔伊, 发现 C 和可用的 API 在某些方面存在很大问 题。 工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现 C 太复杂以至很多开发者经常错误使用。他们发现 C 缺少垃圾回收系统,还有可 移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到 各种设备上的平台。 于是 java 虚拟机就产生了,同时 java 语言也得到了广泛的 应用。
1.1.2 java 的特征
1、Java 语言是简单的 、 语言是简单的。Java 语言的语法与 C 语言和 C++语言很接近,很 容易
学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令 人迷惑的特性,如操作符重载、多
继承、自动的强制类型转换。特别地,Java 语言不使用指针, 并提供了自动的废料收集, 使得程序员不必为内存管理而担忧。 2、Java 语言是一个面向对象的。Java 语言提供类、接口和继承等原语, 语言是一个面向对象的 为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与
接口之间的实现机制。Java 语言全面支持动态绑定,而 C++ 语言只对虚函数使 用动态绑定。总之,Java 语言是一个纯的面向对象程序
设计语言。 3、Java 语言是分布式的 语言是分布式的。Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net) ,它提供了用于网络应 用编程的类库,包括 URL、URLConnection、Socket、 ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。 4、Java 语言是健壮的 。 Java 的强类型机制、异常处理、废料的自动收集 语言是健壮的。 等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安 全检查机制使得 Java 更具健壮性。 、
5、Java 语言是安全的 。 Java 通常被用在网络环境中,为此,
Java 提供了 语言是安全的