0

Mach-O ファイルのインポート セクションを調べていたところ、libSystem.B.dylib への 2 つの異なる終了システム コールが (異なるアドレスで) あることに気付きました。呼び出される exit メソッドにフックしたい。試行錯誤がうまくいくことは承知していますが。libSystem が再エクスポートする終了呼び出しが 2 つある理由を理解したいと思います。この mach-O ファイルが同じ libSystem 共有ライブラリから 2 つの異なる __exit 呼び出しを使用している理由を知っている人はいますか? ありがとう。

**0003e6dc: __exit (ord#0)**
0003e6f8: _abort (ord#0)
0003e6fc: _access (ord#0)
0003e700: _atexit (ord#0)
.
.
.
.
**0003e760: _exit (ord#0)**
4

1 に答える 1

1

最初の関数は_exitで、2 番目の関数は ですexit_exitに登録された関数atexit()、シグナル ハンドラ、または開いているストリームをフラッシュしません。リンクで説明されているように、プロセス終了の結果も異なります。

于 2013-01-30T02:44:49.647 に答える