readelf

今日は深い所に突っこむぞぉ〜。Binary Hacksの2章から浅広。この本を読むためにOSまで変えてしまったと言っても過言ではない!!(理由は色々あるのだ。

ってことで、elfファイルの解析に取り組む。

$ file /bin/ls                                     # lsを解析
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV)...
$ egrep -n '\bELF\b' /usr/share/misc/magic         # magicからELFを探す。
3869:# elf:  file(1) magic for ELF executables
3877:0  string          \177ELF         ELF
$ cat /usr/share/misc/magic | sed -ne '3869,3887p' # magicを読む
# elf:  file(1) magic for ELF executables
0       string          \177ELF         ELF
>4      byte            1               32-bit
>5      byte            1               LSB
$ readelf -h /bin/ls                               # lsのヘッダを読む!
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00

magicが反映去れているのを確認できました〜。sedでpはこう使うのかと関心しました。さすがです。

でも、最初は文字「\177」と書いてあるけど、どう計算しても、「0x7f=127」だ。177にならない・・・。

・・・!!

「0x7f=0177」。8進数だった!!

バイナリハッカーへの道は遠い。遥かに・・・。