
C/C++ ビルド成果物をインデックス化してクエリ可能なプログラム全体のデータベースを構築し、コード監査や脆弱性分析のための AST、トークン、IR レベルの API を公開します。
Multiplier は、正確かつ包括的なコード理解機能を提供します。 これは、ビルド成果物をデータベースに保存し、C++ または Python API を使用して 永続的にアクセスできるようにすることで実現されます。
Multiplier は、ビルドプロセス内のすべてのエンティティ(個々のトークン、AST ノード、 中間表現を含む)を一意に識別する機能を重視しています。Multiplier を使用すると、 アナリストはいずれかの表現上で関心のあるコードパターンを特定し、その結果を人間が 読み取れる形式で正確に伝えたり、エンティティ ID を介して後続のスクリプトに正確に 伝えたりすることができます。
Multiplier の API は広範囲にわたり、多くの場合、コンパイラレベルと同等かそれ以上の 品質の情報を提供しますが、プログラム全体の粒度でリンクされています。私たちはよく、 この API を使えばどこからでもどこへでも到達できると言っています。
copy_to_user の使用箇所を検索する本研究は、国防高等研究計画局(DARPA)の資金提供を受けて開発されました。ここで表明された見解、意見、および/または調査結果は著者のものであり、国防総省または米国政府の公式な見解や方針を代表するものとして解釈されるべきではありません。
配布声明 "A"(公開リリース承認済み、配布無制限)。