2012-04-30 13 views
2

私はpintoolsを実行して動的な解析を実行し、問題を抱えているプログラムを作成しています。問題は、ユーザーがscanfやgetsまたはそのような関数を使ってプログラムにデータを提供したときに、read()のレベルが低くなり、システムコールを呼び出してそれらを見つけることでユーザーが提供するデータを見つけることができるということですread()を実行し、最終的にread()sys呼び出しのパラメータと戻り値を調べてデータを取得するシステムコールです。ところが、データがコマンドライン引数としてユーザから提供された場合、私はそれがread()システムコールに沸騰しているとは見当たりません。これに関する情報は参考になります。よろしくお願いします。詳細情報が必要な場合、または私の問題の説明であいまいになっている場合はお知らせください。コマンドライン引数をインストルメントする

ありがとうございます。

答えて

2

あなたがしようとしていることを理解していれば、execve()のsys呼び出しをトレースすることでコマンドライン引数を見ることができます。

2

通常、コマンドライン引数は、のmainメソッドになります。

ご使用の環境は非常に奇妙な方法で動作している場合を除きあなたは、argcであなたのコマンドラインargvでの引数と引数の数を取得する必要があります

int main(int argc, char *argv[]) {} 

として、あなたのmainメソッドを再定義する場合。

関連する問題