Grafy toku řízení (control flow graph -- CFG) slouží jako základ pro mnoho analýz vyhodnocujících kvalitu programu. Takovou analýzou je i testování založené na mo...
详细信息
Grafy toku řízení (control flow graph -- CFG) slouží jako základ pro mnoho analýz vyhodnocujících kvalitu programu. Takovou analýzou je i testování založené na modelech (model-based testing), které na základě analýzy modelu kódu, např. grafu, generuje testovací případy. Aby bylo možné tuto analýzu provádět co nejobecněji, je vhodné, aby instrukce obsažené v CFG patřily do některé z obecných instrukčních *** práce se zabývá extrakcí grafů toku řízení z bajtkódu jazyka Java a následným překladem jednotlivých instrukcí bajtkódu uvnitř základních bloků do instrukční sady LLVM IR. Výsledný program dokáže spolehlivě získat grafy toku řízení z programů v jazyce Java zadaných v jakékoli z nejběžnějších forem pro šíření tohoto typu software (.jar archiv, .java nebo .class soubory). Grafy na výstupu jsou navíc koncipovány tak, aby nad nimi bylo možné provádět analýzu za účelem generování jednotkových testů.
In order to improve the efficiency of regression testing in web application,the control flow graph and the greedy algorithm are *** paper considers a web page as a basic unit and introduces a test case selection metho...
详细信息
In order to improve the efficiency of regression testing in web application,the control flow graph and the greedy algorithm are *** paper considers a web page as a basic unit and introduces a test case selection method for web application regression testing based on the controlflow *** method is safe enough to the test case *** the base of features of request sequence in web application,the minimization technique and the priority of test cases are taken into consideration in the process of execution of test cases in regression testing for web *** improved greedy algorithm is also raised resulting in optimization of execution of test *** experiments indicate that the number of test cases which need to be retested is reduced,and the efficiency of execution of test cases is also improved.
To solve the problems that the exception handling code is hard to test and maintain and that it affects the robustness and reliability of software, a method for evaluating the exception handling of programs is present...
详细信息
To solve the problems that the exception handling code is hard to test and maintain and that it affects the robustness and reliability of software, a method for evaluating the exception handling of programs is presented. The exception propagation graph (EPG) that describes the large programs with exception handling constructs is proposed by simplifying the control flow graph and it is applied to a case to verify its validity. According to the EPG, the exception handling code that never executes is identified; the points that are the most critical to controlling exception propagation are found; and the irrational exception handling code is corrected. The constructing algorithm for the EPG is given; thus, this provides a basis for automatically constructing the EPG and automatically correcting the irrational exception handling code.
This paper improves the breadth-first search strategy in directed automated random testing (DART) to generate a fewer number of test data while gaining higher branch coverage, namely Static DART or SDART for short. In...
详细信息
This paper improves the breadth-first search strategy in directed automated random testing (DART) to generate a fewer number of test data while gaining higher branch coverage, namely Static DART or SDART for short. In addition, the paper extends the test data compilation mechanism in DART, which currently only supports the projects written in C, to generate test data for C++ projects. The main idea of SDART is when it is less likely to increase code coverage with the current path selection strategies, the static test data generation will be applied with the expectation that more branches are covered earlier. Furthermore, in order to extend the test data compilation of DART for C++ context, the paper suggests a general test driver technique for C++ which supports various types of parameters including basic types, arrays, pointers, and derived types. Currently, an experimental tool has been implemented based on the proposal in order to demonstrate its efficacy in practice. The results have shown that SDART achieves higher branch coverage with a fewer number of test data in comparison with that of DART in practice.
Exception handling is a powerful mechanism that separates the error handling code from normal code. However, incorrect usage of exception will bring about more potential faults in the code. Based on the study of excep...
详细信息
Exception handling is a powerful mechanism that separates the error handling code from normal code. However, incorrect usage of exception will bring about more potential faults in the code. Based on the study of exception model of C++, the paper proposes a precise and efficient representation of programs with exception handling constructs Exception control flow graph, which can represent explicitly the implicit controlflow of exception and exception propagation path. Then it presents the structure testing criteria of programs with exception handling constructs based on the representation method, and gives the computing method. The approach overcomes the limitations of previous incorrect analysis because of failing to account for the effects of exception handling constructs.
In optimizing compilers, data structure choices directly influence the power and efficiency of practical program optimization. A poor choice of data structure can inhibit optimization or slow compilation to the point ...
详细信息
In optimizing compilers, data structure choices directly influence the power and efficiency of practical program optimization. A poor choice of data structure can inhibit optimization or slow compilation to the point that advanced optimization features become undesirable. Recently, static single assignment form and the control dependence graph have been proposed to represent data flow and controlflow properties of programs. Each of these previously unrelated techniques lends efficiency and power to a useful class of program optimizations. Although both of these structures are attractive, the difficulty of their construction and their potential size have discouraged their use. We present new algorithms that efficiently compute these data structures for arbitrary control flow graphs. The algorithms use dominance frontiers, a new concept that may have other applications. We also give analytical and experimental evidence that all of these data structures are usually linear in the size of the original program. This paper thus presents strong evidence that these structures can be of practical use in optimization.
Context: Vulnerability detection is critical to ensure software security, and detecting vulnerabilities in smart contract code is currently gaining massive attention. Existing deep learning -based vulnerability detect...
详细信息
Context: Vulnerability detection is critical to ensure software security, and detecting vulnerabilities in smart contract code is currently gaining massive attention. Existing deep learning -based vulnerability detection methods represent the code as a code structure graph and eliminate vulnerability -irrelevant nodes. Then, they learn vulnerability -related code features from the simplified graph for vulnerability detection. However, this simplified graph struggles to represent relatively complete structural information of code, which may affect the performance of existing vulnerability detection methods. Objective: In this paper, we present a novel V ulnerability D etection framework based on C ritical E xecution P aths (VDCEP), which aims to improve smart contract vulnerability detection. Method: Firstly, given a code structure graph, we deconstruct it into multiple execution paths that reflect rich structural information of code. To reduce irrelevant code information, a path selection strategy is employed to identify critical execution paths that may contain vulnerable code information. Secondly, a feature extraction module is adopted to learn feature representations of critical paths. Finally, we feed all path feature representations into a classifier for vulnerability detection. Also, the feature weights of paths are provided to measure their importance in vulnerability detection. Results: We evaluate VDCEP on a large dataset with four types of smart contract vulnerabilities. Results show that VDCEP outperforms 14 representative vulnerability detection methods by 5.34%-60.88% in F1 -score. The ablation studies analyze the effects of our path selection strategy and feature extraction module on VDCEP. Moreover, VDCEP still outperforms ChatGPT by 34.46% in F1 -score. Conclusion: Compared to existing vulnerability detection methods, VDCEP is more effective in detecting smart contract vulnerabilities by utilizing critical execution paths. Besides, we can provide in
Remote attestation is an excellent approach to confirm the security states of Internet of Things (IoT) devices. It allows an entity (verifier) to validate the integrity of a potentially compromised platform (prover). ...
详细信息
Remote attestation is an excellent approach to confirm the security states of Internet of Things (IoT) devices. It allows an entity (verifier) to validate the integrity of a potentially compromised platform (prover). Most of the current attestation schemes are static, which verify only the software integrity of devices. Recently, some runtime attestation schemes based on the control flow graph (CFG) of the program have been proposed to collect the runtime information. However, the algorithm for constructing CFG only focuses on the rationality of the programs' controlflow, and ignores the possibility that attackers could compromise the controlflow of the device by modifying key data. Some mitigation of runtime exploitation technologies take into account the Unique Code Target (UCT) property of controlflow, but there are limitations to their algorithms abilities to find out the constraining data. In this paper, we present a Data Oriented control flow graph (DO-CFG) that can match a single legitimate target for each control-flow transfer, which guarantees both the rationality and the full uniqueness of programs' controlflow. Furthermore, we propose a Data-Oriented Runtime Attestation (DO-RA) scheme based on DO-CFG. It collects some critical non-control data to enhance the detection ability of the attestation scheme, which further ensures the uniqueness of the controlflow. We also present a detailed proof-of-concept implementation and analyze our protocol based on Raspberry Pi. We simulate several real applications to evaluate the security and performance of DO-RA, which demonstrates that our scheme provides a more comprehensive detection capability within an acceptable overhead. (c) 2020 Elsevier Ltd. All rights reserved.
This paper presents a simple and fast algorithm with proof of correctness for analyzing dominance relations of control flow graphs (CFGs). A dominator tree and dominance frontiers are obtained by reducing a DAG, which...
详细信息
This paper presents a simple and fast algorithm with proof of correctness for analyzing dominance relations of control flow graphs (CFGs). A dominator tree and dominance frontiers are obtained by reducing a DAG, which is obtained by adding dummy vertexes to the original CFG to transmit dominance relation of irreducible loops to the resultant DAG. A specific order of stacking vertexes eliminates the necessity to search for reduction candidates. The computational complexity of the algorithm for a real-world CFG with M edges is O(M), which is also confirmed by analyzing about 1700 CFGs extracted from real programs.
We propose SiCaGCN, a learning system to predict the similarity of a given software code to a set of codes that are permitted to run on a computational resource, such as a supercomputer or a cloud server. This code ch...
详细信息
We propose SiCaGCN, a learning system to predict the similarity of a given software code to a set of codes that are permitted to run on a computational resource, such as a supercomputer or a cloud server. This code characterization allows us to detect abusive codes. Our system relies on a structural analysis of the control-flowgraph of the software codes and two different graph similarity measures: graph Edit Distance (GED) and a singular values based metric. SiCaGCN combines elements of graph Convolutional Neural Networks (GCN), Capsule networks, attention mechanism, and neural tensor networks. Our experimental results include a study of the trade-offs between the two similarity metrics and two variations of our learning networks, with and without the use of capsules. Our main findings are that the use of capsules reduces mean square error significantly for both similarity metrics. Use of capsules reduces the runtime to calculate the GED while increases the runtime of singular values calculation.
暂无评论