共查询到18条相似文献,搜索用时 46 毫秒
1.
2.
3.
范锋 《计算机光盘软件与应用》2012,(9):168+170
随着计算机技术突飞猛进的发展,人们对于支持计算机各种运行的软件技术开始逐步的关注,其中混淆技术在地址逆向工程和重组工程中占据了重要的位置,本文将主要阐述混淆技术的相关领域概念包括发展中不断推演的理论、算法和评估。然后在通过将理论和算法应用到混淆技术的两个分支类内混淆和类间混淆详细说明,结尾通过目前Java程序混淆技术的发展现状,进行对未来发展的客观估计、大胆假设以及深切的期望。 相似文献
4.
本文从高效的动态软件更新实现机制、自动化的运行时对象状态转换方法及动态更新错误自动恢复技术H个方面系统研究了Java程序动态更新支撑技术,并在工业级的Java虚拟化上实现了上述技术,得到一个高效、易用、可靠的Java程序动态软件更新. 相似文献
5.
软件动态胎记技术是实现混淆对抗的软件抄袭检测的有效手段之一.然而,多线程程序中线程交织的不确定性对其造成了不可忽视的影响;极端情况下,传统动态胎记技术甚至会判定同一个程序与其自身不存在抄袭关系.对此,提出从多线程程序在同一输入下的多条执行轨迹中进行相似部分的识别,并从中抽象出不易受线程交织影响的行为motifs来实现多线程程序的抄袭检测.该方法捕捉程序的动态执行轨迹,经过轨迹修剪、gram匹配以及扩展和抽象,从中提取motifs胎记建模多线程程序的行为;最终,通过衡量motifs胎记的相似性实现程序间潜在抄袭的判定.在一个包含234个不同版本多线程程序的公共数据集上开展的实验表明,motifs胎记是一种可靠的线程感知胎记方法,不仅可有效对抗当下主流的代码混淆技术,相比现有的2种多线程程序抄袭检测方法TreSB(thread-related system call birthmark)和TOB(thread-oblivious birthmark),也体现出更优秀的检测能力. 相似文献
6.
7.
一种基于模块单子语义的动态程序切片方法 总被引:2,自引:0,他引:2
提出一种基于程序模块单子语义的新动态切片方法--模块单子动态切片.首先通过单子转换器,将切片这一类计算抽象成独立于具体语言的实体:切片单子转换器.然后,将该切片转换器作为模块加载到实际程序中,并给出相应的模块单子动态切片算法.据此,可直接在抽象语法结构上计算动态切片,不必记录程序执行历史;相应单子切片器也无需显式地构造诸如依赖图的中间结构.这种模块化抽象机制使得文中的动态切片算法具有很强的可扩展性和重用性. 相似文献
8.
多线程并发程序的广泛使用引发了更多的数据竞争问题,竞争检测对于提高软件质量具有重要意义。将竞争静态检测和静态切片分析结合起来,提出了一种基于类的Java数据竞争静态检测算法,该算法利用函数调用层次获得函数调用链,对类域进行分析,找出可能数据竞争,通过静态切片缩小程序分析范围,并结合数据竞争的必要条件,去掉不可能数据竞争。实例表明,该算法可用于指导修复程序中的竞争缺陷。 相似文献
9.
程序切片作为软件理解领域的一种重要的分析技术,可以将程序分解为独立的程序线程。系统依赖图的概念及两阶段图形可达性算法的出现,则有效解决了程序切片的过程调用问题。文章介绍了程序切片的基本概念,并给出了在面向对象程序中进行静态分层切片的思想。作为分层切片思想的应用,文章给出了在一种Java程序切片工具模型JSTM(JavaSlicingToolsModel)中运用系统依赖图进行方法内切片的具体算法。 相似文献
10.
11.
This paper describes intra‐method control‐flow and data‐flow testing criteria for the Java bytecode language. Six testing criteria are considered for the generation of testing requirements: four control‐flow and two data‐flow based. The main reason to work at a lower level is that, even when there is no source code, structural testing requirements can still be derived and used to assess the quality of a given test set. It can be used, for instance, to perform structural testing on third‐party Java components. In addition, the bytecode can be seen as an intermediate language, so the analysis performed at this level can be mapped back to the original high‐level language that generated the bytecode. To support the application of the testing criteria, we have implemented a tool named JaBUTi (Java Bytecode Understanding and Testing). JaBUTi is used to illustrate the application of the ideas developed in this paper. Copyright © 2006 John Wiley & Sons, Ltd. 相似文献
12.
Dynamic software updating is critical for many systems that must provide continuous service. In addition, the Java language
is gaining increasing popularity in developing distributed systems. Most previous works on updating are concerned with safely
updating one class every time. It has many limitations on updating classes, such as not allowing deleting methods invoked
in other classes. In this paper, the update transaction is purposed to dynamically update the class set, and some of its properties
are discussed, such as atomicity, consistency, isolation, and durability (ACID). Then the property of type-safety is proven
formally. In order to update without changing the Java Virtual Machine (JVM) and the Java programming language, this paper
proposes a new implementation method. The method makes use of the Java class loading mechanism and reflection mechanism. We
also present how to design an updatable Java program and a Java updating program. At the end of the paper, an experiment is
made for analysis. 相似文献
13.
Automatic extraction of executable program subsets by simultaneous dynamic program slicing 总被引:1,自引:1,他引:0
Robert J. Hall 《Automated Software Engineering》1995,2(1):33-53
Developers of software product families and maintainers of legacy software can benefit from the ability to automatically extract a correctly functioning subset of the code of a system that performs a desired subset of its behaviors. This article introduces a technique for automatic subsetting based on computing asimultaneous dynamic program slice of the code for a set of representative inputs. I show first why the naive approach (unioning traditional dynamic slices) fails, then give an abstract algorithm that succeeds in any slicing framework satisfying certain (mild) assumptions. Experiments using an implementation within the ISAT environment indicate that the algorithm consistently produces significantly smaller subsets than three competing approaches. I also discuss how to characterize the subset's correctness on inputs of interest outside the set used to compute the slice. 相似文献
14.
We present a study of the static structure of real Java bytecode programs. A total of 1132 Java jar‐files were collected from the Internet and analyzed. In addition to simple counts (number of methods per class, number of bytecode instructions per method, etc.), structural metrics such as the complexity of control‐flow and inheritance graphs were computed. We believe this study will be valuable in the design of future programming languages and virtual machine instruction sets, as well as in the efficient implementation of compilers and other language processors. Copyright © 2006 John Wiley & Sons, Ltd. 相似文献
15.
Dave Binkley Sebastian Danicic Tibor Gyimthy Mark Harman kos Kiss Bogdan Korel 《Theoretical computer science》2006,360(1-3):23-41
This paper presents a theory of dynamic slicing, which reveals that the relationship between static and dynamic slicing is more subtle than previously thought. The definitions of dynamic slicing are formulated in terms of the projection theory of slicing. This shows that existing forms of dynamic slicing contain three orthogonal dimensions in their slicing criteria and allows for a lattice-theoretic study of the subsumption relationship between these dimensions and their relationship to static slicing formulations. 相似文献
16.
一种基于逆向程序流的程序切片算法* 总被引:1,自引:0,他引:1
传统的程序切片方法一般基于程序依赖图(PDG)和系统依赖图(SDG)的可达性算法,但是在建立PDG和SDG的过程中会计算一些与切片无关的数据依赖,造成时空资源的浪费及切片效率的降低。提出了一种基于程序逆向流的切片算法,它事先建立逆向程序流,再从切片点开始沿逆向程序流扫描程序以获得程序切片,只计算与切片相关的数据依赖,从而提高了切片计算的时空效率。通过实验发现该算法具有一定的可行性和实用性。本算法适用于包括Fortran、C等编程语言在内的命令式程序的切片生成。 相似文献
17.
软件版权保护是知识产权保护体系中的重要组成部分。针对目前传统的服务器端软件授权方式无法完全满足EULA要求的问题,基于硬件特征和独立授权管理服务器的架构,提出了支持动态许可证的分布式服务器端软件授权认证模型。该模型通过"强制特征验证和原子授权"的机制解决了软件版权保护、软件迁移的重新认证授权等问题,在可行性、安全性和完备性等方面均达到了EULA协议的要求。 相似文献
18.
JAVA语言是目前一种主要的面向对象编程语言,由于JAVA语言复杂的结构,使得对JAVA程序进行程序切片非常困难.本文提出一种层次的构造JAVA系统依赖图的算法,基于JAVA程序本身的层次结构,自顶向下构造系统依赖图,然后基于构造的系统依赖图,用一种改进的两阶段算法得到JAVA程序切片. 相似文献