このツールについて
実行ファイル、.so、カーネルモジュール、.o、CTF のバイナリ、ファームウェアイメージ — ELF ならここにドロップするだけで、readelf -a が教えてくれる内容が 2 つのペインで連動して出てきます。左は構造ツリー: ELF ヘッダーのフィールド、プログラムヘッダー、セクションテーブル、.dynsym と .symtab(別々に)、.dynamic、各リロケーションセクション、ノート、バージョン定義と要求。右はファイルのバイト列。行をクリックすればその行の元になったバイトがちょうど光り、バイトをクリックすればそれを含む一番内側の構造が選択されます。
サマリーカードは、テーブルを開く前に片付けたい問いに先に答えます。ELF32 か ELF64 か、どのアーキテクチャとバイト順か、EXEC か DYN か REL か、エントリポイントはどこか、そして e_flags が意味を持つアーキテクチャ(RISC-V と MIPS はどちらもそうです)ではその中身。続けて導かれる事実として、静的リンクか動的リンクか・どのローダーを要求しているか、strip 済みか、PIE か、.note.gnu.build-id の Build ID、そして PT_GNU_STACK に PF_X が立っているか。最後のものはセキュリティに直結する事実なので、表の中に埋めずにそのまま書きます。
アップロードは一切ありません。この読者層にとってそれは機能ではなく前提です。CTF のバイナリは他人がまだ解いていない問題で、ファームウェアはたいてい顧客の資産です。セクションヘッダーを 1 つ見るために、それを見知らぬサーバーへ送るのは割に合いません。ファイルはタブで読み、Web Worker に渡して、メモリ上で解析します。アップロード先は存在せず、DevTools を開いたまま確認できます — バイナリを開いてもネットワークリクエストは 1 本も出ません。解析は Worker で走るので 60 MB のバイナリでもタブは固まらず、128 MiB を超えるファイルは受け取って固まる代わりに理由を添えて断ります。
このページが出す名前 — アーキテクチャ、種別、セクション種別、シンボルの type / bind / visibility、リロケーション種別、ダイナミックタグ — はすべて GNU binutils の readelf と同じ綴りです。パーサーが自分の期待値ではなく実際の readelf 出力と突き合わせてテストされているからです。シンボルが 1,900 個のバイナリは普通で、400,000 個のものも存在するので、シンボルとリロケーションの絞り込み・並べ替え・ページングはデータのある側で行い、1 行ずつページへ描き出すことはしません。