問題タブ [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 に答える
203 参照

dylib - OS X: コンパイル後に dylib rpath が間違っている

ソースから cyrus sasl2 ライブラリを構築しています。ライブラリは /usr/local/lib にインストールされ、ヘッダーは /usr/local/include/sasl にインストールされます。これは適切です。

ただし、それらを使用しようとするアプリを実行すると、次のようになります。

ライブラリで otool -L を実行すると、不適切な相対パスが表示されます。

正しい rpath がエンコードされるように make がライブラリをコンパイルする方法を変更するにはどうすればよいですか? ライブラリでそれを変更するために install_name_tool について読みましたが、正しいパス '/usr/local/lib/libsasl2.dylib' が現在エンコードされているパスよりも長いため、'-change' を使用してもうまくいかないようです。どういうわけかライブラリをビルドするときにそれを設定できるはずではありませんか?

ありがとう。

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

c - otool 表示はソースで逆アセンブルできますか?

Linuxではobjdump -dS filecソースで逆アセンブルして表示していました。
Mac OSXotoolでは代わりに使用しますが、man otool対応するオプションについては言及していません。私の問題の解決策はありますか?

これが私のcソースです:

b.outの逆アセンブルをソースで表示したい:

残念ながら、私は分解するだけです。

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

c++ - otool 出力の相対パス?

C++ からコンパイルされたライブラリ ファイルに問題があるため、otoolコマンド ライン ユーティリティ (OSX 上) を使用して、リンク先のファイルを調べました。

これは出力です:

リンクされているファイルのほとんどは、絶対パスで参照されます/usr/local/opt/tbb/lib/libtbb.dylib

ただし、ファイル名と同様に、相対パスのように見えるものによって参照されるものもありますlibboost_python.dylib

これは何を意味するのでしょうか?

パス上で最初に見つかったものに応じて、実行時に の異なるバージョンlibboost_python.dylibがリンクされる可能性があるということですか? それとも、これらの「相対」パスを検索する他の方法ですか?

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

ios - nm(1) を使用して、OS X 上の arm64 用にビルドされたオブジェクト ファイルからシンボルを一覧表示する

arm64 アーキテクチャ用に構築したオブジェクト ファイルからシンボルを一覧表示する方法を知っている人はいますか?

使用しようとしnmましたが、エラーが発生しました:

を使用して同じことを行うことは可能otoolですか?

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

ios - 非公開 API を使用するアプリは拒否されます

私たちのアプリは次のメッセージでアップルによって拒否されました: (私は言及されたAPIの場所を列に入れました)

お客様のアプリは、App Store レビュー ガイドラインに準拠していない 1 つ以上の非公開 API を使用していることが判明しました。非公開 API の使用は許可されていません。これらの API が変更された場合、ユーザー エクスペリエンスが低下する可能性があるためです。

アプリで次の非公開 API が見つかりました:

  • BuyFreeWinTicket_marshal___:numbers:os:, (私の内部コード)
  • getCellValidationInfo_unmarshal___:ok:, (私の内部コード)
  • AddAnimationPointForBall:nextX:nextY:forDuration:, (私の内部コード) UIViewController, (?)
    • addSessionCookie:, (私の内部コード)
    • CanDoAutomaticLogin、(私の内部コード)
    • activeSessionIfExists (私の内部コード)
  • AddSeperatorsToNumber:, (私の内部コード)
  • addRequestToExtendTokenForSession:connection:, (私の内部コード)
    • cworksインプレッション、(?)
  • AddFilterWithInex:, (私の内部コード)
  • ApplySuperKeypad (私の内部コード)
  • applicationDidOpenURL:sourceApplication:, (私の内部コード)
    • clearPersistedAppEventData、(?)
  • canPresentMessageDialog、(?)
  • applicationDidOpenURL:sourceApplication:, (私の内部コード)
  • DeleteOldLogLines (私の内部コード)
  • hideAllHUDsForView:animated:,(私の内部コード)
  • ServerRegistrationResponseOk:, (私の内部コード)
  • requestForCustomAudienceThirdPartyID:, (?)
  • automaticallyNotifiesObserversForKey:, (?)
  • addOrRemovePendingConnection:、(?)
  • addHEADOperation:, (サードパーティ ASIHTTPRequest) NSOperationQueue, (サードパーティ ASIHTTPRequest) -DisplayUserSuspendedDialogWithMessage:ReleaseByCaptcha:CaptchaURL:AndReturnTo:, (私の内部コード)
    • likeActionControllerForObjectID:, (?)
  • _parseDialogConfigs:, (?)
  • BackFromLottoLoginForNag:withEmail:andPassword:, (私の内部コード)
    • cacheRefreshDelay、(?) FBViewController、(サードパーティ - FB SDK のように見えます)
  • deleteUnitTestUser:accessToken:、(?)
  • FathersAndMothersDisplayMothers:, (私の内部コード)
  • addRoundedRectToPath:rect:radius:, (?)
  • 接続:didFailWithError:、(?)
  • createTokenFromDictionary:, (?)
  • FBSDKInitializeWithLaunchData:, (サードパーティ - FB SDK のように見えます)
  • fileExtensionsToHandleAsHTML、(サードパーティ ASIHTTPRequest)
  • _analyticsParameters、(?)
  • _copyValueForKey:fromDictionary:toDictionary:, (?)
  • appCallFromApplinkArgs_v2:applinkArgs:createTimeUTC:originalQueryParameters:, (?)
  • requestWithUserID:fields:dataSource:session:, (?) FBGraphObjectPickerViewController, (サードパーティ - FB SDK のように見えます)
  • DisplayErrorConnectingToCheckoutServer、(私の内部コード)
  • graphObjectWrappingDictionary: (?)

ソース コードで上記の API と同じ名前のメソッドを定義している場合は、Apple のプライベート API と競合しないようにメソッド名を変更して、今後の提出でアプリケーションにフラグが立てられないようにすることをお勧めします。

さらに、上記の API の 1 つ以上が、アプリケーションに含まれる静的ライブラリに存在する場合があります。ライブラリのソースにアクセスできない場合は、「strings」または「otool」コマンド ライン ツールを使用して、コンパイルされたバイナリを検索できる場合があります。「strings」ツールは、ライブラリーが呼び出すメソッドのリストを出力でき、「otool -ov」は、Objective-C クラス構造とそれらに定義されたメソッドを出力します。これらの手法は、問題のあるコードが存在する場所を絞り込むのに役立ちます。

  1. このメッセージは、Apple が上記の API と同じシグネチャを持つプライベート API を持っていることを意味していますか? (これは、「-DisplayUserSuspendedDialogWithMessage:ReleaseByCaptcha:CaptchaURL:AndReturnTo:」をプライベート署名として使用することを意味します - それは不可能です)

  2. どうすれば問題を解決できますか? 上記の API 名をすべて変更する必要がありますか?

  3. 問題を修正したことを確認するにはどうすればよいですか、それとも自分で同じエラーが発生する可能性がありますか (アプリ sccanner を使用してみましたが、プライベート Api が見つかりませんでした。文字列と otool を使用しようとしましたが、できませんでした何を探す必要があるかを理解する)

誰かがそれについて私たちを助けることができれば、それは非常に役に立ちます

サードパーティについて - FB SDK (ver 3.19)、ASIHTTPRequest を使用しています

0 投票する
2 に答える
264 参照

assembly - i386 アセンブリ コードをダンプし、PPC として再コンパイルしますか?

Apple 組み込みの「otool」コマンドと「-Vvtd」スイッチを使用して、Mach-O i386 バイナリをダンプし、.s ファイルにリダイレクトしました。nasm および GAS アセンブラを使用して PPC マシンでコードを再コンパイルしようとしましたが失敗しました (gcc/darwin の i386 ディレクトリに "as"-binary があり、ppc ディレクトリにも "as"-binary があります)。出力は次のようになります。

次のようなデータセクションもあります。

...

...

...

私は PPC 上の Mac でバイナリを実行するつもりであるため、再コンパイルの作業が必要です。構文をより「AT&T」スタイルにするために、左端の列のアドレスを削除したり、残したりしようとしました。既存のコード構造を編集したくありません (これは厳密にはリバース エンジニアリングの取り組みではありません。それ自体は、ほんの一部のカスタマイズです)。ただし、編集を行う必要がある場合は、i386 用の既存の純粋なコードをそのまま PPC で実行するためだけに厳密に編集することを強く望んでいます。

私はあなたの助けに感謝します。

よろしく

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

python - Homebrew は otool または clang を見つけることができません

homebrew を使用して Python 3 をインストールしようとしていますが、エラーで失敗します。実行brew doctorすると、次のように表示されます。

エラー: 実行中の失敗: /usr/bin/otool -L /usr/bin/install_name_tool

これを修正するにはどうすればよいですか?