본문 바로가기

Linux11

strings 명령어 파일에서 인쇄 가능한 문자열을 출력한다. 해당 프로그램에서 사용하는 string들을 모두 출력해준다. 이렇게 써요 strings [옵션] 파일 -, -a, --all : 전체 파일을 검색한다. -f, --print-file-name : 각 문자열 이전에 파일명을 출력한다. -min-len, -n min-len, --bytes=min-len : 최소 문자열의 길이(min-len)를 지정한다. 기본값은 4이다. -o : -t 옵션과 비슷하다. -t radix, --radix=radix : 각 문자열 이전에 파일 안에 오프셋(radix)을 출력한다. 아래는 지정 가능한 형식이다. d : 오프셋을 십진수로 기록한다. o : 오프셋을 8진수로 기록한다. x : 오프셋을 16진수로 기록한다. --target=for.. 2020. 10. 6.
man 명령어 알고 싶은 명령어의 매뉴얼을 출력한다. 이렇게 써요 man [-옵션] [section] [-M path] [-P pager] [-S list] [-m system] [-p string] 명령어 -a : 찾고자 하는 명령어의 검색된 매뉴얼 페이지를 모두 출력한다. -c : 최신의 cat 페이지가 있어도 소스 매뉴얼 페이지를 재구성한다. -C 파일명 : 매뉴얼 페이지의 configure 파일을 지정한다. 기본은 /etc/man.config 파일이다. -d : 실제 매뉴얼을 보여주지 않고, 디버깅 정보 구성을 출력한다. -D : -d 옵션의 구성을 출력한 후에 매뉴얼을 출력한다. -f : whatis 명령과 동일하다. -h : 사용법을 출력한다. -k : apropos 명령과 동일하다. -K : 모든 매뉴얼 .. 2020. 10. 5.
objdump 명령어 프로그래밍을 하다 보면 소스코드 뿐만 아니라 실제로 어떻게 실행되는가에 대한 이해가 필요하다. cpu의 동작과 os 스케쥴링에 대한 내용을 이해하고 있다면 실제적으로 컴파일의 동작을 알아봐야 한다. GNU에서 제공하는 툴중 바이너리 파일을 살펴볼 수 있는 objdump가 있다. 사용법) objdump의 옵션 중 필요한걸 간추려 정리하도록 하겠다 -i 타겟 포맷정보 -b 포맷 지정 -s 오브젝트 파일 전체 덤프 -j 오브젝트 파일의 특정 섹션 덤프 -h 섹션헤더 덤프 -d 오브젝트 파일의 역어셈블 etc) --prefix-address : 심볼을 기준으로 상대 어드레스 표시 --show-raw-insn : 명령어 코드 표시 -l : 소스파일이 있는 경우, 소스 코드의 라인 표시 -S : 소스파일이 있는 경.. 2020. 10. 5.
Linux) file 명령어 file 파일의 종류와 파일 정보를 출력한다. file [옵션] 파일 -b, --brief : 지정한 파일명은 출력하지 않고, 파일의 유형만을 출력한다. -f, --files-from 파일목록 : 파일목록에서 지정한 파일들에 대해서 명령을 실행한다. -i, --mime : 사람이 읽을 수 있는 전통적인 형식이 아니라 MIME 타입 문자를 출력한다(예를 들어 ASCII text를 text/plain; charset=us-ascii 형태로 출력한다). -L, --dereference : 심볼릭 링크된 파일을 추적하여 원본 파일 정보를 출력한다. -m, --magic-file 매직파일 : 매직파일을 지정한다(기본값은 /usr/share/file/magic이다). -v, --version : 버전 정보를 출력한.. 2020. 10. 5.
링킹 01 링킹의 기본 이해 링킹과정: 결합과 재배치(relocation) 링킹 과정 절차 결합: ELF포맷으로 되어 있는 각 오브젝트를 섹션 종류별로 하나의 오브젝트로 합치는 과정 object 파일들의 각 섹션이(.text, .data, .bss 등) 종류별로 합쳐져 하나의 ELF 파일을 구성 relocation(재배치): 결합 과정에서 합쳐진 각 섹션을 실제 코드에 맞게 조정. 메모리에 바이너리 이미지가 로드될 위치(x86 리눅스는 0x8048000)를 시작으로 결합 과정이 끝난 마이너리에 각 심볼이 가지게 될 실제 주소를 구하고, 해당 심볼을 참조하는 부분에 대해 구한 주소를 설정 02 ELF 바이너리 포맷 구조 ELF 바이너리 포맷이란? ELF(Executable and Linkable Format) .. 2020. 10. 5.