てきとうなメモ

本の感想とか技術メモとか

stringsコマンドの出力

Mac OS Xのstringsの場合、オプションなしの場合はテキストセグメント以外のセグメントのデータを出力して、

$ strings   /bin/echo
$FreeBSD: src/bin/echo/echo.c,v 1.18 2005/01/10 08:39:22 imp Exp $
@(#)PROGRAM:echo  PROJECT:shell_cmds-175
malloc
write

-aオプションを付けるとテキストセグメントも含めて出力して、

$ strings -a /bin/echo
AWAVAUATSH
t/Hc
[A\A]A^A_]
AWAVATSI
$FreeBSD: src/bin/echo/echo.c,v 1.18 2005/01/10 08:39:22 imp Exp $
@(#)PROGRAM:echo  PROJECT:shell_cmds-175
malloc
write

標準入力から読み取ると、セグメントとか無視してある程度印字可能な文字が連続したら出力するということか。まあ、通常は文字列リテラルを見たいので、オプションなしので十分な気がする。

$ cat /bin/echo | strings
__PAGEZERO
__TEXT
__text
__TEXT
__stubs
__TEXT
...