プログラミング・開発-コンパイラ
はじめに 1 概要・論文編 2-1 LLVM 関数計装編 2-2 LLVM モジュール計装編 (本記事) 基礎技術研究部の末吉です。 第 1 回と第 2 回の記事では、ASan の概要を説明した後に、ASan の関数に対する計装で、どのような命令が追加されるか見てきました。 今回は、…
はじめに 1 概要・論文編 2-1 LLVM 関数計装編 (本記事) 基礎技術研究部の末吉です。 前回の記事では ASan の概要と使い方、論文について解説しました。 今回からは執筆時点最新版の 2024 年 5 月にリリースされた LLVM 18.1.5 のコードから、どのように ASa…
はじめに 基礎技術研究部の末吉です。 バグを検知するツールにサニタイザー(Sanitizer)というものがあります。 英語で Sanitizer は「消毒剤」という意味で、Hand Sanitizer なら手指消毒剤を意味します。 ここで紹介するサニタイザーは、菌の代わりにバグを…
はじめに FFRIリサーチエンジニアの中川です。 以前投稿した記事「Shadow Stack を使った Stack Buffer Overflow 検知機構の実装」で 今回は LLVM バックエンドの書き換えにより、sspush sspop が関数のエピローグとプロローグに自動的に挿入されるようにし…