通过readelf查看动态库中的内容

readelf是unix下查看库中链接的内容工具。elf:Executable and Linkable Format

mac下的安装以及使用方法:

1、下载binutils-2.24.tar.gz

2、解压

3、安装(使用disable-werror是为了防止mac上make不通过,参考http://stackoverflow.com/questions/20426213/error-building-ellcc)

./configure --disable-werror
make
make install

4、查看可执行文件中链接进去的内容:

➜  assets  readelf -Ws your_executable_file

Symbol table '.dynsym' contains 162 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 00000000     0 FUNC    GLOBAL DEFAULT  UND __libc_init
     2: 00000000     0 FUNC    GLOBAL DEFAULT  UND __cxa_atexit
     3: 00000000     0 FUNC    GLOBAL DEFAULT  UND __android_log_print
     4: 00000000     0 FUNC    GLOBAL DEFAULT  UND gettimeofday
     5: 00000000     0 FUNC    GLOBAL DEFAULT  UND access
     6: 0001196c     0 FUNC    GLOBAL DEFAULT  UND malloc
     7: 00000000     0 FUNC    GLOBAL DEFAULT  UND exit
     8: 00000000     0 FUNC    GLOBAL DEFAULT  UND inotify_init
     9: 00000000     0 FUNC    GLOBAL DEFAULT  UND inotify_add_watch
    10: 00000000     0 FUNC    GLOBAL DEFAULT  UND read
    11: 00000000     0 FUNC    GLOBAL DEFAULT  UND system
    12: 00000000     0 FUNC    GLOBAL DEFAULT  UND pthread_create
    13: 00000000     0 FUNC    GLOBAL DEFAULT  UND usleep
    14: 00000000     0 FUNC    GLOBAL DEFAULT  UND fopen
    15: 000119d8     0 FUNC    GLOBAL DEFAULT  UND free
    16: 00000000     0 FUNC    GLOBAL DEFAULT  UND time
    17: 00000000     0 FUNC    GLOBAL DEFAULT  UND localtime
    18: 00000000     0 FUNC    GLOBAL DEFAULT  UND asctime
    19: 00000000     0 FUNC    GLOBAL DEFAULT  UND fprintf
    20: 00000000     0 FUNC    GLOBAL DEFAULT  UND fclose
    21: 00000000     0 FUNC    GLOBAL DEFAULT  UND strcpy
    22: 00000000     0 FUNC    GLOBAL DEFAULT  UND strcat
    23: 00000000     0 FUNC    GLOBAL DEFAULT  UND snprintf
    24: 00000000     0 FUNC    GLOBAL DEFAULT  UND inotify_rm_watch
    25: 00000000     0 FUNC    GLOBAL DEFAULT  UND close
    26: 00000000     0 FUNC    GLOBAL DEFAULT  UND __stack_chk_fail
    27: 00000000     0 OBJECT  GLOBAL DEFAULT  UND __stack_chk_guard
    28: 00000000     0 FUNC    GLOBAL DEFAULT  UND fstat
    29: 00000000     0 FUNC    GLOBAL DEFAULT  UND lseek
    30: 00000000     0 FUNC    GLOBAL DEFAULT  UND open
    31: 00000000     0 FUNC    GLOBAL DEFAULT  UND strchr
    32: 00000000     0 FUNC    GLOBAL DEFAULT  UND fwrite
    33: 00000000     0 FUNC    GLOBAL DEFAULT  UND strtoll
    34: 00000000     0 FUNC    GLOBAL DEFAULT  UND isspace
    35: 00000000     0 FUNC    GLOBAL DEFAULT  UND strlen
    36: 00000000     0 FUNC    GLOBAL DEFAULT  UND inet_ntop
    37: 00000000     0 FUNC    GLOBAL DEFAULT  UND tolower
    38: 00000000     0 FUNC    GLOBAL DEFAULT  UND sigaction
    39: 00000000     0 FUNC    GLOBAL DEFAULT  UND alarm
    40: 00000000     0 FUNC    GLOBAL DEFAULT  UND sigsetjmp
    41: 00000000     0 FUNC    GLOBAL DEFAULT  UND siglongjmp
    42: 00000000     0 FUNC    GLOBAL DEFAULT  UND sscanf
    43: 00000000     0 FUNC    GLOBAL DEFAULT  UND fflush
    44: 00000000     0 FUNC    GLOBAL DEFAULT  UND fread
    45: 00000000     0 OBJECT  GLOBAL DEFAULT  UND __sF
    46: 00000000     0 FUNC    GLOBAL DEFAULT  UND __aeabi_memcpy
    47: 00000000     0 FUNC    GLOBAL DEFAULT  UND stat
    48: 00000000     0 FUNC    GLOBAL DEFAULT  UND basename
    49: 00000000     0 FUNC    GLOBAL DEFAULT  UND memcpy
    50: 00000000     0 FUNC    GLOBAL DEFAULT  UND fgets
    51: 00000000     0 FUNC    GLOBAL DEFAULT  UND strtol
    52: 00000000     0 FUNC    GLOBAL DEFAULT  UND strrchr
    53: 00000000     0 FUNC    GLOBAL DEFAULT  UND strncmp
    54: 00000000     0 FUNC    GLOBAL DEFAULT  UND strtok_r
    55: 00000000     0 FUNC    GLOBAL DEFAULT  UND strcmp
    56: 00000000     0 FUNC    GLOBAL DEFAULT  UND qsort
    57: 00000000     0 FUNC    GLOBAL DEFAULT  UND fputs
    58: 00000000     0 FUNC    GLOBAL DEFAULT  UND memmove
    59: 00000000     0 FUNC    GLOBAL DEFAULT  UND strstr
    60: 00000000     0 FUNC    GLOBAL DEFAULT  UND memchr
    61: 00000000     0 FUNC    GLOBAL DEFAULT  UND isdigit
    62: 00000000     0 FUNC    GLOBAL DEFAULT  UND send
    63: 00000000     0 FUNC    GLOBAL DEFAULT  UND __errno
    64: 00000000     0 FUNC    GLOBAL DEFAULT  UND recv
    65: 00000000     0 FUNC    GLOBAL DEFAULT  UND __aeabi_memmove
    66: 00000000     0 FUNC    GLOBAL DEFAULT  UND __aeabi_memset
    67: 00000000     0 FUNC    GLOBAL DEFAULT  UND strncpy
    68: 00000000     0 FUNC    GLOBAL DEFAULT  UND inet_pton
    69: 00000000     0 FUNC    GLOBAL DEFAULT  UND strtoul
    70: 00000000     0 FUNC    GLOBAL DEFAULT  UND getsockname
    71: 00000000     0 FUNC    GLOBAL DEFAULT  UND bind
    72: 00000000     0 FUNC    GLOBAL DEFAULT  UND listen
    73: 00000000     0 FUNC    GLOBAL DEFAULT  UND accept
    74: 00000000     0 FUNC    GLOBAL DEFAULT  UND strcasecmp
    75: 00000000     0 FUNC    GLOBAL DEFAULT  UND isxdigit
    76: 00000000     0 FUNC    GLOBAL DEFAULT  UND socket
    77: 00000000     0 FUNC    GLOBAL DEFAULT  UND ioctl
    78: 00146d5c   160 FUNC    GLOBAL DEFAULT    8 MD5_Init
    79: 00144070   688 FUNC    GLOBAL DEFAULT    8 MD5_Update
    80: 00146908  1108 FUNC    GLOBAL DEFAULT    8 MD5_Final
    81: 00000000     0 FUNC    GLOBAL DEFAULT  UND memcmp
    82: 00000000     0 FUNC    GLOBAL DEFAULT  UND zlibVersion
    83: 00000000     0 FUNC    GLOBAL DEFAULT  UND getenv
    84: 00000000     0 FUNC    GLOBAL DEFAULT  UND sprintf
    85: 00000000     0 FUNC    GLOBAL DEFAULT  UND fputc
    86: 00000000     0 FUNC    GLOBAL DEFAULT  UND atoi
    87: 00000000     0 FUNC    GLOBAL DEFAULT  UND geteuid
    88: 00000000     0 FUNC    GLOBAL DEFAULT  UND getpwuid
    89: 00000000     0 FUNC    GLOBAL DEFAULT  UND fseek
    90: 00000000     0 FUNC    GLOBAL DEFAULT  UND bsd_signal
    91: 00000000     0 FUNC    GLOBAL DEFAULT  UND strncasecmp
    92: 00011d38     0 FUNC    GLOBAL DEFAULT  UND calloc
    93: 00011d2c     0 FUNC    GLOBAL DEFAULT  UND strdup
    94: 00011d20     0 FUNC    GLOBAL DEFAULT  UND realloc
    95: 00000000     0 FUNC    GLOBAL DEFAULT  UND isprint
    96: 00000000     0 FUNC    GLOBAL DEFAULT  UND isalnum
    97: 00000000     0 FUNC    GLOBAL DEFAULT  UND isalpha
    98: 00000000     0 FUNC    GLOBAL DEFAULT  UND isupper
    99: 00000000     0 FUNC    GLOBAL DEFAULT  UND islower
   100: 00000000     0 FUNC    GLOBAL DEFAULT  UND isgraph
   101: 00000000     0 FUNC    GLOBAL DEFAULT  UND getpeername
   102: 00000000     0 FUNC    GLOBAL DEFAULT  UND getsockopt
   103: 00000000     0 FUNC    GLOBAL DEFAULT  UND connect
   104: 00000000     0 FUNC    GLOBAL DEFAULT  UND setsockopt
   105: 00000000     0 FUNC    GLOBAL DEFAULT  UND inflateInit_
   106: 00000000     0 FUNC    GLOBAL DEFAULT  UND inflate
   107: 00000000     0 FUNC    GLOBAL DEFAULT  UND inflateEnd
   108: 00000000     0 FUNC    GLOBAL DEFAULT  UND inflateInit2_
   109: 00000000     0 FUNC    GLOBAL DEFAULT  UND strerror_r
   110: 00000000     0 FUNC    GLOBAL DEFAULT  UND gmtime_r
   111: 00000000     0 FUNC    GLOBAL DEFAULT  UND select
   112: 00000000     0 FUNC    GLOBAL DEFAULT  UND recvfrom
   113: 00000000     0 FUNC    GLOBAL DEFAULT  UND sendto
   114: 00000000     0 FUNC    GLOBAL DEFAULT  UND strlcat
   115: 00000000     0 FUNC    GLOBAL DEFAULT  UND getaddrinfo
   116: 00000000     0 FUNC    GLOBAL DEFAULT  UND freeaddrinfo
   117: 00000000     0 FUNC    GLOBAL DEFAULT  UND fcntl
   118: 00000000     0 FUNC    GLOBAL DEFAULT  UND toupper
   119: 00000000     0 FUNC    GLOBAL DEFAULT  UND gethostname
   120: 00000000     0 FUNC    GLOBAL DEFAULT  UND waitpid
   121: 00000000     0 FUNC    GLOBAL DEFAULT  UND kill
   122: 00000000     0 FUNC    GLOBAL DEFAULT  UND strpbrk
   123: 00000000     0 FUNC    GLOBAL DEFAULT  UND socketpair
   124: 00000000     0 FUNC    GLOBAL DEFAULT  UND fork
   125: 00000000     0 FUNC    GLOBAL DEFAULT  UND dup2
   126: 00000000     0 FUNC    GLOBAL DEFAULT  UND execl
   127: 00000000     0 FUNC    GLOBAL DEFAULT  UND abort
   128: 00000000     0 FUNC    GLOBAL DEFAULT  UND gethostbyname
   129: 00000000     0 FUNC    GLOBAL DEFAULT  UND getservbyname
   130: 00000000     0 FUNC    GLOBAL DEFAULT  UND shutdown
   131: 00000000     0 FUNC    GLOBAL DEFAULT  UND write
   132: 00000000     0 FUNC    GLOBAL DEFAULT  UND perror
   133: 00000000     0 FUNC    GLOBAL DEFAULT  UND ftell
   134: 00000000     0 FUNC    GLOBAL DEFAULT  UND closelog
   135: 00000000     0 FUNC    GLOBAL DEFAULT  UND openlog
   136: 00000000     0 FUNC    GLOBAL DEFAULT  UND syslog
   137: 00000000     0 FUNC    GLOBAL DEFAULT  UND getpid
   138: 00000000     0 FUNC    GLOBAL DEFAULT  UND vfprintf
   139: 00000000     0 FUNC    GLOBAL DEFAULT  UND dlopen
   140: 00000000     0 FUNC    GLOBAL DEFAULT  UND dlerror
   141: 00000000     0 FUNC    GLOBAL DEFAULT  UND dlclose
   142: 00000000     0 FUNC    GLOBAL DEFAULT  UND dlsym
   143: 00000000     0 FUNC    GLOBAL DEFAULT  UND strerror
   144: 00000000     0 FUNC    GLOBAL DEFAULT  UND opendir
   145: 00000000     0 FUNC    GLOBAL DEFAULT  UND readdir
   146: 00000000     0 FUNC    GLOBAL DEFAULT  UND closedir
   147: 00000000     0 FUNC    GLOBAL DEFAULT  UND printf
   148: 00000000     0 FUNC    GLOBAL DEFAULT  UND poll
   149: 00000000     0 FUNC    GLOBAL DEFAULT  UND getuid
   150: 00000000     0 FUNC    GLOBAL DEFAULT  UND setvbuf
   151: 00000000     0 FUNC    GLOBAL DEFAULT  UND chmod
   152: 00000000     0 FUNC    GLOBAL DEFAULT  UND getgid
   153: 00000000     0 FUNC    GLOBAL DEFAULT  UND getegid
   154: 00000000     0 FUNC    GLOBAL DEFAULT  UND raise
   155: 00000000     0 FUNC    WEAK   DEFAULT  UND __gnu_Unwind_Find_exidx
   156: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __cxa_begin_cleanup
   157: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __cxa_type_match
   158: 00000000     0 NOTYPE  WEAK   DEFAULT  UND __cxa_call_unexpected
   159: 001e2d84     0 NOTYPE  GLOBAL DEFAULT  ABS _edata
   160: 001e2d84     0 NOTYPE  GLOBAL DEFAULT  ABS __bss_start
   161: 001e4ea0     0 NOTYPE  GLOBAL DEFAULT  ABS _end
从上面结果看出,这个可执行文件中链接了比如pthread_create、time等



你可能感兴趣的:(通过readelf查看动态库中的内容)