readelf -S を簡易実装してセクションヘッダを理解する
目次
- 目次
- 注意
- 概要
- 前提:セクションヘッダとは?
- 本題1:実装
- 本題2:セクション名のテーブルについて
- 総評
注意
readelf 実装
で検索すると未だに一番上に出てきてしまっているので注意.
これはelfについて全然詳しくない時期に書いたものです.
一応入門的内容についてまとめたものがあるので,
よろしければそちらを.
概要
こちらの記事の続きです。
一応今回でreadelfは最終回になると思います。
今回はセクションヘッダを解析するコードを書きました。
ソースコードはこちらに。
elf
パッケージを見てくださいね。
https://github.com/Drumato/goccgithub.com
続きを読むreadelf -lを簡易実装してELFフォーマットの理解を深める。
目次
- 目次
- 注意
- 概要
- 前提:プログラムヘッダテーブルとは?
- 本題
- コードリーディングで情報集め
- 実装
- 総評
注意
readelf 実装
で検索すると未だに一番上に出てきてしまっているので注意.
これはelfについて全然詳しくない時期に書いたものです.
一応入門的内容についてまとめたものがあるので,
よろしければそちらを.
概要
こちらの記事の続きです
ELFヘッダのあとは、
プログラムヘッダの解析 に移るのが自然な流れだと思います。
今回も ソースコードベース で見ていくことで、
バイナリに慣れていない人にも理解できる記事を目指します。
GitHubを参照しながら読み進めて頂ければと思います。
https://github.com/Drumato/gocc/tree/master/elfgithub.com
続きを読むバイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説
目次
- 目次
- 注意
- 概要
- まずはおさらい
- 本題:readelf
- 総評
注意
readelf 実装
で検索すると未だに一番上に出てきてしまっているので注意.
これはelfについて全然詳しくない時期に書いたものです.
一応入門的内容についてまとめたものがあるので,
よろしければそちらを.
概要
ELFフォーマットを理解するための試み第二弾。
こちらの記事の続きと言ってもいいです。
上記の記事には間違いが多いので注意してください。
本記事バイナリ何もわからない人に送るELFヘッダ解説
が正確です。
自作readelfの完成度を高める為にも、
単純にELFを勉強する教材として優れているという事からも、
本家readelfのコードリーディングは適切だと考えました。
今回は-h
オプションに限定していきます。
readelf -hの簡易版・省略版を作成するミニ記事
目次
- 目次
- 注意
- 概要
- 本題:ELFヘッダを見る
- 本題2:GoでELFヘッダを解析する
- 総評
注意
readelf 実装
で検索すると未だに一番上に出てきてしまっているので注意.
これはelfについて全然詳しくない時期に書いたものです.
一応入門的内容についてまとめたものがあるので,
よろしければそちらを.
概要
コンパイラ自作をとても楽しくやっている私ですが、
どうせコンパイラを作るならバイナリ生成までやらせたいものです。
もっと具体的に言うと、
アセンブリから機械語を生成するアセンブラ( ソフトウェアとしての )を作ってみたいですよね。
アセンブラ自作への欲求はコンパイラ自作を楽しんでる人たちで共有していると思いますが、
これはかなり難しくて、少なくとも次の知識が 必須 になります。
必要な知識のごく一部のみを取り上げます。
まずはELFの理解を深めようということで、
readelf
の自作を始めました。
readelf
はLinuxで用いることができるコマンドで、
elfフォーマットのファイルを見やすく表示したり、
いろんな情報を簡単に見ることができるというものです。
一番有名なのは
$ readelf -h hello
のように、
ELFヘッダを解析するオプション-h
を付けた出力ですね。
この ELFヘッダ解析 に焦点を当てて、
ミニ記事ではありますがお話をしていきたいと思います。
今回用いているコードは
https://github.com/drumato/goccgithub.com
のelf/
以下に置いてあるので参考までに。