Projects per year
Abstract
The recently introduced WebAssembly standard aims to be a portable compilation target, enabling the cross-platform distribution of programs written in a variety of languages.
We propose an approach to slice WebAssembly programs in order to enable applications in reverse engineering, code comprehension, and security among others.
Given a program and a location in that program, program slicing produces a minimal version of the program that preserves the behavior at the given location.
Specifically, our approach is a static, intra-procedural, backwards slicing approach that takes into account WebAssembly-specific dependences to identify the instructions of the slice.
To do so it must correctly overcome the considerable challenges of performing dependence analysis at the binary level.
Furthermore, for the slice to be executable, the approach needs to ensure that the stack behavior of its output complies with WebAssembly's validation requirements.
We implemented and evaluated our approach on a suite of 8,386 real-world WebAssembly binaries, finding that the average size of the 97,728,325 slices computed is 46% of the original code,
an improvement over the 60% attained by related work on slicing ARM binaries.
To gain a more qualitative understanding of the slices produced by our approach, we compared them to 1,956 source-level slices of benchmark C programs.
This inspection helps to illustrate the slicer's strengths and to uncover potential future improvements.
We propose an approach to slice WebAssembly programs in order to enable applications in reverse engineering, code comprehension, and security among others.
Given a program and a location in that program, program slicing produces a minimal version of the program that preserves the behavior at the given location.
Specifically, our approach is a static, intra-procedural, backwards slicing approach that takes into account WebAssembly-specific dependences to identify the instructions of the slice.
To do so it must correctly overcome the considerable challenges of performing dependence analysis at the binary level.
Furthermore, for the slice to be executable, the approach needs to ensure that the stack behavior of its output complies with WebAssembly's validation requirements.
We implemented and evaluated our approach on a suite of 8,386 real-world WebAssembly binaries, finding that the average size of the 97,728,325 slices computed is 46% of the original code,
an improvement over the 60% attained by related work on slicing ARM binaries.
To gain a more qualitative understanding of the slices produced by our approach, we compared them to 1,956 source-level slices of benchmark C programs.
This inspection helps to illustrate the slicer's strengths and to uncover potential future improvements.
Original language | English |
---|---|
Title of host publication | The 44th International Conference on Software Engineering (ICSE 2022) |
Publisher | ACM |
Pages | 2031-2042 |
Number of pages | 12 |
ISBN (Electronic) | 9781450392211 |
DOIs | |
Publication status | Published - 2022 |
Event | The 44th International Conference on Software Engineering - Pittsburgh, PA, United States Duration: 21 May 2022 → 29 May 2022 |
Publication series
Name | Proceedings - International Conference on Software Engineering |
---|---|
Volume | 2022-May |
ISSN (Print) | 0270-5257 |
Conference
Conference | The 44th International Conference on Software Engineering |
---|---|
Abbreviated title | ICSE 2022 |
Country | United States |
City | Pittsburgh, PA |
Period | 21/05/22 → 29/05/22 |
Keywords
- program analysis
- program slicing
- WebAssembly
- binary analysis
Fingerprint
Dive into the research topics of 'Static Stack-Preserving Intra-Procedural Slicing of WebAssembly Binaries'. Together they form a unique fingerprint.Projects
- 1 Finished
-
VLAAI2: Subsidie Onderzoeksprogramma "Cybersecurity Initiative Flanders"
De Meuter, W., Devriese, D., Gonzalez Boix, E. & De Roover, C.
1/09/19 → 31/12/22
Project: Applied
Prizes
-
ICSE 2022 Best Artifact Award
Stiévenart, Quentin (Recipient), Binkley, D. (Recipient) & De Roover, Coen (Recipient), 2022
Prize: Prize (including medals and awards)