問題タブ [otool]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7280 参照

xcode - install_name_tool -change と -id の違い

-change私はしばらくの間、この概念に苦労してきましたが、との違いが本当に理解できません-id

これまでのところ、私は で実験しまし-changeた。次の構造があるとします

ここで、itemB で次のコマンドを実行したとします。

上記の結果は、場所を変更する必要があるかどうかに応じて、test_library.dylibこれを行うことを示していますanother_library.dylibanother_library.dylib

これにより、アイテムDの場所が変更されます。私の質問は、何install-name_tool -idをし、いつそれを使用するのですか?

0 投票する
1 に答える
564 参照

xcode - Otool - ファイルサイズのみ取得

Otool を使用してコンパイル済みライブラリ (.a) を調べています。バイナリ内の各コンポーネントのファイル サイズを確認したいと考えています。私はそれを見る

otool -l [lib.a]

この情報が表示されますが、他にも必要のない情報がたくさんあります。他のすべてではなく、ファイルサイズだけを確認できる方法はありますか? あったとしても見つからない。

0 投票する
1 に答える
1554 参照

macos - MachO ファイル形式 - LC_SEGMENT_64 ロード コマンドの「fileoff」フィールドの値

次のような簡単なプログラムをコンパイルしました

Clang を実行可能ファイルに使用otoolし、コンパイラによって生成されたロード コマンドを報告するように求めました。私が興味を持っているのは、特にファイル内のセグメントLC_SEGMENT_64を記述するものです。__TEXT私が得る説明はこれです:

私の質問はfileoff、2 番目のロード コマンドのフィールドがゼロに設定されているのはなぜですか?

このフィールドに関する Apple のドキュメントには、次のように記載されています。

ファイルは、fileoff からメモリ内のセグメントの先頭である vaddr にマップされます。

filesizeこれにより、最初は、このフィールドが と組み合わせて、ローダーに次のようなものを示していると信じるようfileofffileoff + filesizeなりました。しかし、もちろん、この値がゼロの場合、私の仮定は成立しません。

セグメントには少なくとも 1 つのセクションがあるため、ローダーはセクションの説明にあるそれぞれのオフセットの値を使用して実行するコードを特定するため、そのような値は必ずしも必要ではないと考えました。 、実際には、このセグメント内の最初のセクションにはoffsetフィールドの値があります (この場合は 3984 で、これは検証済みでotool -s __TEXT __text -j fooあり、ファイル内でこのセクションが配置されているオフセットを実際に参照しています)。

しかし、同じソース ファイル (つまり、 のMH_OBJECT代わりにtype を持つファイル) から生成されたオブジェクト ファイルに対して同じことを行うとMH_EXECUTE、得られる結果は次のようになります。

この場合、load コマンドのfileoffフィールドの値は、最初のセクションの値と同じ__textです。

0 投票する
1 に答える
33 参照

unix - otool の実行失敗を修復するにはどうすればよいですか?

brew で何かをインストールしようとすると、次のエラーが表示されます。

これを解決するにはどうすればよいですか?

0 投票する
1 に答える
2869 参照

ios - otool -L ファイル名/パスが機能しない

さまざまなプログラミング/デバッグのチュートリアルを実行しており、ターミナルで「otool」コマンドを使用しています。例として、共有ライブラリのチェックがあります。エラーは常に 2 つのうちの 1 つです。ファイルがあるディレクトリから実行しています。otool とだけ入力すると、otool の「-x」スイッチのリストが表示されます。複数のファイルとディレクトリのスイッチのリストを調べたところ、同じエラーが発生しました。

私は何が欠けていますか?

$ otool -L DemoApp

エラー: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: ファイルを開けません: DemoApp (そのようなファイルやディレクトリはありません)

また

$ otool -L DemoApp.app

エラー: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: ファイルをマップできません: DemoApp.app (無効な引数)

0 投票する
1 に答える
541 参照

macos - OS X 実行可能ファイルの場合、未定義のシンボルが期待されるライブラリを表示する方法は?

nm を使用して未定義のシンボルをバイナリで表示する方法を知っています。また、otool を使用してバイナリがリンクされているライブラリを表示する方法も知っています。

しかし、未定義のシンボルごとに表示する方法がわかりません。リンカーがそれらを見つけると予想されるライブラリはどれですか?

注: このような情報は mach-o バイナリに格納されていると想定しています。なぜなら、ランタイム エラーの前に、dyld が不足しているシンボルについて通知し、シンボルが見つかると予想されるライブラリを正確に指摘するのを見たからです。

0 投票する
1 に答える
1369 参照

ios - iOS アプリ otool cryptid=0 の修正

こんにちは最近、会社用のアプリを作成しましたが、後でこのツールを見つけました-otool. そこで、otool でアプリをチェックしようとしたところ、次のことがわかりました。

cryptid をググったところ、私のアプリは暗号化されておらず、クラックされて RE になる可能性があることがわかりました。それを修正する方法またはcryptid = 1を設定する方法を知っている人はいますか? ありがとう。

0 投票する
1 に答える
382 参照

virtual-memory - otool を使用してバイナリ ファイルのサイズを取得するにはどうすればよいですか?

otool を使用してバイナリに関する情報を取得しています。ここに私の出力の一部があります:

ここで、command 1segname __TEXT始まることがわかりますvmaddr 0x0000000100000000

問題は、バイナリ サイズが 2.3 MB で、0x0000000100000000 が 4 GB であることです。

アドレスの真ん中の「1」は64ビットアーキテクチャに関係していると思いますが0x0000000100000000、実際には address 0x00. 私はそれについていくつかの情報を探していましたが、有用なものは何も見つかりませんでした. 誰かが私の仮定を確認し、これがどのように機能しているかを説明できますか?