問題タブ [objcopy]

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

strip - only-keep-debugでobjcopyのストリップを逆にする方法は?

最新の Linux では、ほとんどすべてのオブジェクトが取り除かれ、2 つの部分 (2 つのファイル) に分割されます。1 つ目は実行可能ファイルそのもので、2 つ目は元の ELF から削除されたデバッグ シンボルです。そのようなファイルはで作成されます

デバッグ情報を含む ELF ファイルにマージするbinaryにはどうすればよいですか? binary.dbgストリップされていない元のバイナリを再作成したい。バイト単位でオリジナルと同じにすることはできませんが、内部にデバッグ シンボルを含める必要があります。

PS はい、セクションについては知ってgnu.debuglinkいますが、一部のデバッガー (etnus) と逆アセンブラーでは機能しません (objdump はシンボル情報を復元できません)。

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

c - 実行可能ファイルから配列を抽出するにはどうすればよいですか?

この質問の逆をやりたいです。

ファイルを実行可能ファイルに配列として埋め込みますが、後で実行可能ファイルから埋め込みファイルを抽出したいと思います。

ここではobjcopyが役立つようですが、適切な呪文はまだわかりません。

(編集:質問を明確にします。元々編集する際に、どういうわけかその核心を取り除きました...)

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

gcc - powerpc-eabi-objcopy は 1GByte のファイルを作成します

私の elf ファイルは、すべてのデバッグ シンボルを含む約 1MByte です。「powerpc-eabi-objcopy -O binary out.elf out.bin」でバイナリ ファイルを作成しようとすると、out.bin が 1GByte と巨大です。

ビルドスクリプトは次のようになります

問題についてのアイデアはありますか?

ありがとう、

フリードリヒ

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

macos - Mac / iPhone に相当する objcopy はありますか?

objcopy --redefine-symsオブジェクト ファイル (.o) 内のシンボルの名前を、Mac で binutils のツールに相当するものに変更したいと考えています。

いいえarm-apple-darwin10-objcopy。私は MacPorts のarm-elf-binutilsポートを試し、また少し遊んでみましたが、うまくotoolいきsegeditませんでした。

アイデアはありますか?

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

c - 「objcopy --redefine-sym add=new_ad」を使用した後も、「undefined symbol: new_add」と報告されます

2 つの動的ライブラリをロードする必要があり、関数名の競合が 1 つあります。そこで、「objcopy --redefine-sym add=new_add libmy_test.so libmy_test_new.so」というコマンドを使用して、シンボル名を変更します。

しかし、それでも「エラー: ./libmy_test_new.so: 未定義のシンボル: new_add」が報告されます。

以下は私のテストコードです。

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

c - objcopyを使用した巨大なバイナリファイル

ARM9プロセッサの基本的なCプログラムでグローバル変数を定義するときに問題が発生します。私はEABIGNUコンパイラを使用しており、12KBのエルフから生成されたバイナリは4GBです!問題はスキャッターファイルにあると思いますが、頭を動かすのに問題があります。

256KBのROM(ベースアドレス0xFFFF0000)と32KBのRAM(ベース0x01000000)があります

そして私のプログラムは次のとおりです。

をローカル変数として宣言すると、つまり.dataセクションがない場合、すべてが機能します。大丈夫。どんな助けでも大歓迎です。

-2011年3月16日-
誰かがこれを手伝ってくれますか、私はどこにも行かず、マニュアル、フォーラムなどを読んだことがあります...
私のブート、コンパイルコマンド、およびobjcopyコマンドは以下に貼り付けられています

arm-none-eabi-gcc -mcpu = arm926ej-s -Wall -nostartfiles -Wall main.c boot.s -o main.elf -T \ scatter_file
arm-none-eabi-objcopy ./main.elf --output- target = binary ./main.bin
arm-none-eabi-objdump ./main.elf --disassemble-all> ./main.dis

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

assembly - これを理解する方法は?

この質問からです。

test.oとはどう違いtest.binますか?

上記は何をしているのですか?

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

linux - 追加のコードを実行可能ファイルにマージする(arm-linux)

いくつかの追加のロギングコードを静的にリンクされた(android arm linux)実行可能ファイルにマージしようとしています。

(通常のトレースメソッドは機能していないようです。これは、何か面白いことをする直前にclone()を実行するデーモンプロセスであるためです。straceにこれに従うように指示すると、クラッシュするだけです)。

ジャンプ命令を新しいコードに挿入するために既存のコードを16進数で編集することはテストされ、機能しています。問題は、既存のセグメントに干渉しないように新しいコードを実行可能ファイルにマージし、にロードされることです。実行可能ページ。

すべての追加コードを単一のオブジェクトファイルセクションに凝縮することはできましたが、objcopy(またはld)を使用して、適切にロードされるようにマージする方法を理解できません-私はそうです既存のロードセグメントのサイズを変更して移動するか、尊重されるセグメントを追加する必要があります。

すでにリンクされ、現在静的な実行可能ファイルに必要なスタブを追加する方法がある場合は、共有ライブラリにコードを追加することもできます(次に、スタブの既知の場所にジャンプ命令で16進編集します。これは、ランタイムです。その後、リンカーは追加されたコードをポイントします)

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

c++ - autoconfを使用してバイナリファイルからobject(.o)を生成するカスタムコマンド

プロジェクト(c ++)があり、共有ライブラリにバイナリファイルを含める必要があります。これは、リソースファイルからバイナリファイルを参照することにより、Windowsで実行されます。Linuxでは、ここに示すようにobjcopyを使用して実現できます。

問題は、autoconf /automakeを使用してこれをどのように自動化できるかということです。Makefile.amファイルとconfigure.acファイルがあります。これは手動の作業になりますか?

(たぶん、この質問はUNIXスタック交換サイトにある必要がありますか?)

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

gnu-toolchain - sde-objcopy のアーキテクチャを指定する方法

sde-objcopy を使用して画像をオブジェクト ファイル (.o) に変換する必要があります。その後、この画像を no-os システムで使用できます。objcopy コマンドをテストしましたが、私の PC (Fedora 12) でうまく動作します。たとえば、次のコマンドは test.jpg を test.o に変換します。

objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o

ここに私の質問があります:

A. _ sde-objcopy にはアーキテクチャを指定する「-B」オプションがありませんが、アーキテクチャを指定しないと、次のような警告が表示されます。

$ sde-objcopy -I binary -O elf32-little test.jpg test.o

sde-objcopy: 警告: 出力ファイルはアーキテクチャを表すことができません UNKNOWN!

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

B. _ objcopy は、ファイルの名前を使用してオブジェクト ファイルにシンボルを生成しているようです。objcopy のパラメーターとしてフル パス (など/home/owner/stdy/test.jpg) を使用すると、長い名前のシンボルが生成されます。この問題を解決するエレガントな方法はありますか?

$ objcopy -I binary -O elf32-i386 -B i386 ../stdy/test.jpg test.o

$ nm test.o