skip to main content
10.1145/3324884.3415293acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
short-paper

WASim: understanding WebAssembly applications through classification

Published: 27 January 2021 Publication History

Abstract

WebAssembly is a new programming language built for better performance in web applications. It defines a binary code format and a text representation for the code. At first glance, WebAssembly files are not easily understandable to human readers, regardless of the experience level. As a result, distributed third-party WebAssembly modules need to be implicitly trusted by developers as verifying the functionality requires significant effort. To this end, we develop an automated classification tool WASim for identifying the purpose of WebAssembly programs by analyzing features at the module-level. It assigns purpose labels to a module in order to assist developers in understanding the binary module. The code for WASim is available at https://github.com/WASimilarity/WASim and a video demo is available at https://youtu.be/usfYFIeTy0U.

References

[1]
Emscripten Contributors. 2020. Emscripten 1.39.4 documentation. https://emscripten.org/
[2]
Brendan Eich. 2019. From ASM.JS to WebAssembly. https://brendaneich.com/2015/06/from-asm-js-to-webassembly/
[3]
Node.js Foundation. 2019. Node.js. https://nodejs.org/en/
[4]
Google. 2019. puppeteer. https://github.com/GoogleChrome/puppeteer
[5]
Google. 2019. v8/v8. https://github.com/v8/v8/blob/master/src/wasm/wasmopcodes.cc
[6]
WebAssembly Community Group. 2019. webassembly/binaryen. https://github.com/WebAssembly/binaryen
[7]
WebAssembly Community Group. 2019. webassembly/wabt. https://github.com/WebAssembly/wabt
[8]
Quoc V. Le and Tomas Mikolov. 2014. Distributed Representations of Sentences and Documents. CoRR abs/1405.4053 (2014). arXiv:1405.4053 http://arxiv.org/abs/1405.4053
[9]
Judy McConnell. 2019. WebAssembly support now shipping in all major browsers. https://blog.mozilla.org/blog/2017/11/13/webassembly-in-browsers/
[10]
Marius Musch, Christian Wressnegger, Martin Johns, and Konrad Rieck. 2019. New Kid on the Web: A Study on the Prevalence of WebAssembly in the Wild. 23--42.
[11]
Annamalai Narayanan, Mahinthan Chandramohan, Rajasekar Venkatesan, Lihui Chen, Yang Liu, and Shantanu Jaiswal. 2017. graph2vec: Learning Distributed Representations of Graphs. CoRR abs/1707.05005 (2017). arXiv:1707.05005 http://arxiv.org/abs/1707.05005
[12]
Senthil Padmanabhan and Pranav Jha. 2020. WebAssembly at eBay: A Real-World Use Case. https://tech.ebayinc.com/engineering/webassembly-at-ebay-a-real-world-use-case/
[13]
Savan Patel. 2019. Chapter 1 : Supervised Learning and Naive Bayes Classification. https://medium.com/machine-learning-101/chapter-1-supervised-learning-and-naive-bayes-classification-part-1-theory-8b9e361897d5
[14]
rustwasm. 2020. wasm-bindgen. https://github.com/rustwasm/wasm-bindgen
[15]
scikit-learn developers. 2019. scikit-learn 0.21.2 documentation. https://scikit-learn.org/stable/supervised_learning.html#supervised-learning
[16]
Daniel Smilkov, Nikhil Thorat, and Ann Yuan. 2020. Introducing the WebAssembly backend for TensorFlow.js. https://blog.tensorflow.org/2020/03/introducing-webassembly-backend-for-tensorflow-js.html
[17]
Keras Team. 2019. Home - Keras Documentation. https://keras.io/
[18]
Tony Yiu. 2019. Understanding Random Forest. https://towardsdatascience.com/understanding-random-forest-58381e0602d2

Cited By

View all

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASE '20: Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering
December 2020
1449 pages
ISBN:9781450367684
DOI:10.1145/3324884
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 January 2021

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Short-paper

Funding Sources

Conference

ASE '20
Sponsor:

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)65
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media