初歩的な質問かもしれませんが、よくわからないので質問させてください。
HP-UX で作成されたバイナリ ファイルがあり、突然 Linux でこのバイナリ ファイルを取得した場合、または AIX や Sun Solaris などの他のプラットフォームでバイナリの詳細を確認したい場合それが開発されたプラットフォーム、どのプラットフォームでそれを行うことができますか?または、UNIX のすべてのフレーバーでそれを行う一般的な方法はありますか?
初歩的な質問かもしれませんが、よくわからないので質問させてください。
HP-UX で作成されたバイナリ ファイルがあり、突然 Linux でこのバイナリ ファイルを取得した場合、または AIX や Sun Solaris などの他のプラットフォームでバイナリの詳細を確認したい場合それが開発されたプラットフォーム、どのプラットフォームでそれを行うことができますか?または、UNIX のすべてのフレーバーでそれを行う一般的な方法はありますか?
このfile
コマンドは、実行可能ファイルだけでなく、あらゆるファイルに関する情報を提供します。
実行可能ファイルでは、次のような結果が得られます。
MS Windows PE 32 ビット Intel 80386 コンソール実行可能ファイルは再配置できません
また
ELF 32 ビット MSB 実行可能ファイル、SPARC、バージョン 1 (SYSV)、静的にリンク、削除されていない
構成方法に応じて、binutils objdump
はさまざまなバイナリ形式で使用できます。
$ objdump -f flex/bin/flashplayer flex/bin/flashplayer: ファイル形式 elf32-i386 アーキテクチャ: i386、フラグ 0x00000112: EXEC_P、HAS_SYMS、D_PAGED 開始アドレス 0x0804fb20 $ objdump -f フレックス/ビン/adl アーカイブ flex/bin/adl: flex/bin/adl:powerpc:common: ファイル形式 mach-o-be アーキテクチャ: powerpc:common、フラグ 0x00000012: EXEC_P、HAS_SYMS 開始アドレス 0x00001c88 flex/bin/adl:i386: ファイル形式 mach-o-i386 アーキテクチャ: i386、フラグ 0x00000012: EXEC_P、HAS_SYMS 開始アドレス 0x00001e64 $ objdump -f flex/bin/adl.exe flex/bin/adl.exe: ファイル形式 pei-i386 アーキテクチャ: i386、フラグ 0x0000012f: HAS_RELOC、EXEC_P、HAS_LINENO、HAS_DEBUG、HAS_LOCALS、D_PAGED 開始アドレス 0x004014c0
これは、Linux x86 ELF バイナリ、fat PPC および x86 Mach-O バイナリ、および Windows 実行可能ファイルです。例をいくつか示します。