論文の概要: Reusing Legacy Code in WebAssembly: Key Challenges of Cross-Compilation and Code Semantics Preservation
- arxiv url: http://arxiv.org/abs/2412.20258v1
- Date: Sat, 28 Dec 2024 20:24:41 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-12-31 16:02:42.402520
- Title: Reusing Legacy Code in WebAssembly: Key Challenges of Cross-Compilation and Code Semantics Preservation
- Title(参考訳): WebAssemblyにおけるレガシーコードの再利用 - クロスコンパイルとコードセマンティック保存の課題
- Authors: Sara Baradaran, Liyan Huang, Mukund Raghothaman, Weihang Wang,
- Abstract要約: WebAssemblyコンパイラがコードの再利用性をどのように満たしているかを調査する。
レガシーC/C++コードをWebAssemblyにクロスコンパイルする際の重要な課題を特定します。
WasmCheckerを使用して、WebAssemblyコンパイラが必ずしもコードセマンティクスを保存するとは限らないことを目撃する。
- 参考スコア(独自算出の注目度): 4.796846173598521
- License:
- Abstract: WebAssembly (Wasm) has emerged as a powerful technology for executing high-performance code and reusing legacy code in web browsers. With its increasing adoption, ensuring the reliability of WebAssembly code becomes paramount. In this paper, we investigate how well WebAssembly compilers fulfill code reusability. Specifically, we inquire (1) what challenges arise when cross-compiling a high-level language codebase into WebAssembly and (2) how faithfully WebAssembly compilers preserve code semantics in this new binary. Through a study on 115 open-source codebases, we identify the key challenges in cross-compiling legacy C/C++ code into WebAssembly, highlighting the risks of silent miscompilation and compile-time errors. We categorize these challenges based on their root causes and propose corresponding solutions. We then introduce a differential testing approach, implemented in a framework named WasmChecker, to investigate the semantics equivalency of code between native x86-64 and WebAssembly binaries. Using WasmChecker, we provide a witness that WebAssembly compilers do not necessarily preserve code semantics when cross-compiling high-level language code into WebAssembly due to different implementations of standard libraries, unsupported system calls/APIs, WebAssembly's unique features, and compiler bugs. Furthermore, we have identified 11 new bugs in the Emscripten compiler toolchain, all confirmed by Emscripten developers. As proof of concept, we make our framework and the collected dataset of open-source codebases publicly available.
- Abstract(参考訳): WebAssembly(Wasm)は、高性能コードを実行し、Webブラウザでレガシーコードを再利用するための強力な技術として登場した。
採用が増えれば、WebAssemblyコードの信頼性が最重要になる。
本稿では、WebAssemblyコンパイラがコードの再利用性をどのように満たすかを検討する。
具体的には、(1)ハイレベルな言語コードベースをWebAssemblyにクロスコンパイルする場合、(2)WebAssemblyコンパイラが新しいバイナリのコードセマンティクスをいかに忠実に保持するかを問う。
115のオープンソースコードベースの研究を通じて、レガシなC/C++コードをWebAssemblyにクロスコンパイルする上で重要な課題を特定し、サイレントなコンパイルミスとコンパイル時のエラーのリスクを強調します。
我々はこれらの課題を根本原因に基づいて分類し、対応する解決策を提案する。
次に、ネイティブのx86-64とWebAssemblyバイナリ間のコードのセマンティクス等価性を調べるために、WasmCheckerというフレームワークで実装された差分テストアプローチを紹介します。
WasmCheckerを使用すると、標準ライブラリの異なる実装、サポートされていないシステムコール/API、WebAssemblyのユニークな機能、コンパイラのバグのために、WebAssemblyコンパイラが、高レベルの言語コードをWebAssemblyにクロスコンパイルする際に、必ずしもコードセマンティクスを保存するとは限らないことが分かる。
さらに、Emscriptenコンパイラツールチェーンに新たに11のバグが見つかった。
概念実証として、当社のフレームワークとオープンソースコードベースの収集データセットを公開しています。
関連論文リスト
- RedCode: Risky Code Execution and Generation Benchmark for Code Agents [50.81206098588923]
RedCodeはリスクの高いコード実行と生成のためのベンチマークである。
RedCode-Execは、危険なコード実行につながる可能性のある、挑戦的なプロンプトを提供する。
RedCode-Genは160のプロンプトに関数シグネチャとドキュメントを入力として提供し、コードエージェントが命令に従うかどうかを評価する。
論文 参考訳(メタデータ) (2024-11-12T13:30:06Z) - Is This the Same Code? A Comprehensive Study of Decompilation Techniques for WebAssembly Binaries [4.66875056781341]
本稿では,C-based decompilerの正確性,可読性,構造的類似性など,様々な側面から実験的に評価する新しいフレームワークを提案する。
これによりWASMとネイティブバイナリに依存するソフトウェアシステムのセキュリティと信頼性が向上する。
論文 参考訳(メタデータ) (2024-11-04T17:08:03Z) - ViC: Virtual Compiler Is All You Need For Assembly Code Search [9.674880905252628]
本稿では,汎用コンパイラをエミュレートするLarge Language Model(LLM)のトレーニングについて検討する。
さらに、任意の言語のソースコードをアセンブリコードにコンパイルできる仮想コンパイラ(ViC)としてCodeLlamaを事前訓練します。
組立コード検索性能は大幅に向上し,ベースラインを26%上回った。
論文 参考訳(メタデータ) (2024-08-10T17:23:02Z) - Building Call Graph of WebAssembly Programs via Abstract Semantics [0.24103772239130034]
WebAssemblyは、ポータビリティとパフォーマンスに重点を置いて人気を集めているコードのバイナリフォーマットである。
WebAssemblyのバイナリフォーマットは、悪意のあるソフトウェアの手段として使用される傾向がある。
WebAssemblyのセキュリティ検証、情報フロー制御、より一般的には、行動特性を検証するツールの開発には、かなりの関心がある。
論文 参考訳(メタデータ) (2024-07-08T09:32:47Z) - VersiCode: Towards Version-controllable Code Generation [58.82709231906735]
大規模言語モデル(LLM)は、コード生成において大きな進歩を遂げていますが、既存の研究は、ソフトウェア開発の動的な性質を説明できません。
バージョン別コード補完(VSCC)とバージョン別コードマイグレーション(VACM)の2つの新しいタスクを提案する。
VersiCodeについて広範な評価を行い、バージョン管理可能なコード生成が確かに重要な課題であることを示した。
論文 参考訳(メタデータ) (2024-06-11T16:15:06Z) - StackSight: Unveiling WebAssembly through Large Language Models and Neurosymbolic Chain-of-Thought Decompilation [2.1094456929188676]
StackSightは静的解析アルゴリズムを通じて仮想スタックの変更を視覚化し、追跡し、チェーン・オブ・シークレット・プロンプトを適用する。
評価結果は、StackSightがWebAssemblyの逆コンパイルを大幅に改善していることを示している。
またユーザ調査では、StackSightが生成したコードスニペットの勝利率が大幅に高く、コードのセマンティクスをよりよく把握できることを示した。
論文 参考訳(メタデータ) (2024-06-07T01:08:17Z) - How Far Have We Gone in Binary Code Understanding Using Large Language Models [51.527805834378974]
バイナリコード理解におけるLarge Language Models(LLM)の有効性を評価するためのベンチマークを提案する。
評価の結果、既存のLLMはバイナリコードをある程度理解でき、それによってバイナリコード解析の効率が向上することが明らかとなった。
論文 参考訳(メタデータ) (2024-04-15T14:44:08Z) - SoK: Analysis techniques for WebAssembly [0.0]
WebAssemblyは低レベルのバイトコード言語で、C、C++、Rustといった言語をネイティブに近いパフォーマンスでブラウザで実行できる。
CやC++のようなメモリ不安全な言語の脆弱性は、WebAssemblyバイナリの脆弱性に変換できる。
WebAssemblyは暗号鍵のような悪意ある目的で使われてきた。
論文 参考訳(メタデータ) (2024-01-11T14:28:13Z) - CP-BCS: Binary Code Summarization Guided by Control Flow Graph and
Pseudo Code [79.87518649544405]
本稿ではCP-BCSと呼ばれる制御フローグラフと擬似コード案内バイナリコード要約フレームワークを提案する。
CP-BCSは双方向の命令レベル制御フローグラフと擬似コードを利用して、専門家の知識を取り入れ、包括的なバイナリ関数の実行動作と論理意味論を学ぶ。
論文 参考訳(メタデータ) (2023-10-24T14:20:39Z) - InterCode: Standardizing and Benchmarking Interactive Coding with
Execution Feedback [50.725076393314964]
標準的な強化学習環境として,インタラクティブコーディングの軽量でフレキシブルで使いやすいフレームワークであるInterCodeを紹介した。
私たちのフレームワークは、言語とプラットフォームに依存しない、自己完結型のDocker環境を使用して、安全で再現可能な実行を提供します。
我々は、異なるプロンプト戦略で構成された複数の最先端LLMを評価することにより、InterCodeの生存性をテストベッドとして示す。
論文 参考訳(メタデータ) (2023-06-26T17:59:50Z) - ReACC: A Retrieval-Augmented Code Completion Framework [53.49707123661763]
本稿では,語彙のコピーと類似したセマンティクスを持つコード参照の両方を検索により活用する検索拡張コード補完フレームワークを提案する。
我々は,Python および Java プログラミング言語のコード補完タスクにおけるアプローチを評価し,CodeXGLUE ベンチマークで最先端のパフォーマンスを実現する。
論文 参考訳(メタデータ) (2022-03-15T08:25:08Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。