ECOOP 2025
Mon 30 June - Fri 4 July 2025 Bergen, Norway
Wed 2 Jul 2025 15:03 - 15:24 at Auditorium M003 - W2 Chair(s): Hila Peleg

Dynamic program analyses help in understanding a program’s runtime behavior and detect issues related to security, program comprehension, or profiling. Instrumentation platforms aid analysis developers by offering a high-level API to write the analysis, and inserting the analysis into the target program.

However, current instrumentation platforms for WebAssembly restrict analysis portability because they require concrete runtime environments. Moreover, their analysis API only allows the development of analyses that observe the target program but cannot modify it.

As a result, many popular dynamic analyses present for other languages, such as runtime hardening, virtual patching or runtime optimization, cannot currently be implemented for WebAssembly atop a dynamic analysis platform. Instead, they need to be built manually, which requires knowledge of low-level details of the WebAssembly’s semantics and instruction set, and how to safely manipulate it.

This paper introduces Wastrumentation, the first dynamic analysis platform for WebAssembly that supports intercession. Our solution, based on source code instrumentation, weaves the analysis code directly into the target program code. Inlining the analysis into the target’s source code avoids dependencies on the runtime environment, making analyses portable across WebAssembly VMs. Moreover, it enables the implementation of analyses in \emph{any} WebAssembly-compatible language.

We evaluate our solution in two ways. First, we compare it against a state-of-the-art source code instrumentation platform using the WasmR3 benchmarks. The results show improved memory consumption and competitive performance overhead. Second, we develop an extensive portfolio of dynamic analyses, including novel analyses previously unattainable with source code instrumentation platforms, such as memoization, safe heap access, and the removal of NaN non-determinism.

Wed 2 Jul

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

14:00 - 15:45
14:00
21m
Talk
Event Race Detection for Node.js Using Delay Injections
Technical Papers
Andre Takeshi Endo Federal University of São Carlos, Anders Møller Aarhus University
Pre-print
14:21
21m
Talk
FuzzFlesh: Randomised Testing of Decompilers Via Control Flow Graph-based Program GenerationRemote
Technical Papers
Amber Gorzynski Imperial College London, Alastair F. Donaldson Imperial College London
14:42
21m
Talk
PoTo: A Hybrid Andersen's Points-to Analysis for Python
Technical Papers
Ingkarat Rak-amnouykit Rensselaer Polytechnic Institute, Ana Milanova Rensselaer Polytechnic Institute, Guillaume Baudart Inria, Martin Hirzel IBM Research, Julian Dolby IBM Research
15:03
21m
Talk
Wastrumentation: Portable WebAssembly Dynamic Analysis with Support for Intercession
Technical Papers
Aäron Munsters Vrije Universiteit Brussel, Angel Luis Scull Pupo Sofware Languages Lab, Vrije Universiteit Brussel, Elisa Gonzalez Boix Vrije Universiteit Brussel
15:24
21m
Talk
WebGlitch: A Randomised Testing Tool for the WebGPU API
Technical Papers
:
:
:
: