問題タブ [symbolic-execution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
305 参照

static-analysis - 到達可能性とシンボリック実行

現在、シンボリック実行 (SE) と到達可能性分析 (RA) について混乱しています。私が知っているように、SEはシンボルを使用してコードを実行し、分岐条件で各分岐に到達します。また、RA を使用して、各ブランチの到達可能性を見つけることができますよね? RA を使用すると、分岐ごとに分岐条件を抽出できます。もしそうなら、それらの違いは何ですか?彼らは迅速にできますか?それらはすべて静的分析ですか?

ありがとう、イブ

0 投票する
1 に答える
1033 参照

testing - 特定の言語のシンボリック実行エンジンを実装する方法は?

Java などの特定の言語で記述されたプログラムの堅牢性をテストするために、シンボリック実行を使用することを検討しています。シンボリック実行の基本概念を紹介するいくつかの論文を読みました。しかし、私はそれを開始する方法について明確ではありません。

たとえば、具体的な入力から制約条件を生成するにはどうすればよいですか? では、シンボリック実行の実装の基本についてアドバイスをくれる人はいますか? さらに、コンコリック実行(具体的+シンボリック)はどうですか?

0 投票する
1 に答える
217 参照

pointers - llvm にシンボリック実行ツールはありますか?

llvm IR でポイントツー分析を行いたいです。つまり、結果を印刷するときに、「5 月」のポイント先の条件を追加する必要があります。

この目標を達成するためにシンボリック実行を使用する予定です。

シンボリック方程式を解くための llvm またはスタンドアロン ツールにツールはありますか。

ありがとうございました!

0 投票する
1 に答える
695 参照

testing - OS カーネルでのシンボリック実行/コンコリック テスト

Linux カーネルまたはその一部でシンボリック実行を実行することは可能ですか? コンコリックテストはどうですか?ありがとう!

0 投票する
2 に答える
4072 参照

testing - concolic テストでは、「具体的な実行」とはどういう意味ですか?

concolic testingの概念を調べていたときに、「concrete & symbolic execution」という用語に出くわしました。(そこで言及されている記事、「CUTE: A concolic unit testing engine for C」では、抽象セクションでその用語が使用されています。)

「使用されたアプローチは、シンボリック実行と具象実行を組み合わせた以前の研究に基づいており、より具体的には、そのような組み合わせを使用してテスト入力を生成し、実行可能なすべての実行パスを探索します。」

「具体的な実行」が何を意味するのか、誰でも確認できますか?私の検索にもかかわらず、直接の引用/明示的なステートメントを見つけることができませんでした.

私が理解していることから、「具体的な実行」とは、「変数や入力などに記号値を想定する記号実行とは異なり、実際の入力値を使用してプログラムを実行すること」を意味します。私が間違っている場合は、修正してください(可能であれば小さな例で)。

0 投票する
4 に答える
1880 参照

security - シンボリック実行と汚染分析の間のギャップは何ですか?

私は最近、EJ Schwartz 博士による「Dynamic taint Analysis と Forward Symbolic Execution について知りたいことすべて (ただし、質問することを恐れていた可能性があります)」というタイトルの論文を読みました。論文では、彼は主にバイナリ レベルのセキュリティ コンテキストでのアプリケーションについて話しました。

動的汚染分析前方シンボリック実行の正確な違いに興味があります。

私が見る限り、汚染分析は、x に格納されている情報がオブジェクト y に転送されるたびに、オブジェクト x(ソース) からオブジェクト y(シンク) への情報の流れを追跡します。したがって、主な関心事は、どのオブジェクトがソースによって推移的に影響を受ける可能性があるかということです。シンボリック実行では、一部の入力をシンボリック値として扱い、他の変数をシンボリック値で表現しようとします。それにより、シンボリック入力が後続のプログラムに影響を与える条件について答えます。

バイナリ レベルでは、リターン アドレスの上書きによって引き起こされる脆弱性とともに、テイント分析が頻繁に言及されていることがわかります。一方、シンボリック実行は、整数オーバーフローランタイム アサーション エラーリソース リーク(メモリ リーク、ファイルのオープン/クローズなど)、バッファ オーバーフローなど、より多くのタイプの脆弱な問題に対処できます。

しかし、最新の汚染分析にはデータ フロー分析だけが含まれているわけではないようです。それらのほとんどは、制御フローの状態を追跡します。また、いくつかの脆弱性検出シナリオでは、汚染された入力もシンボリック値として表され、シンボリック実行と同様に伝播されます。一方、シンボリック実行エンジンは、基礎となる制約ソルバーと実行/解釈ランタイムの制限により、異なるパス条件で区切られたシンボリック値を完全に使用することはできません。そのため、期待どおりの高い分岐またはパスカバレッジを実現できません。

では、一般的なケースでは、汚染分析一種の粗いシンボリック実行であると言えますか、それともシンボリック実行一種の正確な汚染分析であると言えますか?

0 投票する
3 に答える
409 参照

llvm - バイナリでシンボリック実行するためのツール

バイナリでのシンボリック実行のためのツールはありますか? つまり、klee_make_symbolic のようにソース コードを変更する必要がないか、IR (llvm ir など) でそのような変更を行うことができます。事前に感謝します。

0 投票する
1 に答える
317 参照

testing - 静的解析とシンボリック実行でのエラー検出

静的解析 (コンパイラなど) が検出でき、シンボリック実行では検出できないエラーの種類は何ですか? また、シンボリック実行では検出でき、静的解析では検出できないエラーにはどのようなものがありますか? たとえば、シンボリック実行は構文エラーを検出できますか?