This paper discusses the need for measures of complexity and unstructuredness of programs. A simple language independent concept is put forward as a measure of controlflow complexity in program text and is then devel...
详细信息
This paper proposes a dissimilarity detection algorithm that can find different regions between similar signals. In particular, we address the detection problem of branching statements in program control flow using el...
详细信息
This paper proposes a dissimilarity detection algorithm that can find different regions between similar signals. In particular, we address the detection problem of branching statements in program control flow using electromagnetic (EM) side-channels, where we have shown that such statements can be detected in emanating side-channels. Based on the findings, we have proposed a generalized approach for dissimilarity detection that can be efficiently applied to various real-world applications. In the proposed method, symbolic representation of the signals is used for efficient processing, where each signal frame is transformed into a string. The codebook of observed patterns is constructed with the reference signal. Then, the sequence of strings that is obtained from the main signal is compared with the codebook to find the newly observed patterns. Finally, the presented method outputs the samples of dissimilar regions in the signal compared to the reference. In the experiments, various EM side-channel signals are collected from different devices and different controlflow examples to show the applicability and efficiency of the proposed method and the results show that dissimilarities can be detected with >98% accuracy.
In attempting to describe the quality of computer software, one of the more frequently mentioned measurable attributes is complexity of the flow of control. During the past several years, there have been many attempts...
详细信息
In attempting to describe the quality of computer software, one of the more frequently mentioned measurable attributes is complexity of the flow of control. During the past several years, there have been many attempts to quantify this aspect of computer programs, approaching the problem from such diverse points of view as graph theory and software science. Most notable measures in these areas are McCabe's cyclomatic complexity and Halstead's software effort. More recently, Woodward et al. proposed a complexity measure based on the number of crossings, or "knots," of arcs in a linearization of the flowgraph.
Intra-task voltage scheduling (IntraDVS), which adjusts the supply voltage within an individual task boundary, is an effective technique for developing low-power applications. In IntraDVS, slack times are estimated by...
详细信息
ISBN:
(纸本)0780387368
Intra-task voltage scheduling (IntraDVS), which adjusts the supply voltage within an individual task boundary, is an effective technique for developing low-power applications. In IntraDVS, slack times are estimated by analyzing program's controlflow information. In this paper, we propose an optimization technique for IntraDVS using data flow information. The proposed algorithm improves the energy efficiency by moving the voltage scaling points to earlier instructions based on the analysis results of program's data flow. The experimental results using an MPEG-4 encoder program show that the proposed algorithm reduces the energy consumption by 40-45% over the original IntraDVS algorithm.
Code reuse attacks (CRAs) are recent security exploits that allow attackers to execute arbitrary code on a compromised machine. CRAs, exemplified by return-oriented and jump-oriented programming approaches, reuse frag...
详细信息
ISBN:
(纸本)9781467304764
Code reuse attacks (CRAs) are recent security exploits that allow attackers to execute arbitrary code on a compromised machine. CRAs, exemplified by return-oriented and jump-oriented programming approaches, reuse fragments of the library code, thus avoiding the need for explicit injection of attack code on the stack. Since the executed code is reused existing code, CRAs bypass current hardware and software security measures that prevent execution from data or stack regions of memory. While software-based full controlflow integrity (CFI) checking can protect against CRAs, it includes significant overhead, involves non-trivial effort of constructing a controlflow graph, relies on proprietary tools and has potential vulnerabilities due to the presence of unintended branch instructions in architectures such as x86-those branches are not checked by the software CFI. We propose branch regulation (BR), a lightweight hardware-supported protection mechanism against the CRAs that addresses all limitations of software CFI. BR enforces simple controlflow rules in hardware at the function granularity to disallow arbitrary controlflow transfers from one function into the middle of another function. This prevents common classes of CRAs without the complexity and run-time overhead of full CFI enforcement. BR incurs a slowdown of about 2% and increases the code footprint by less than 1% on the average for the SPEC 2006 benchmarks.
Predicated execution is a promising architectural feature for exploiting instruction-level parallelism in the presence of controlflow. Compiling for predicated execution involves converting program control flow into ...
详细信息
ISBN:
(纸本)9780818679773
Predicated execution is a promising architectural feature for exploiting instruction-level parallelism in the presence of controlflow. Compiling for predicated execution involves converting program control flow into conditional, or predicated, instructions. This process is known as if-conversion. In order to effectively apply if-conversion, one must address two major issues: what should be if-converted and when the if-conversion should be applied. A compiler's use of predication as a representation is most effective when large amounts of code are if-converted and if-conversion is performed early in the compilation procedure. On the other hand the final code generated for a processor with predicated execution requires a delicate balance between controlflow and predication to achieve efficient execution. The appropriate balance is tightly coupled with scheduling decisions and detailed processor characteristics. This paper presents an effective compilation framework that allows the compiler to maximize the benefits of predication as a compiler representation while delaying the final balancing of controlflow and predication to schedule time.
Whole program paths (WPP) are a new approach to capturing and representing a program's dynamic---actually executed---controlflow. Unlike other path profiling techniques, which record intraprocedural or acyclic pa...
详细信息
ISBN:
(纸本)9781581130942
Whole program paths (WPP) are a new approach to capturing and representing a program's dynamic---actually executed---controlflow. Unlike other path profiling techniques, which record intraprocedural or acyclic paths, WPPs produce a single, compact description of a program's entire controlflow, including loop iteration and interprocedural *** paper explains how to collect and represent WPPs. It also shows how to use WPPs to find hot subpaths, which are the heavily executed sequences of code that should be the focus of performance tuning and compiler optimization.
This paper focuses on inserting defensive traps in COBOL programs during maintenance in order to improve the quality of the software. The paper defines ‘defensive trap’ and describes two types, active and passive. O...
详细信息
暂无评论