問題タブ [mach-o]

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 に答える
1595 参照

objective-c - プライベートな Objective-C 固有の Mach-O セクションを解析する方法

Mach-O バイナリの DATA セグメントには、objective-C 固有のセクションがいくつかあります ( Mach-O ファイル形式の 7 ページに記載されています) 。

PiOSの論文を引用するには:

__objc_classlist セクションには、分析されたバイナリに実装が存在するすべてのクラス (つまり、開発者によって実装された、または静的リンカーによって含まれたすべてのクラス) のリストが含まれます。

一方、__objc_classref セクションには、アプリケーションで使用されるすべてのクラスへの参照が含まれています。これらのクラスの実装は、バイナリ自体に含まれている必要はありませんが、ランタイム フレームワーク (動的にリンクされたライブラリに相当) によって提供される場合があります。

これらの構造のレイアウトは、Objective C ランタイム ヘッダー (ここで入手可能) から入手できると述べています。

__objc_classrefおよび__objc_classlistセクションの実際の構造は何ですか?

前もって感謝します。

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

ios - ローカル シンボルへの参照を取得する (つまり、外部にする)

オブジェクトの1つがシンボルを定義する静的ライブラリがあります。

C コードから関数にアクセスする必要があります。明らかに、ライブラリのソース コードを持っていないので、手元にあるアーカイブ ファイルでしか作業できません。

これは、iOS リンカーによってさらに制限されます。

もう少しコンテキスト。ライブラリは Objective-C++ で、問題の関数は純粋な C です。元のヘッダーはありませんが、関数の署名が復元されています。

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

xcode - AppleMach-Oリンカーの警告は消えません

私のプロジェクトでは、このAppleMach-Oリンカーの警告が数日間ありました。それは何よりも厄介ですが、それが私のアプリのパフォーマンスに何らかの影響を及ぼしているのではないかと心配しています(Xcodeで非常に多くの奇妙な問題が発生したため、現時点では何も疑うことはありません)。警告は言う:

警告:オプション'-L / Volumes / ZBarSDK/ZBarSDK'のディレクトリが見つかりません

何が原因なのか、どうやって修正するのかわかりません。アプリにZBarSDKというフォルダーがありますが、別のZBarSDKを追加しても問題は解決しません。私は自分のコンピュータでボリュームフォルダを検索しようとしましたが、運がなかったか、そこにないか、Appleがそれをかなりうまく隠していました。これを修正するために何ができるか教えてください

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

c++ - XCodeMach-Oリンカーエラー

XCode 4.3 +llvm3.1からXCode4.5GMにアップグレードした後、次のリンカーエラーが発生し始めます。「_InvokeBridge」が定義されている静的ライブラリが正しくリンクされていることを確認しました。

エラーの原因となる可能性のあるアイデアはありますか?また、Mach-oリンカーエラーを一般的に調査するためのヒントはありますか?

どうもありがとう、A

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

ios - -AppleMach-Oリンカーエラーを引き起こすlsqlite3

Facebook SDKをインストールし、そのチュートリアルの1つに従って、アプリに非常に基本的なFB機能を提供しました。アプリとFBの統合はうまく機能しているように見えるので、チュートリアルでまともな仕事をしたと思います。TestFlightでビルドアップをスローできるようにプロジェクトをアーカイブしようとすると、以下のテキストのように、15個のリンカーエラーが原因で失敗します(アプリログからコピーしました)。これは、FBtuteが「その他のリンケージ」の下のビルド設定に追加すると言ったlsqlite3.0に関連しているようです。解決するために何をすべきかよくわかりません。アドバイスをいただけますか?それはとても素晴らしいでしょう、ありがとう!エラーは次のとおりです。

