리눅스에서 바이너리 파일 (실행파일 ELF) 수정하는 방법
안녕하세요. 리얼리눅스 입니다.
리눅스에서 exec파일을 개조하고싶은데 할방법이 없을까요?
리눅스에서 바이너리 포맷형식이 다양하지만
가장 대표적인것이 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 임베디드 기초반을 추천드립니다.