Next Article in Journal
Gas Sensors Based on Localized Surface Plasmon Resonances: Synthesis of Oxide Films with Embedded Metal Nanoparticles, Theory and Simulation, and Sensitivity Enhancement Strategies
Previous Article in Journal
Fermented Antler Improves Endurance during Exercise Performance by Increasing Mitochondrial Biogenesis and Muscle Strength in Mice
Previous Article in Special Issue
Abstracting Strings for Model Checking of C Programs
Article

An Approach for Detecting Feasible Paths Based on Minimal SSA Representation and Symbolic Execution

1
School of Computer Sciences, Universiti Sains Malaysia, Pulau Pinang 11800, Malaysia
2
Faculty of Computer Studies, Arab Open University, P.O.Box 84901, Riyadh 11681, Saudi Arabia
*
Author to whom correspondence should be addressed.
Academic Editors: Pietro Ferrara and Agostino Cortesi
Appl. Sci. 2021, 11(12), 5384; https://doi.org/10.3390/app11125384
Received: 15 April 2021 / Revised: 24 May 2021 / Accepted: 31 May 2021 / Published: 10 June 2021
(This article belongs to the Special Issue Static Analysis Techniques: Recent Advances and New Horizons)
Static analysis is one of the techniques used today to analyze source codes and minimize the issue of software vulnerability. Static analysis has the ability to observe all possible software paths in an application through the scrutiny of a web application’s source code. Among those paths, some may be considered feasible paths, which refer to any paths that the test cases can execute. The detection of feasible paths in the results of a static analysis helps to minimize the false positive rate. However, the detection of feasible paths can be challenging, especially for programs that have multiple conditions in the same branch. The aim is to ensure that each feasible path is detected only once (not duplicated). This paper proposes an approach based on minimal static single assignment (MSSA) form and symbolic execution to detect feasible paths. The proposed approach starts by converting the source code into an abstract syntax tree (AST), followed by converting the AST to minimal SSA representation, which helps to decrease the number of instructions in the SSA form. An algorithm was built to examine all of the instructions of the SSA form, identify whole paths in the source code, and extract constraints along each path. A path weight method (PWM) is proposed in this work to avoid detecting duplicated feasible paths. The satisfiability modulo theory (SMT) solver was used to check the satisfiability of each path condition. The proposed approach was tested on seven well-known test programs that have been used in related studies and 10 large scale programs. The experimental results indicate that the proposed method (PWM) can avoid detecting duplicated feasible paths, and the proposed approach reduced the time required for generating the paths compared to that in related studies. View Full-Text
Keywords: detection; feasible paths; SSA; static analysis; symbolic execution detection; feasible paths; SSA; static analysis; symbolic execution
Show Figures

Figure 1

MDPI and ACS Style

Marashdih, A.W.; Zaaba, Z.F.; Suwais, K. An Approach for Detecting Feasible Paths Based on Minimal SSA Representation and Symbolic Execution. Appl. Sci. 2021, 11, 5384. https://doi.org/10.3390/app11125384

AMA Style

Marashdih AW, Zaaba ZF, Suwais K. An Approach for Detecting Feasible Paths Based on Minimal SSA Representation and Symbolic Execution. Applied Sciences. 2021; 11(12):5384. https://doi.org/10.3390/app11125384

Chicago/Turabian Style

Marashdih, Abdalla W.; Zaaba, Zarul F.; Suwais, Khaled. 2021. "An Approach for Detecting Feasible Paths Based on Minimal SSA Representation and Symbolic Execution" Appl. Sci. 11, no. 12: 5384. https://doi.org/10.3390/app11125384

Find Other Styles
Note that from the first issue of 2016, MDPI journals use article numbers instead of page numbers. See further details here.

Article Access Map by Country/Region

1
Search more from Scilit
 
Search
Back to TopTop