コードを貼り付けてボタンを押すとサーバサイドでコードを実行し、実行結果を表示してくれる codepad でちょっと遊んでみました。
何をして遊んだかというと、サーバの実行環境やコンパイル環境の事を知ることはできないだろうかと、実行ファイルの ELF(Executable and Linking Format) を読んでみました。 まず初めに こんな感じ で ELF header から OS/ABI 情報と CPU の情報を取得してみました。
結果は OS/ABI が 0 で ehdr.e_machine が 3。 ABI が 0 というのがよく分かりませんが、 ehdr.e_machine が 3 ということから i386 系 CPU ということが分かります。これは、手元の FreeBSD では elf.h から include を辿って sys/elf_common.h に define マクロが定義されていたので、そこから判断しました。分かったからどうということもないですが。
おまけでこちら。おそらく 4.1.2 というのはおそらく GCC のバージョンだと思われます。 こちらもだからなんだってことなんですけど。
次に .comment セクションに何か入ってないかなーと思い、ELF のセクションヘッダにも手を出してみました。セクションヘッダの構造は ここを参考にしました。書いたコードも晒しておきますが、実行したら seek が禁止されていて実行できませんでした。残念。
以下が .comment セクションを表示するプログラムです。時間があればコメントもつけたいところです。











コメントする