Static Stack-Preserving Intra-Procedural Slicing of WebAssembly Binaries

Research output: Chapter in Book/Report/Conference proceedingConference paper

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.
Original languageEnglish
Title of host publicationThe 44th International Conference on Software Engineering
Publication statusPublished - 2022
EventThe 44th International Conference on Software Engineering - Pittsburgh, PA, United States
Duration: 21 May 202229 May 2022

Conference

ConferenceThe 44th International Conference on Software Engineering
Abbreviated titleICSE 2022
CountryUnited States
CityPittsburgh, PA
Period21/05/2229/05/22

Fingerprint

Dive into the research topics of 'Static Stack-Preserving Intra-Procedural Slicing of WebAssembly Binaries'. Together they form a unique fingerprint.

Cite this