アーキテクチャarmv7の未定義のシンボル: "_ sqlite3_reset"、参照元:FacebookSDK(FBCacheIndex.o)の_initializeStatement "_sqlite3_prepare_v2"、参照元:_initializeStatement in FacebookSDK(FBCacheIndex.o) "_sqlite3_open_v2"、参照元:___ 36- [FBCache FacebookSDK(FBCacheIndex.o)の_block_invoke_0 "_sqlite3_bind_text"、参照元:-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _readEntryFrom FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FBCacheIndex.o) "_sqlite3_step"、参照元:-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _fetchCurrentDiskUsage] in FacebookSDK(FB .o)-[FBCacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _dropTrimmingTable] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _trimDatabase] in FacebookSDK(FBCacheIndex.o)... "_sqlite3_bind_double"、参照元: -[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o) "_sqlite3_bind_int"、参照元:-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _trimDatabase] in FacebookSDK(FBCacheIndex.o) "_sqlite3_finalize"、参照元:_releaseStatement in FacebookSDK (FBCacheIndex.o) "_sqlite3_column_text"、参照元:-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _trimDatabase] in FacebookSDK(FBCacheIndex.o) "_sqlite3_exec"、参照元:___ 36- [FBCacheIndex initWithCacheFolder: ] _block_invoke_0 in FacebookSDK(FBCacheIndex.o) "_sqlite3_errmsg"、参照元:_releaseStatement in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _updateEntryInDatabaseForKey:entry:] in FacebookSDK(FBCacheIndex.o)_initializeStatement in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _writeEntryInDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _fetchCurrentDiskUsage] in FacebookSDK( FBCacheIndex.o)-[FBCacheIndex _removeEntryFromDatabaseForKey:] in FacebookSDK(FBCacheIndex.o)... "_sqlite3_column_int"、参照元:-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)-[FBCacheIndex _fetchCurrentDiskUsage] in FacebookSDK(FBCacheIndex。 o)-[FBCacheIndex _trimDatabase] in FacebookSDK(FBCacheIndex.o) "_sqlite3_close"、参照元:___ 23-[FBCacheIndexdealloc] _block_invoke_0 in FacebookSDK(FBCacheIndex.o) "_sqlite3_column_double"、参照元:-[FBCacheIndex _readEntryFromDatabase:] in FacebookSDK(FBCacheIndex.o)ld:アーキテクチャarmv7のシンボルが見つかりませんclang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください)

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

python - Libsvm python バインディング: mach-o、しかし間違ったアーキテクチャ

Mac (OS-X 10.6.8) に libsvm をインストールしようとしています。Libsvm は C++ に問題なくインストールされます (svm-train、svm-predict バイナリを問題なく使用できます)。指示に従って、 libsvm-3.12/python/ フォルダーに make と入力すると、次の出力が得られました

しかし、「import svmutil」を介してPythonで使用しようとすると、次のエラーが発生します

このエラーを回避する方法がわかりません。g++ の -m64 および -arch x86_64 フラグを使用してコンパイルしようとしましたが (libsvm の "Make" プロセス中に)、引き続きこのエラーが発生します。誰かがこの問題を回避する方法を教えてもらえますか?

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

dynamic-linking - Mach-oバイナリでの関数参照の変更

mach-oバイナリの関数の参照を、自分のdylibで定義されたカスタム関数に変更する必要があります。私が今行っているプロセスは、

  1. 古い関数への参照を新しい関数に置き換えます。例:sed_fopenの使用。_mopen

  2. MachOViewでmach-oバイナリを開いて、変更するエンティティのアドレスを見つけます。次に、16進エディターを使用してバイナリーの情報を手動で変更します。

このプロセスを自動化する方法はありますか。つまり、シンボルを読み取るプログラムを作成し、情報を動的にロードして、実行可能ファイルでそれらを変更する方法はありますか。私はでmach-oヘッダーファイルを見ていました/usr/include/mach-oが、この情報を取得するためにそれらを使用する方法が完全にはわかりません。同じことをするのに役立つCまたはPythonのライブラリが存在しますか?

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

xcode - xcode 4.5に更新され、アプリのビルドが失敗する「AppleMach-Oリンカーエラー」

こんにちは私はアプリ開発に関しては初心者ですが、xcode 4.5にアップグレードするまで、アプリは問題なく動作していました。アプリは変更されていませんが、いつも使用している同じiPadに同じアプリを配置しようとすると、「ビルドに失敗しました」というメッセージが表示されます。

私が受け取っているエラーはここに表示されますhttp://i1342.photobucket.com/albums/o763/designedbyria/ScreenShot2012-09-27at162319_zpsfea02141.png(私は愚かに画像を含めることができません)-Apple Mach-Oリンカーエラー、誰かが私がこれを解決する方法を知っていますか?私は本当に何が起こっているのか見当がつかないので、このアプリをできるだけ早く動作させることが重要です!

ありとあらゆる助けが大歓迎です!よろしくお願いします…</p>

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

c - その場で関数アドレスを見つける

私の目標は、ARM プラットフォーム上のストリップされたバイナリにシンボルなしで C 関数をフックすることです。これらの関数のアドレスは変更される可能性があるため (つまり、バイナリの更新により)、介在する動的ライブラリ自体にアドレスを見つけてもらいたいと考えています。

さらに、これらの関数は、ある時点で、更新によって決して変更されない C 文字列を使用します。これを念頭に置いて、関数のアドレスを見つけるための 3 つの手順を次に示します。

1) C 文字列自体のアドレスを見つける (セグメント__cstring内のセクションを分析することによって.__TEXT

2) 文字列への参照のアドレスを見つけます。

3) xref アドレスから始めて、関数のプロローグが見つかるまでさかのぼります。

ステップ1)と3)は実装できましたが、2)については少し迷っています。外部参照とは正確には何ですか? C-string に対応するものを特定するにはどうすればよいですか? コードは必要ありません。理論だけです。

ありがとう !