Open7

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

mskmsk

file

ファイル形式を調べる

ldd

共有ライブラリの依存関係一覧を表示する

xdd

バイナリ表示dd

readelf

nm

strings

含まれている文字列調べる

strace

プロセスが呼び出す全てのシステムコールのを表示する

ltrace

共有ライブラリの呼び出しを追跡する

objdump

gdb

mskmsk

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)
mskmsk

コマンドラインの基本的な操作

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