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

macos - Mac OS X: プログラムのコードと静的データのサイズを見積もる最良の方法は何ですか?

C++ プログラムで使用されているコードと静的データの量を推定したいのですが?

実行可能ファイルまたはオブジェクト ファイルを調べてこれを見つける方法はありますか? それとも、実行時にできることでしょうか?

otool は役に立ちますか?

0 投票する
4 に答える
60860 参照

xcode - Xcode で動的ライブラリ (dylib) を作成するにはどうすればよいですか?

Xcode でいくつかのコマンドライン ユーティリティを作成しています (プレーン C、Cocoa なし)。私はそれらすべてにカスタマイズしたバージョンの libpng を使用してもらいたいです。また、すべての実行可能ファイル間でライブラリの 1 つのコピーを共有することでスペースを節約したいと考えています (再配布.dylibしてもかまいません)。

libpng エクスポート シンボルを取得するために魔法をかける必要がありますか?

「Link Binary With Libraries」はフェーズリンクを静的に構築しますか?

Apple のドキュメントでは、実行時のライブラリのロードdlopenについて .


私はそれを理解したと思います:

  • 32/64 ビットの実行可能ファイルと 32 ビットのライブラリをビルドしたため、libpng が正しくリンクされませんでした。ライブラリと実行可能ファイルのビルド設定は一致する必要があります。

  • libpng の config.h には、次のような大量の定義が必要です。#define FEATURE_XXX_SUPPORTED

  • "Link Binary With Libraries"ビルド フェーズは動的ライブラリを適切に処理し、アプリケーション バンドルからDYLD_FALLBACK_LIBRARY_PATHをロードするには環境変数が必要です。.dylib

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

macos - OSX用のMach-Oバイナリエディタ?

py-macholib は osx (darwin ポートを使用) では正しく動作しません。私は他の代替手段を見つけていません。

何か案は?

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

macos - LC_LOAD_DYLIB コマンドを Mach-O バイナリに挿入する方法 (OSX)

いくつかのコードで放棄されたソフトウェアにパッチを適用しようとしています。

ソフトウェアはカーボン ベースなので、InputManager は使用できません (少なくとも、使用できるとは思いません)。私のアイデアは、マッチョ ヘッダーに dylib 参照を追加し、初期化ルーチンが呼び出されたときに新しいスレッドを起動することでした。

適切なロード コマンド (LC_LOAD_DYLIB) を追加するために、hexeditor を使用して mach-o ヘッダーをいじりました。

otool は私が期待するものを報告するので、ファイルが正しくフォーマットされていることはかなり確信しています。

ただし、バイナリを起動すると、次のエラーが表示されます

これは、LC_SYMTAB または LC_DYNSYMTAB セクションを変更する必要があることを意味していると推測できます...

誰にもアイデアはありますか?

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

macos - Mach-Oバイナリから削除されたシンボルの再構築

Mac OS X 10.5を使用して、dtraceを使用してMach-Oバイナリの実行を追跡する方法を理解しようとしています。ただし、シンボルがすべて削除されているように見えるため、内部クラス/メソッド名に基づいてプローブを使用しようとすると失敗します。

class-dumpを使用して、クラス、メソッド名、およびそれらが実装されているアドレスをダンプすることができたので、それを使用してバイナリのシンボルを再構築できると思います。それも可能ですか?もしそうなら、誰かがそれを助けるかもしれないツールや私がそれをよりよく理解するのを助けるいくつかの読み物を知っていますか?

これは、このレベルでバイナリを操作する最初の試みなので、助けていただければ幸いです。

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

macos - Mac OS X mach-o バイナリ ファイルの TEXT セクションにデータを埋め込むにはどうすればよいですか?

私は Mac OS X コマンドライン ツールを持っており、バイナリ ファイル自体にデータを埋め込むことでメリットが得られます。

mach-o ファイルが複数のセグメントをサポートしていることは知っていますが、そのうちのいくつかは任意のデータを格納するために使用できます。しかし、それを行うためのコマンドライン ツールが見つかりません。

おそらくもっと簡単な方法 (たとえば、データ ファイルを C ソース コードに変換し、gcc でリンクする) でデータをバイナリに取り込む方法があることは知っていますが、この問題に興味を持ちました。魔法を知っている人はいますか?

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

macos - OS X: __TEXT セグメントのセクションは他のプログラムによって変更されますか?

なんらかの理由で、一部のプログラム (または OS 自体) が実行可能ファイルの __TEXT セグメントの内容を変更することはありますか?

  • 注: ここでは、"__text" セクションではなく、"__TEXT" セグメントについて言及しています。

つまり、実行可能ファイルの __TEXT セグメントのバイトに依存して、実行可能ファイルが破損しているかどうかを検出できますか (たとえば、そのセグメントのチェックサムを計算することによって)、またはこのセグメントが変更されている可能性があるために誤検知が発生する可能性はありますか?プログラムがユーザーのコンピュータにインストールされた後ですか?

ありがとう!

0 投票する
4 に答える
5425 参照

c++ - C++ の 32 ビットおよび 64 ビット Mach-O バイナリ/実行可能形式のパーサー

32 ビットおよび 64 ビットの Mach-O バイナリ形式を解析できる C++ ライブラリを探しています。ファイルを逆アセンブルしてセクションに分割するだけなので、逆コンパイルや名前のデマングリングなどは必要ありません。

私は、既存の逆アセンブラーをリッピングするか、Apple のフォーマット仕様を使用して独自のバイナリーパーサーを作成できることを知っていますが、特に他の誰かが私のために作業を行っている場合は、そこまで行かなくて済むことを望んでいました。

どうもありがとう!

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

executable - バイナリ(Mach-O)ファイルの文字列を変更するにはどうすればよいですか?

Mach-Oバイナリの文字列を(簡単に)変更する方法はありますか?既存の文字列の長さを延長したい。

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

assembly - Mac OS X でのアセンブリの編集

私は現在、WindowsのIDA ProでMach-O実行可能ファイル(実行可能ファイルはMac OS Xで実行されます)を逆アセンブルしています。変更したい命令が 1 つありますが、IDA Proではこれを実行できないようです。そこで、OS X で otool を使用してアセンブリをダンプしようとしました (問題なく動作します)。しかし、otool でアセンブリを編集した後、 を使用して再アセンブリしようとしましたas <file name of modified otool -tV output>。これは、のような一連のエラーで私を迎えますJunk character 43 (+)。Mac OS X で Mach-O バイナリの 1 つの命令だけを変更する最も簡単な方法は何ですか?