Open7
Linuxのツール・コマンドについて調べた事

file
ファイル形式を調べる
ldd
共有ライブラリの依存関係一覧を表示する
xdd
バイナリ表示dd
readelf
nm
strings
含まれている文字列調べる
strace
プロセスが呼び出す全てのシステムコールのを表示する
ltrace
共有ライブラリの呼び出しを追跡する
objdump
gdb

OSのバージョン確認
ls /etc/*releaseでヒットしたファイルを確認する
cat /etc/os-release
uname -a
Ubuntuのglibcのバージョン確認
$ strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.30
GLIBC_PRIVATE
GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.9) stable release version 2.31.
$ strings /lib/x86_64-linux-gnu/libc.so.6|grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.30
GLIBC_2.31
GLIBC_2.32
GLIBC_2.33
GLIBC_2.34
GLIBC_2.35
GLIBC_PRIVATE
GNU C Library (Ubuntu GLIBC 2.35-0ubuntu3.1) stable release version 2.35.
以下のメッセージが出る場合
-bash: strings: command not found
sudo apt install binutils
$ objdump -p /lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6: file format elf64-x86-64
Program Header:
PHDR off 0x0000000000000040 vaddr 0x0000000000000040 paddr 0x0000000000000040 align 2**3
filesz 0x00000000000002a0 memsz 0x00000000000002a0 flags r--
INTERP off 0x0000000000193f20 vaddr 0x0000000000193f20 paddr 0x0000000000193f20 align 2**4
filesz 0x000000000000001c memsz 0x000000000000001c flags r--
LOAD off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
filesz 0x0000000000024980 memsz 0x0000000000024980 flags r--
LOAD off 0x0000000000025000 vaddr 0x0000000000025000 paddr 0x0000000000025000 align 2**12
filesz 0x000000000014a5ac memsz 0x000000000014a5ac flags r-x
LOAD off 0x0000000000170000 vaddr 0x0000000000170000 paddr 0x0000000000170000 align 2**12
filesz 0x0000000000049ff3 memsz 0x0000000000049ff3 flags r--
LOAD off 0x00000000001ba5e0 vaddr 0x00000000001bb5e0 paddr 0x00000000001bb5e0 align 2**12
filesz 0x0000000000005030 memsz 0x0000000000008f28 flags rw-
DYNAMIC off 0x00000000001bcb80 vaddr 0x00000000001bdb80 paddr 0x00000000001bdb80 align 2**3
filesz 0x00000000000001e0 memsz 0x00000000000001e0 flags rw-
NOTE off 0x00000000000002e0 vaddr 0x00000000000002e0 paddr 0x00000000000002e0 align 2**2
filesz 0x0000000000000044 memsz 0x0000000000000044 flags r--
TLS off 0x00000000001ba5e0 vaddr 0x00000000001bb5e0 paddr 0x00000000001bb5e0 align 2**3
filesz 0x0000000000000010 memsz 0x0000000000000090 flags r--
EH_FRAME off 0x0000000000193f3c vaddr 0x0000000000193f3c paddr 0x0000000000193f3c align 2**2
filesz 0x00000000000061b4 memsz 0x00000000000061b4 flags r--
STACK off 0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
RELRO off 0x00000000001ba5e0 vaddr 0x00000000001bb5e0 paddr 0x00000000001bb5e0 align 2**0
filesz 0x0000000000002a20 memsz 0x0000000000002a20 flags r--
Dynamic Section:
NEEDED ld-linux-x86-64.so.2
SONAME libc.so.6
INIT 0x0000000000026b90
INIT_ARRAY 0x00000000001bb5f0
INIT_ARRAYSZ 0x0000000000000010
HASH 0x0000000000000328
GNU_HASH 0x0000000000003820
STRTAB 0x0000000000015308
SYMTAB 0x00000000000074d8
STRSZ 0x00000000000060c1
SYMENT 0x0000000000000018
PLTGOT 0x00000000001be000
PLTRELSZ 0x0000000000000468
PLTREL 0x0000000000000007
JMPREL 0x0000000000024518
RELA 0x000000000001caf0
RELASZ 0x0000000000007a28
RELAENT 0x0000000000000018
VERDEF 0x000000000001c650
VERDEFNUM 0x0000000000000020
FLAGS 0x0000000000000010
VERNEED 0x000000000001cac0
VERNEEDNUM 0x0000000000000001
VERSYM 0x000000000001b3ca
RELACOUNT 0x00000000000004bd
Version definitions:
1 0x01 0x0865f4e6 libc.so.6
2 0x00 0x09691a75 GLIBC_2.2.5
3 0x00 0x09691a76 GLIBC_2.2.6
GLIBC_2.2.5
4 0x00 0x0d696913 GLIBC_2.3
GLIBC_2.2.6
5 0x00 0x09691972 GLIBC_2.3.2
GLIBC_2.3
6 0x00 0x09691973 GLIBC_2.3.3
GLIBC_2.3.2
7 0x00 0x09691974 GLIBC_2.3.4
GLIBC_2.3.3
8 0x00 0x0d696914 GLIBC_2.4
GLIBC_2.3.4
9 0x00 0x0d696915 GLIBC_2.5
GLIBC_2.4
10 0x00 0x0d696916 GLIBC_2.6
GLIBC_2.5
11 0x00 0x0d696917 GLIBC_2.7
GLIBC_2.6
12 0x00 0x0d696918 GLIBC_2.8
GLIBC_2.7
13 0x00 0x0d696919 GLIBC_2.9
GLIBC_2.8
14 0x00 0x06969190 GLIBC_2.10
GLIBC_2.9
15 0x00 0x06969191 GLIBC_2.11
GLIBC_2.10
16 0x00 0x06969192 GLIBC_2.12
GLIBC_2.11
17 0x00 0x06969193 GLIBC_2.13
GLIBC_2.12
18 0x00 0x06969194 GLIBC_2.14
GLIBC_2.13
19 0x00 0x06969195 GLIBC_2.15
GLIBC_2.14
20 0x00 0x06969196 GLIBC_2.16
GLIBC_2.15
21 0x00 0x06969197 GLIBC_2.17
GLIBC_2.16
22 0x00 0x06969198 GLIBC_2.18
GLIBC_2.17
23 0x00 0x06969182 GLIBC_2.22
GLIBC_2.18
24 0x00 0x06969183 GLIBC_2.23
GLIBC_2.22
25 0x00 0x06969184 GLIBC_2.24
GLIBC_2.23
26 0x00 0x06969185 GLIBC_2.25
GLIBC_2.24
27 0x00 0x06969186 GLIBC_2.26
GLIBC_2.25
28 0x00 0x06969187 GLIBC_2.27
GLIBC_2.26
29 0x00 0x06969188 GLIBC_2.28
GLIBC_2.27
30 0x00 0x06969189 GLIBC_2.29
GLIBC_2.28
31 0x00 0x069691b0 GLIBC_2.30
GLIBC_2.29
32 0x00 0x0963cf85 GLIBC_PRIVATE
GLIBC_2.30
Version References:
required from ld-linux-x86-64.so.2:
0x0d696913 0x00 34 GLIBC_2.3
0x0963cf85 0x00 33 GLIBC_PRIVATE
対応するGLIBのバージョンがない場合のエラーメッセージ
./a2.out: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./a2.out)

Linuxのglibとディストリビューションの関係
パッケージとバージョンの関係確認

コマンドラインの基本的な操作
分類 | キー | 説明 |
---|---|---|
移動 | Ctrl + A | カーソルをコマンドラインの先頭に移動 |
Ctrl + E | カーソルをコマンドラインの最後に移動 | |
Ctrl + B | カーソルを1つ前に移動 | |
Ctrl + F | カーソルを1つ後ろに移動 | |
削除 | Ctrl + K | カーソルの位置から最後までを削除 |
Ctrl + U | カーソルの位置から前を削除 | |
Ctrll + B | カーソル位置の文字を削除 | |
Ctrll + H | カーソル位置の前の文字を削除 |