java黑客代码 黑客必备的代码( 七 )


定期检查 IBM 研究 Java 安全页面以便 IBM 在安全性领域的创新有重要发展时能够跟踪这一创新 。
如果您的 Java 代码运行在 S/390 系统上,那么您将需要查阅 S/390 Java 安全页面以获取额外的信息 。
关于作者
Bijaya Nanda Sahu 是就职于印度 IBM Global Services 的软件工程师 。他从事过各种因特网技术和框架(J2EE、WSBCC、JADE)、 WebSphere 相关技术、UML 和 OOAD 方面的工作 。目前,他从事因特网银行安全性问题方面的工作 , 重点在 WebSphere Application Server 和 Portal Server 上 。可以通过 bijaya.sahu@in.ibm.com 和他联系
关于黑客和JAVAJAVA高级语言,对黑客毫无疑义,
编程序用的语言,想做黑客学汇编语言
更难,不过不可能用汇编来写程序,因为太难
如何用java程序实现加密的序列号Java是一种跨平台的、解释型语言 。Java 源代码编译中间“字节码”存储于class文件中 。Class文件是一种字节码形式的中间代码 , 该字节码中包括了很多源代码的信息,例如变量名、方法名等 。因此,Java中间代码的反编译就变得非常轻易 。目前市场上有许多免费的、商用的反编译软件,都能够生成高质量的反编译后的源代码 。所以,对开发人员来说 , 如何保护Java程序就变成了一个非常重要的挑战 。本文首先讨论了保护Java程序的基本方法,然后对代码混淆问题进行深入研究 , 最后结合一个实际的应用程序,分析如何在实践中保护Java程序 。
反编译成为保护Java程序的最大挑战通常C、C++等编程语言开发的程序都被编译成目标代码,这些目标代码都是本机器的二进制可执行代码 。通常所有的源文件被编译、链接成一个可执行文件 。在这些可执行文件中,编译器删除了程序中的变量名称、方法名称等信息,这些信息往往是由内存地址表示,例如假如需要使用一个变量,往往是通过这个变量的地址来访问的 。因此,反编译这些本地的目标代码就是非常困难的 。
Java语言的出现 , 使得反编译变得非常轻易而有效 。原因如下:1.由于跨平台的需求,Java的指令集比较简单而通用,较轻易得出程序的语义信息;2.Java编译器将每一个类编译成一个单独的文件,这也简化了反编译的工作;3.Java 的Class文件中,仍然保留所有的方法名称、变量名称 , 并且通过这些名称来访问变量和方法,这些符号往往带有许多语义信息 。由于Java程序自身的特点,对于不经过处理的Java程序反编译的效果非常好 。
目前,市场上有许多Java的反编译工具 , 有免费的,也有商业使用的,还有的是开放源代码的 。这些工具的反编译速度和效果都非常不错 。好的反编译软件,能够反编译出非常接近源代码的程序 。因此,通过反编译器,黑客能够对这些程序进行更改,或者复用其中的程序 。因此,如何保护Java程序不被反编译,是非常重要的一个问题 。
常用的保护技术由于Java字节码的抽象级别较高 , 因此它们较轻易被反编译 。本节介绍了几种常用的方法,用于保护Java字节码不被反编译 。通常,这些方法不能够绝对防止程序被反编译 , 而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点 。
隔离Java程序最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式 。例如,开发人员可以将要害的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件 。这样黑客就没有办法反编译Class文件 。目前,通过接口提供服务的标准和协议也越来越多 , 例如 HTTP、Web Service、RPC等 。但是有很多应用都不适合这种保护方式 , 例如对于单机运行的程序就无法隔离Java程序 。这种保护方式见图1所示 。

推荐阅读