Explore chapters and articles related to this topic
Major Issues in Component-Based Software Engineering
Published in Umesh Kumar Tiwari, Santosh Kumar, Component-Based Software Engineering, 2020
Umesh Kumar Tiwari, Santosh Kumar
McCabe (1976) defined a complexity measurement method based on the interactions among the statements of a program. He offered and implemented graph-theoretic notions in programming applications, using a code control-flow graph to compute the complexity. In a control-flow graph, a sequential block of code or a single statement is represented as a node, and control flows among these nodes are represented as edges. The cyclomatic complexity metric is easy to compute and maintain, as well as giving the relative complexity of various designs. This method is applicable both to standalone programs and to hierarchical nests of subprograms.
Performance and Footprint at the Toolchain Level
Published in Ivan Cibrario Bertolotti, Tingting Hu, Embedded Software Development, 2017
Ivan Cibrario Bertolotti, Tingting Hu
The control flow graph is a data structure built on top of an internal code representation—a tree-based representation in this case—that abstracts the control flow behavior of a unit of code. In GCC, control flow graph generation takes individual functions as units and works on them one by one. In the control flow graph nodes represent basic blocks of code, and directed edges link one node to another to represent possible transfers of control flow from one basic block to another.
Malware Detection and Mitigation
Published in Nicholas Kolokotronis, Stavros Shiaeles, Cyber-Security Threats, Actors, and Dynamic Mitigation, 2021
Gueltoum Bendiab, Stavros Shiaeles, Nick Savage
Advanced static analysis of malware can provide information by examining the malware code with advanced reverse engineering tools. In this context, various malware detection techniques that rely on advanced static analysis have been proposed by the research community. Advanced static analysis is mainly used to explore the malware code functionality and extract its static properties using binary analysis tools [5]. A pattern that identifies the malware's unique characteristics can be generated, so that this malware can be identified in the future. Most common detection features that can be extracted from the malware code using advanced static analysis are the following: Opcode sequence (or operational code): It is the first part of a machine code instruction that identifies what operation to be executed by the Central Processing Unit (CPU, e.g. move, push, pop, etc.). Many works have used opcode sequences to detect variants of known malware families, by calculating the similarity between opcode sequences, or frequency of appearance of opcode sequences [11].Control flow graphs (CFG): It is a directed graph that reveals the control flow of a program, where blocks of code are presented by nodes and control flow paths by edges [4]. It can be used to extract the malware structure from disassembled executable and capture its behavior [12].Sequence N-gram: An N-gram refers to all substrings of a larger string with a length n [13]. For example, the string “Malware” can be split into 4-grams as follows: “MALW,” “ALWA,” “LWAR,” “WARE.” N-grams are basically used to investigate the structure of the malware using bytes, characters, or text strings.API calls: Analyzing API calls can also provide relevant information for malware detection because their executions largely depend on the API calls, they issue to the operating system (OS). Each API call is performed by the malicious file when it is running, which can show how the malware code behaves with the OS [14]. For example, the Windows API calls “CreateRemoteThread” and “LoadLibrary” are usually used to inject malware into another process [4].Strings: A string refers to the sequence of characters in the malware program, which is typically stored in either ASCII or Unicode format [9]. Extracting strings from the malware executable can provide valuable information about its functionality. For example, if a malware uses a domain controlled by the attacker, then the domain name is stored as a string.
Complex network anomaly recognition integrating multi-source and large data
Published in International Journal of Computers and Applications, 2020
The following gives the predicate that the expression object can be traced: If there are two points and on the control flow graph, and (in the control flow graph, is a direct or indirect precursor of ), the individual u of is focused into an individual of , then , where .If there are two points and on the control flow graph, and , the individual u of is divided into an individual of , then , where .
The research of endless loop detection method based on the basic path
Published in International Journal of Computers and Applications, 2020
Xuexin Gao, Yongmin Mu, Meie Shen
Each code segment represents a node of control flow graph, and the goto statement is the edge of the control flow graph pointing from a node to another node in the above analysis results [13,14]. By reading the JSON file and parsing its structure, it can be transformed into a dictionary data format and the control flow graph can be drawn by Graphviz. The dictionary is a variable container model of the key/value pair structure that can store objects of any type [15]. And the dictionary of control flow graph in this paper is designed as Table 3.