質問: 静的解析でバイナリからシステムコールを集めるにはどうすればいいですか? 与えられたバイナリ(x86_64)で使用されているシステムコールのリストを静的解析で取得したいのですが。 straceを試しましたが、実行中にいくつかのシステムコールが呼び出されない可能性があるため、完全なリストであることを保証するものではありません。
回答: 静的解析では、バイナリが難読化されていないと仮定して、バイナリに対する洞察を提供できるツールがいくつかあります。最も一般的に使用されているのは IDA です。バイナリを単独で解析する場合、いくつかのコンパイルオプション、すなわちダイナミックリンク対スタティックリンク、ストリップバイナリ、最適化オプションなどが困難な静的解析手法において重要な役割を果たします。 システムコールを検索する1つの方法は、 IDAPython API を使用してスクリプトに従ってシステムコールを検索することです。 X86アセンブリ/ Linuxとのインターフェイスおよびここでの説明 [Linuxシスコールリファレンス](https: //syscalls.kernelgrok.com/ )。 IDAPythonは、各基本ブロック内の命令を調べて、呼び出されているシステムコールを判断するための「十分に優れた」APIを提供します。