  WebAssembly is a low-level bytecode language that allows high-level languages
like C, C++, and Rust to be executed in the browser at near-native performance.
In recent years, WebAssembly has gained widespread adoption is now natively
supported by all modern browsers. However, vulnerabilities in memory-unsafe
languages, like C and C++, can translate into vulnerabilities in WebAssembly
binaries. Unfortunately, most WebAssembly binaries are compiled from such
memory-unsafe languages, and these vulnerabilities have been shown to be
practical in real-world scenarios. WebAssembly smart contracts have also been
found to be vulnerable, causing significant financial loss. Additionally,
WebAssembly has been used for malicious purposes like cryptojacking. To address
these issues, several analysis techniques for WebAssembly binaries have been
proposed. In this paper, we conduct a comprehensive literature review of these
techniques and categorize them based on their analysis strategy and objectives.
Furthermore, we compare and evaluate the techniques using quantitative data,
highlighting their strengths and weaknesses. In addition, one of the main
contributions of this paper is the identification of future research directions
based on the thorough literature review conducted.
