首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 140 毫秒
1.
由于跨平台需求和动态连接的特性,使Java类文件容易被反编译。该文从提高程序模糊度出发,研究了数据混淆这一主流的代码混淆技术,并对类拆分、变量拆分等算法进行了完善和细节化。能有效防止java程序被逆向工程,使反编译工具反编译出来的源程序可读性极差。  相似文献   

2.
Java指令集结构的研究   总被引:1,自引:0,他引:1  
1 引言 Java是一种编程语言,用其编写的程序具有安全、模块化和可移植等特点。当前Java在Internet有广泛应用,在网站主页的HTML代码中嵌入Java类文件,可以增强界面的动画效果,这种类文件称为小程序(Applet),它是Java源程序的可执行代码。当浏览器访问包含小程序的主页时,相应的类文件从服务器传送到在客户机上运行的Java虚拟机(JVM)上,由JVM生成相应的类对象,并执行相应的方法。Netscape浏览器中就包含这种JVM。  相似文献   

3.
zua 《软件》2002,(11):35-36
Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。  相似文献   

4.
秦莹  陈虎 《计算机科学》2000,27(3):43-46
Java是一种面向对象、通用、支持并发的程序设计语言,自1995年推出以来,其应用领域已经从主要面向Internet转向大型分布式软件和嵌入式系统。Java语言源程序(*.java)并不基于任何一个平台,而是基于一台抽象的机器——Java虚拟机(Java virtual ma-chine—JVM)。JVM有自己的一套指令集并且使用独立的存储区域。编译后的代码称为类文件(class)。有相应的Java虚拟机规范、定义虚拟机指令集、类文件的格式、Java虚拟机的实现等标准,确保了类文件的可移植性。  相似文献   

5.
为了提高基于垃圾代码的控制流混淆方法的优化效果, 针对插入分支垃圾代码以及循环垃圾代码会引入大量额外开销的问题, 从软件保护中代码混淆技术出发, 对代码混淆技术的研究现状和原理、混淆算法攻击以及基于控制流混淆技术作了深入研究, 提出一种基于Java代码控制混淆中插入垃圾代码的改进方法。新方法与基于垃圾代码的控制流混淆变换方法比较, 结果表明, 新方法增加了代码抵抗攻击者的静态分析的能力, 增加了反编译以及逆向工程的难度, 既达到了很好的防御逆向工程攻击的效果, 又不会大量引入额外的系统开销。  相似文献   

6.
传统的Java程序利用软件Java虚拟机(Java Virtual Machine,JVM)对Java字节码文件进行解释或二次编译后交由本地CPU执行,其运行速度大大受限,而硬件JVM处理器可直接执行Java字节码,因而大幅提高了Java程序的运行速度,所以硬件JVM处理器是突破Java程序性能瓶颈的最有效方法.本文以Jop Java及picoJava为例,根据Java虚拟机的规范分析了硬件JVM处理器中最重要的流水线结构、堆栈结构及操作的实现方式、指令折叠技术和字节码与微码的映射技术,并提出了改进措施.  相似文献   

7.
为了对Java虚拟机(JVM)进行测试,开发人员通常需要手工设计或利用测试生成工具生成复杂的测试程序,从而检测JVM中潜在的缺陷。然而,复杂的测试程序给开发人员定位及修复缺陷带来了极高的成本。测试程序约简技术旨在保障测试程序缺陷检测能力的同时,尽可能的删减测试程序中与缺陷检测无关的代码。现有研究工作基于Delta调试在C程序和XML输入上可以取得较好的约简效果,但是在JVM测试场景中,具有复杂语法和语义依赖关系的Java测试程序约减仍存在粒度较粗、约简效果较差的问题,导致约简后的程序理解成本依然很高。因此,针对具有复杂程序依赖关系的Java测试程序,本文提出一种基于程序约束的细粒度测试程序约简方法JavaPruner。首先在语句块级别设计细粒度的代码度量方法,随后在Delta调试技术上引入语句块之间的依赖约束关系来对测试程序进行约简。以Java字节码测试程序为实验对象,通过从现有的针对JVM测试的测试程序生成工具中筛选出具有复杂依赖关系的50个测试程序作为基准数据集,并在这些数据集上验证JavaPruner的有效性。实验结果表明,JavaPruner可以有效删减Java字节码测试程序中的冗余代码。与现有方法相比,在所有基准数据集上约减能力平均可提升37.7%。同时,JavaPruner可以在保障程序有效性及缺陷检测能力的同时将Java字节码测试程序最大约简至其原有大小的1.09% ,有效降低了测试程序的分析和理解成本。  相似文献   

8.
IBM公司即将发布的WebSphereApplication Server高级版3.0,将允许用户运行多个Java程序,而且每种应用程序都有自己独立的的JVM(Java VirtualMachines)池。JVM池功能使用了IBM公司自己的Java虚拟机技术,从而放弃  相似文献   

9.
俞黎敏 《程序员》2010,(3):17-17
Terracotta是一个JVM级别的、具有Java可伸缩性和高可用性的、实现工业标准的开源集群框架。提供了HttpSession复制、分布式缓存、POJO集群、跨越集群的JVM来实现分布式应用程序缓存;采用代码注解的方式,而不需要修改任何代码即可在项目中使用。通过利用Terracotta分布式缓存技术,可以减少数据库负载、提高集群系统高可用性、可伸缩性和访问吞吐量。  相似文献   

10.
混淆转换作为一种防止逆向工程的代码保护技术伴随着Java,语言的迅速发展应运而生。以保护软件代码、提高逆向工程代价为目标,从破解与反破解的角度对控制流混淆转换技术进行了研究,提出了重构程序整体控制结构及隐藏用于控制转换的短暂变量的方法,并通过试验对控制流混淆转换给程序带来的时间和空间上的过载进行了客观评析。  相似文献   

11.
Reasoning about Java bytecode (JBC) is complicated due to its unstructured control-flow, the use of three-address code combined with the use of an operand stack, etc. Therefore, many static analyzers and model checkers for JBC first convert the code into a higher-level representation. In contrast to traditional decompilation, such representation is often not Java source, but rather some intermediate language which is a good input for the subsequent phases of the tool. Interpretive decompilation consists in partially evaluating an interpreter for the compiled language (in this case JBC) written in a high-level language with respect to the code to be decompiled. There have been proofs-of-concept that interpretive decompilation is feasible, but there remain important open issues when it comes to decompile a real language such as JBC. This paper presents, to the best of our knowledge, the first modular scheme to enable interpretive decompilation of a realistic programming language to a high-level representation, namely of JBC to Prolog. We introduce two notions of optimality which together require that decompilation does not generate code more than once for each program point. We demonstrate the impact of our modular approach and optimality issues on a series of realistic benchmarks. Decompilation times and decompiled program sizes are linear with the size of the input bytecode program. This demonstrates empirically the scalability of modular decompilation of JBC by partial evaluation.  相似文献   

12.
The interpretative approach to compilation allows compiling programs by partially evaluating an interpreter w.r.t. a source program. This approach, though very attractive in principle, has not been widely applied in practice mainly because of the difficulty in finding a partial evaluation strategy which always obtain “quality” compiled programs. In spite of this, in recent work we have performed a proof of concept of that, at least for some examples, this approach can be applied to decompile Java bytecode into Prolog. This allows applying existing advanced tools for analysis of logic programs in order to verify Java bytecode. However, successful partial evaluation of an interpreter for (a realistic subset of) Java bytecode is a rather challenging problem. The aim of this work is to improve the performance of the decompilation process above in two respects. First, we would like to obtain quality decompiled programs, i.e., simple and small. We refer to this as the effectiveness of the decompilation. Second, we would like the decompilation process to be as efficient as possible, both in terms of time and memory usage, in order to scale up in practice. We refer to this as the efficiency of the decompilation. With this aim, we propose several techniques for improving the partial evaluation strategy. We argue that our experimental results show that we are able to improve significantly the efficiency and effectiveness of the decompilation process.  相似文献   

