問題タブ [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 投票する
1 に答える
2017 参照

macos - .framework バンドルを otool で逆コンパイルしますか?

コマンドラインと otool を使用して、Mac で .framework バンドルを逆コンパイルしようとしています。それは私を許しません-無効なファイルエラーまたはそのようなもの。otool は .a 静的ライブラリで動作することがわかりました。

.framework バンドルを逆コンパイルする方法はありますか?

0 投票する
0 に答える
298 参照

jailbreak - ジェイルブレイクされた iPhone での otool -L の問題

脱獄したiPhoneを接続し、sshして実行します

ここに出力があります

そして、私は実行します

ディレクトリには次が含まれます。

彼らにはCoreFoundationがありません

そして私は実行します

CoreFoundationというファイルもありません。CoreFoundationはdylibであるべきだと
思いました。しかし、なぜ私はそれを見つけることができません。それがdylibでない場合、それは正確には何ですか? もちろん、私のAppStoreはうまく動作します

0 投票する
0 に答える
1145 参照

macos - install_name_tool -change はサイレントに失敗し、-headerpad_max_install_names フラグを無視します

dylibs へのリンクを含むコマンドライン実行可能ファイルがありますが、これは、配布されると、 によって返される指定された場所にはありませんotool -L

たとえば、次のバイナリがあるとしfooます。

私のインストーラーには、install_name_tool -changeこれを修正するために使用しようとするインストール後のスクリプトがfooあり、新しい場所の dylib にリンクします。

例えば:

しかし、この変更は無視され、黙って失敗します。otool -Lもう一度実行すると:

何も変わっていません。

ファット バイナリをコンパイルして、-headerpad_max_install_namesコンパイル フラグを 32 ビットの Makefile に追加しようとしました。これは問題を解決しませんでしたinstall_name_tool -change。まだサイレントに失敗します。

64 ビット プラットフォームでは何もしないことを読み-headerpad_max_install_namesましたが、とにかく 64 ビットの Makefile に追加しました。予想通り、これでも問題は解決しませんでした。

リンクされたdylibのパスを最終的に変更できるように、コンパイル手順を修正するにはどうすればよいinstall_name_toolですか?

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

c - バイナリ (MACH-O) ファイル ロード コマンドの読み取り

otool や同様のツールはロード コマンドをどのように読み取りますか? これを理解するためのオープンソースツールを見つけることができませんでした (otool は部分的にオープンソースですが)。バイナリファイルをどのように解析しますか? それはどこから始まりますか?

ありがとう

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

xcode - MacPorts にバンドルされた Mac OS X .app を簡単に構築

Go で記述されたアプリケーションから Mac OS X .app バンドルを構築するためのbash スクリプトがあります。このスクリプトは、Homebrew インストールから必要なライブラリ、リソースなどを抽出し、ライブラリを微調整することによって機能します。MacPorts のサポートを追加できてうれしいですが、..

Xcode プロジェクトなどを使用するなど、これを行う簡単な方法はありませんか? go用のpy2appの類似物はありますか? .app バンドルでの外部ライブラリの使用について知っておくべきことは何ですか?

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

objective-c - Mac OS X - 実行可能ファイルを別のダイナミック ライブラリにリンクし、古いものと新しいものの両方をロードする

Xcode で作成したコマンド ライン ツールをいくつかの Apple フレームワークにリンクしています。

「個人的な実験」として (動的ライブラリがどのように機能するかを少し理解しようとしているだけです)、実行可能ファイルを同じフレームワークの別のバージョンに向けようとしました。

たとえば、実行可能EXECLIB_Aを使用し、後者がLIB_Bを使用するとします。

LIB_ALIB_Bの両方のコピーを作成し、それらを別の (短い) ディレクトリ パスに配置しました。

以前otool -Lは、依存関係とライブラリの ID を取得していました。

次にinstall_name_toolwith ディレクティブ-idを使用して、新しいLIB_ALIB_Bの ID を変更しました (基本的には、名前が変更されていないため、先頭のパスを変更するだけです)。

次に、ディレクティブ-changeを使用して、新しい LIB_A が新しいLIB_Bを指すようにし、実行可能EXECが新しいLIB_Aを指すようにします

このようにして、依存関係ツリー全体が正しく再作成されているはずだと思いました。


install_name_toolエラーが返されず、実行可能ファイルと新しいライブラリを検査すると、otoolそれらはすべて正しいパスを指しています。

残念ながら、実行可能EXECを実行すると、クラスの重複定義に関する多くのエラーがコンソールにスローされます。古いライブラリと新しいライブラリの両方がロードされたように。

最後に、Trace/BPT トラップですべてがクラッシュします: 5

例えば:

私が呼び出す場合

実行時に、実際にライブラリが 2 回読み込まれていることがわかります。

0 投票する
0 に答える
322 参照

objective-c - Objective-Cの逆アセンブリでセレクタに注釈を付ける方法は?

Objective-C からコンパイルされた暗号化されていないバイナリから、コマンドotool -tV. ただし、Objective-C メソッド呼び出しは常に への呼び出しとして表示されますobjc_msgSend()。呼び出されたセレクター (メソッドの名前) は表示されません。

メソッド呼び出しがあるときに、呼び出されたセレクターに注釈を付ける方法はありますか?

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

c++ - QMYSQL ドライバーがロードされていません。すべてのヒントを試しました

Mac OS 10.8でQT-CreatorをIDEとして使用して、QT 5.3でC++アプリケーションを書いています。QMYSQLプラグインをロードしようとすると問題が発生します

その結果、

だから私は試しました

より良いアウトプットを得るために

だから私はotoolを試しました

情報として、QMYSQLプラグインを自分でビルドしました

Everythink は問題ないようです。以前に DYLD_LIBRARY_PATH を /etc/profile export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH に設定しました

結果は

フォルダー /usr/local/mysql/lib :

.pro ファイルの関連部分は、iam を使用して

誰かが私が間違っていることのヒントを持っていますか?

PS私はプライバシーのためにユーザーとアプリの名前を変更しました。