ブログ

ファイル内の表示可能な文字列を表示する方法

at_shiita.ishigaki
2022年3月2日 8時52分

本ブログでは以下のコマンドで作成したa.outを使用します。

[armadillo ~]# apt install gcc
[armadillo ~]# cat hello.c
#include <stdio.h>
 
int main(void)
{
  printf("Hello World\n");
  return(0);
}
 
[armadillo ~]# gcc hello.c
[armadillo ~]# ls a.out
a.out

ファイル内の表示可能な文字列を表示するにはstringsコマンドを使用します。

[armadillo ~]# strings a.out
:(省略)
.init_array
.fini_array
.dynamic
.got
.data
.bss
.comment
.ARM.attributes

stringsコマンドはデフォルトでは4文字以上の文字列を出力します。これを変更するには-nオプションを使用します。

[armadillo ~]# strings -n 50 a.out
/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/Scrt1.o
/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crti.o
/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/crtn.o

複数ファイルを同時に表示することも可能です。-fオプションをつけることで、出力される文字列の前にファイル名が表示されます。

[armadillo ~]# strings -f a.out hello.c
:(省略)
a.out: .got
a.out: .data
a.out: .bss
a.out: .comment
a.out: .ARM.attributes
hello.c: #include <stdio.h>
hello.c: int main(void)
hello.c:   printf("Hello World\n");
hello.c:   return(0);