Skip to main content

Linux / Unixコマンドに関するすべての情報:execvp

Simple Tools and Techniques for Reversing a binary - bin 0x06 (六月 2026)

Simple Tools and Techniques for Reversing a binary - bin 0x06 (六月 2026)
Anonim

exec 一連の機能は、現在のプロセスイメージを新しいプロセスイメージに置き換えます。ここで説明する関数は、関数のフロントエンドですexecve(2).

これらの関数の最初の引数は、実行されるファイルのパス名です。

ザ const char * arg それ以降の楕円はexecl, execlp、および執行 関数は次のように考えることができます。 arg0 , arg1 , …, アルゴン 。一緒に実行されたプログラムが利用できる引数リストを表すヌル終端文字列へのポインタのリストを記述します。規則の第1引数は、実行中のファイルに関連付けられたファイル名を指す必要があります。引数のリスト 必須 〜によって終結するヌル ポインタ。

execv そしてexecvp 関数は、新しいプログラムが利用できる引数リストを表すヌル終端文字列へのポインタ配列を提供します。規則の第1引数は、実行中のファイルに関連付けられたファイル名を指す必要があります。ポインタの配列 必須 〜によって終結するヌル ポインタ。

執行 関数は、実行されたプロセスの環境をヌルパラメータリスト内の引数のリストまたはargv配列へのポインタを追加のパラメータで終了するポインタ。この追加パラメータは、NULLで終了する文字列へのポインタの配列であり、 必須 〜によって終結するヌル ポインタ。他の関数は、外部変数から新しいプロセスイメージ用の環境を取ります 環境 現在のプロセスでは

これらの関数の中には特別なセマンティクスがあります。

関数execlp そしてexecvp 指定されたファイル名にスラッシュ(/)文字が含まれていない場合は、実行可能ファイルを検索する際にシェルのアクションを複製します。検索パスは、環境内で指定されたパスです。パス 変数。この変数が指定されていない場合は、デフォルトのパス ``:/ bin:/ usr / bin ''が使用されます。さらに、特定のエラーは特別に扱われます。

ファイルに対するアクセス権が拒否された場合(試行されたexecve 戻ってきたEACCES)、これらの関数は検索パスの残りの部分の検索を続けます。しかし、他のファイルが見つからなければ、グローバル変数を返します エラー に設定EACCES.

ファイルのヘッダが認識されない場合(試みられたexecve 戻ってきたENOEXEC)、これらの関数はファイルのパスを最初の引数としてシェルを実行します。 (この試みが失敗した場合、それ以上の検索は行われません)。

戻り値

いずれかのexec 関数が戻ると、エラーが発生します。戻り値は-1で、グローバル変数 エラー エラーを示すように設定されます。

重要: 使用 おとこ コマンド( % おとこ 特定のコンピュータでどのようにコマンドが使用されているかを確認することができます。

execl、execlp、execle、execv、execvp - ファイルを実行する

シノプシス

#含める

extern char ** environ;

int execl(const char * パス 、const char * arg 、…); int execlp(const char * ファイル 、const char * arg 、…); int execle(const char * パス 、const char * arg 、…、char * const envp ); int execv(const char * パス 、char * const argv ); int execvp(const char * ファイル 、char * const argv );