리눅스에서 바이너리 파일 (실행파일 ELF) 수정하는 방법
Q: 리눅스에서 exec파일을 개조하고싶은데 할방법이 없을까요?
A: 리눅스에서 바이너리 포맷형식이 다양하지만
가장 대표적인것이 ELF 가 있고 말씀하신 exec 파일(실행파일, 바이너리)도 ELF일 수 있습니다.
hexedit 이라는 프로그램을 사용하신다면 바이너리 파일내용을 수정하실수있습니다.
(설치명령 : apt install -y hexedit )
사용법은 https://linux.die.net/man/1/hexedit 참고하실 수 있습니다.
추가적으로 바이너리 파일(예: a.out) 자체를 수정하시기전에
아래 처럼 바이너리 내용을 확인하는것도 추천드립니다.
(설치명령 : apt install -y binutils)
# 바이너리 코드내용 (Disassembly)확인하기 (main 함수 등)
objdump -d a.out
# ELF 형식의 바이너리 파일 내부정보(섹션정보 등) 확인하기
readelf -l a.out
readelf -S a.out
참고로 위내용의 작업을 자유롭게 하시려면
ABI, 컴파일러, 인스트럭션, 함수호출규약, ELF 형식 등의 기본기가 필요합니다.
*관련 내용의 대한 교육을 리얼리눅스 교육과정 중 추천드린다면 ARM 임베디드 기초반을 추천드립니다.
*리얼리눅스 홈페이지 바로가기
https://reallinux.co.kr/
'리눅스 Q&A' 카테고리의 다른 글
리눅스 C 프로그래밍 : 폴더 경로명 날짜변수로 open 하는 방법 (0) | 2023.09.11 |
---|---|
도커 볼륨 -v, --volume 옵션 으로 특정 확장자 파일을 지정할수있나요 ? (0) | 2023.09.11 |
리눅스 환경 pwndbg 삭제하는 방법 (virtualenv 및 container 를 사용해야하는 이유) (0) | 2023.09.11 |
SSH 접속후 기본쉘 지정방법 (feat. 터미널, 쉘(shell) 차이점 정확히 구분하기) (0) | 2023.09.11 |
패키지관리자 명령어 설명 (autoremove, autoclean, clean, update, upgrade, dist-upgrade) (0) | 2023.09.11 |