본문 바로가기

objdump

objdump 실행파일 및 library 의 symbol list 출력하기 objdump 에 T 옵션을 사용하면 symbol 이 strip 된 파일에서도 리스트를 출력할 수 있습니다. # arm-eabi-objdump -T ./libsqlite.so ...00000000 DF *UND*00000000 HMAC_Update00000000 DF *UND*00000000 HMAC_Final00000000 DF *UND*00000000 HMAC_CTX_cleanup0000b4f4 g DF .text00000140 sqlcipher_page_cipher00000000 DF *UND*00000000 EVP_CipherInit00000000 DF *UND*00000000 EVP_CIPHER_CTX_set_padding00000000 DF *UND*00000000 EVP_CipherUpdat.. 더보기
compile 된 binary 가 thumb / thumb-2 인지 check 하기 오늘은 thumb-2 code 가 절 고민하게 만들었습니다. 아시다 시피 ARM 은 기본적으로 두가지 모드(arm code , thumb code) 를 지원합니다. arm 은 32bit instruction 이고 thumb 는 16 bit instruction 이지요. 헌데 thumb-2 와 thumbEE 라는 32 bit instruction 이 나와서 instruction 의 길이만으로 구별하기가 참 애매해 졌습니다. 단순하게 thumb 만으로만 build 된 경우 objdump 로 build 된 영역을 interpret 해 보면 thumb 인지 금방 알 수 있습니다. instruction 이 16bit 로 나오거든요.. thumb mode 로 빌드하려면 컴파일 시 다음 옵션을 추가하면 됩니다. -m.. 더보기
objdump - 실행파일에서 asm code 확인 objdump 의 여러 기능이 있지만 다음과 같은 기능이 있습니다. 바로 실행 파일에서 sam code 를 바로 확인해 볼 수 있는거지요. 옵션을 보면 source 와 매칭을 시킬 수도 있을것 같은데 좀 더 익숙해 지면 업데이트 하겠습니다. >objdump -d a.out | grep -A10 '' 08052cbc : 8052cbc: 0d c0 a0 e1 30 or $0x30e1a0c0,%eax 8052cc1: d8 2d e9 04 b0 4c fsubrs 0x4cb004e9 8052cc7: e2 38 loop 8052d01 8052cc9: 30 90 e5 00 40 a0 xor %dl,0xa04000e5(%eax) 8052ccf: e1 00 loope 8052cd1 8052cd1: 00 53 e3 add.. 더보기