[解決済み] Mac OS X 用の readelf-like ツール?[クローズド]
2022-02-19 10:05:37
質問
Mac OS X のバイナリを読み込んで、リロケーションテーブルとシンボルオフセットの情報を表示するようなツールはないでしょうか。
readelf
を出力できますか?
readelf -r app
Relocation section '.rel.dyn' at offset 0x5ec contains 2 entries:
Offset Info Type Sym.Value Sym. Name
08049d58 00001706 R_386_GLOB_DAT 00000000 __gmon_start__
08049d60 00000305 R_386_COPY 08049d60 _ZSt4cout
Relocation section '.rel.plt' at offset 0x5fc contains 13 entries:
Offset Info Type Sym.Value Sym. Name
08049d24 00000107 R_386_JUMP_SLOT 0804868c print
08049d28 00000207 R_386_JUMP_SLOT 0804869c _ZNSt8ios_base4InitC1E
08049d2c 00000507 R_386_JUMP_SLOT 080486ac _ZStlsISt11char_traits
08049d30 00000607 R_386_JUMP_SLOT 080486bc _ZNSolsEPFRSoS_E
08049d34 00000707 R_386_JUMP_SLOT 08048664 _init
08049d38 00000807 R_386_JUMP_SLOT 080486dc sleep
08049d3c 00000907 R_386_JUMP_SLOT 080486ec _ZNKSsixEj
08049d40 00000b07 R_386_JUMP_SLOT 080486fc _ZNKSs4sizeEv
08049d44 00000c07 R_386_JUMP_SLOT 0804870c __libc_start_main
08049d48 00000d07 R_386_JUMP_SLOT 08048ae4 _fini
08049d4c 00001307 R_386_JUMP_SLOT 0804872c _ZSt4endlIcSt11char_tr
08049d50 00001507 R_386_JUMP_SLOT 0804873c __gxx_personality_v0
08049d54 00001607 R_386_JUMP_SLOT 0804874c _ZNSt8ios_base4InitD1E
この例では
print
は、実行時に共有ライブラリ(私が書いたもの)から読み込まれる関数です。
readelf
の中の位置に関する情報を表示することができます。
app
バイナリになります。
どのように解決するのですか?
使用方法 マックポート :
- インストールmacports .
-
macportsの使用方法
port install binutils
-
gobjdump -p /path/to/app
使用方法 ホームブリュー :
- ホームブリューのインストール
-
行う
brew update && brew install binutils
-
/usr/local/path/to/gobjdump -p /path/to/app
# または指示に従ってPATHに追加してください。
もちろん、他にも多くのコマンドラインオプションがあります。 binutils ports は、それをインストールすると他の ports のビルドに失敗する可能性があることを警告していることに注意してください。 port install/look at something/port uninstall のために持っていると、やはり便利です。
むしろ、これを実現するネイティブツールがまだないのが不思議なくらいです。
関連
-
[解決済み】Macでポート3000をロックしているプロセスを検索(およびkill)する
-
[解決済み】デバッガgdbの使用時に不明な終了シグナルが発生する。
-
[解決済み】「複数の定義」「最初に定義されたのはここです」エラーについて
-
[解決済み] Mac OS Xで、指定したTCPポートでリッスンしているのは誰ですか?
-
[解決済み] HTMLで表示される上下の三角形(軸のない矢印)に使用できる文字は何ですか?
-
[解決済み] Mac OSでNode.jsを最新バージョンにアップグレードする。
-
[解決済み] "コード" OSX/MacのVisual Studio Codeのコマンドラインでは動作しない
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?
-
[解決済み】Mac OS Xでは、Javaはどこにインストールされていますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】ISO C90では、C言語での宣言とコードの混在が禁止されています。
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】「無効なイニシャライザー」と表示されるのですが、何が間違っているのでしょうか?
-
[解決済み】「構造体でもユニオンでもないものにメンバー'*******'を要求する」とはどういう意味ですか?
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み] エラー:整数が期待されるところで集約値が使用された
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?