13.
Methods of improving the decompilation quality, that is, the reconstruction of a program in a high-level language from a given program in a low-level language, are considered. Decompilation is considered as a reverse engineering problem; problems of decompilation quality are examined, and metrics for assessing this quality are proposed.  相似文献   

14.
逆编译系统中中间语言的设计和实现极大地影响逆编译的实用型和通用性 .文中介绍了一种结构简单、可读性强的中间语言 ,它既具有高级语言控制结构 ,又能对汇编语言数据类型进行规范 .用户可以通过阅读中间语言程序来分析、理解和消化软件 .该语言已在基于知识的逆编译系统中应用 .  相似文献   

15.
Bollella  G. Gosling  J. 《Computer》2000,33(6):47-54
New languages, programming disciplines, operating systems, and software engineering techniques sometimes hold considerable potential for real-time software developers. A promising area of interest-but one fairly new to the real-time community-is object-oriented programming. Java, for example, draws heavily from object orientation and is highly suitable for extension to real-time and embedded systems. Recognizing this fit between Java and real-time software development, the Real-Time for Java Experts Group (RTJEG) began developing the real-time specification for Java (RTSJ) in March 1999 under the Java Community Process. This article explains RTSJ's features and the thinking behind the specification's design. The goal of the RTJEG, of which the authors are both members, was to provide a platform-a Java execution environment and application program interface (API)-that lets programmers correctly reason about the temporal behavior of executing software  相似文献   

16.
基于语义层软件理解的形式化格局识别技术   总被引:2,自引:0,他引:2  
目前国内外学者在软件理解的研究上多注重于程序的词法层和语法层技术的探索,相应的有程序切片、程序类跟随踪、程序依赖性分析、反汇编与反编译等。但对程序的语义层理解方法进行研究的甚少。该文正是基于上述分析研究了一种软件理解新认识水平——形式化格局识别技术,以行为层状结构的变换来表述程序的语义,进而采用近人类的思维方式来理解并抽取软件的设计决策与体系结构。  相似文献   

17.
通过反向工程可以较容易获得Java程序代码的设计类图,从而给保护软件知识产权带来困难。为此,采用Java接口融合的代码迷惑方法,提出一种保护Java程序设计类图的代码迷惑算法,并根据该算法构造一种Java接口融合迷惑器。实验结果表明,该算法具有较好的迷惑效果,有效地隐藏程序的设计类图,并且没有额外时间消耗和大量冗余代码。  相似文献   

18.
陈凯明  刘宗田  王武荣  叶勇 《计算机工程》2002,28(11):95-96,122
将含有库函数名的汇编代码程序翻译成中间语言程序,然后再转换成高级语言程序可降低逆编译的复杂性,文章介绍了从汇编程序到中间语言程序的转换过程中,采用基于数据流和控制流分析的符号执行方法,该方法已在基于知识的逆编译系统DECLER中实现。  相似文献   

19.
申利民 《微机发展》2003,13(1):8-10
提出一种将逆编译技术应用于计算机病毒分析的方法,通过逆编译将带病毒机器码程序转换为功能等价的C语言程序,然后以C语言程序为基础进行病毒分析,清除和防治的研究。  相似文献   

20.
The commenter disagrees with the arguments in the above-titled article by P. Samuelson (ibid., vol.7, no.4, p.90-6, Jan. 1990) that reverse-engineering programs should be legal and that the unauthorized copies of the program created in decompilation are just `incidental' and thus do not infringe the program's copyright. He also disagrees with Samuelson's contention that there is a trend for the courts to find copyright infringement only where the program that results from the reverse engineering is substantially similar in expression to the decompiled program. He presents a detailed argument to support his viewpoint. Samuelson presents additional information is support of her position  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号