본문 바로가기

Programming/General

objdump 실행파일 및 library 의 symbol list 출력하기

objdump 에 T 옵션을 사용하면 symbol 이 strip 된 파일에서도 리스트를 출력할 수 있습니다.


# arm-eabi-objdump -T ./libsqlite.so




...

00000000      DF *UND* 00000000 HMAC_Update

00000000      DF *UND* 00000000 HMAC_Final

00000000      DF *UND* 00000000 HMAC_CTX_cleanup

0000b4f4 g    DF .text 00000140 sqlcipher_page_cipher

00000000      DF *UND* 00000000 EVP_CipherInit

00000000      DF *UND* 00000000 EVP_CIPHER_CTX_set_padding

00000000      DF *UND* 00000000 EVP_CipherUpdate

00000000      DF *UND* 00000000 EVP_CipherFinal

00000000      DF *UND* 00000000 EVP_CIPHER_CTX_cleanup

0000b634 g    DF .text 00000014 sqlite3_mutex_free

0000b648 g    DF .text 00000014 sqlite3_mutex_enter

0000b66c g    DF .text 00000014 sqlite3_mutex_try

0000b680 g    DF .text 00000014 sqlite3_mutex_leave

00000000      DF *UND* 00000000 pthread_mutexattr_init

00000000      DF *UND* 00000000 pthread_mutexattr_settype

00000000      DF *UND* 00000000 pthread_mutex_init

00000000      DF *UND* 00000000 pthread_mutexattr_destroy

0000c014 g    DF .text 00000004 sqlcipher_malloc

0000c018 g    DF .text 00000048 sqlcipher_cipher_ctx_init

0000c5ac g    DF .text 00000050 sqlite3_free

00000000      DF *UND* 00000000 pthread_mutex_destroy

0000e00a g    DF .text 0000001e sqlcipher_free

...



objdump 사용법이 잘 나와 있는 사이트

http://www.thegeekstuff.com/2012/09/objdump-examples/




-h option 을 사용하면 build 시 gdb 용 debug 정보가 포함된 (-g option build) binary 인지 확인이 가능합니다.

아래에서 파란색 section 이 -g option 으로 추가된 section 이다.


$ objdump -h ./any_binary_file


./any_binary_file:     file format elf64-little


Sections:

Idx Name          Size      VMA               LMA               File off  Algn

  0 .crt0         00000540  00000000d2080000  00000000d2080000  00010000  2**3

                  CONTENTS, ALLOC, LOAD, CODE

  1 .text         0003bd54  00000000d2080800  00000000d2080800  00010800  2**11

                  CONTENTS, ALLOC, LOAD, READONLY, CODE

  2 .text.init    00002074  00000000d20bc554  00000000d20bc554  0004c554  2**2

                  CONTENTS, ALLOC, LOAD, READONLY, CODE

  3 .rodata       000018b0  00000000d20be5c8  00000000d20be5c8  0004e5c8  2**3

                  CONTENTS, ALLOC, LOAD, READONLY, DATA

  4 .rodata.str1.1 00007ace  00000000d20bfe78  00000000d20bfe78  0004fe78  2**0

                  CONTENTS, ALLOC, LOAD, READONLY, DATA

  5 .data         00000988  00000000d20d0000  00000000d20d0000  00060000  2**6

                  CONTENTS, ALLOC, LOAD, DATA

  6 .data.rel.local 00005ae0  00000000d20d0988  00000000d20d0988  00060988  2**3

                  CONTENTS, ALLOC, LOAD, DATA

  7 .data.rel     000018f8  00000000d20d6468  00000000d20d6468  00066468  2**3

                  CONTENTS, ALLOC, LOAD, DATA

  8 .got          00000618  00000000d20d7d60  00000000d20d7d60  00067d60  2**3

                  CONTENTS, ALLOC, LOAD, DATA

  9 .got.plt      00000018  00000000d20d8378  00000000d20d8378  00068378  2**3

                  CONTENTS, ALLOC, LOAD, DATA

 10 .data.rel.ro.local 00000520  00000000d20d8390  00000000d20d8390  00068390  2**3

                  CONTENTS, ALLOC, LOAD, DATA

 11 .data.rel.ro  00000200  00000000d20d88b0  00000000d20d88b0  000688b0  2**3

                  CONTENTS, ALLOC, LOAD, DATA

 12 .boards       00000010  00000000d20d8ab0  00000000d20d8ab0  00068ab0  2**3

                  CONTENTS, ALLOC, LOAD, DATA

 13 .bss          0005a540  00000000d20d8ac0  00000000d20d8ac0  00068ac0  2**5

                  ALLOC

 14 .comment      0000002e  0000000000000000  0000000000000000  00068ac0  2**0

                  CONTENTS, READONLY

 15 .debug_aranges 00000770  0000000000000000  0000000000000000  00068af0  2**4

                  CONTENTS, READONLY, DEBUGGING

 16 .debug_info   0003c45b  0000000000000000  0000000000000000  00069260  2**0

                  CONTENTS, READONLY, DEBUGGING

 17 .debug_abbrev 000075c1  0000000000000000  0000000000000000  000a56bb  2**0

                  CONTENTS, READONLY, DEBUGGING

 18 .debug_line   0000aac0  0000000000000000  0000000000000000  000acc7c  2**0

                  CONTENTS, READONLY, DEBUGGING

 19 .debug_frame  00004280  0000000000000000  0000000000000000  000b7740  2**3

                  CONTENTS, READONLY, DEBUGGING

 20 .debug_str    000092fc  0000000000000000  0000000000000000  000bb9c0  2**0

                  CONTENTS, READONLY, DEBUGGING

 21 .debug_loc    0001dd48  0000000000000000  0000000000000000  000c4cbc  2**0

                  CONTENTS, READONLY, DEBUGGING

 22 .debug_ranges 000032c0  0000000000000000  0000000000000000  000e2a10  2**4