[ GNU Tools ] Objcopy

sangjun

·

2022. 1. 8. 23:43

Objdump말고도 objcopy가 있다.

 

기존의 오브젝트 파일을  다른 오브젝트 파일로 복사해주는 얘라고 한다.

근데 이것을 쓰는 이유는 필요한 부분만 선택해서 복사해주기 때문에 파일 사이즈를 줄일 수가 있고

바이너리의 포맷도 바꿀 수 있다고 한다.

 

ex) objcopy test test.new

그냥 평범한 복사이다.

 

ex) objcopy -O binary test test.new

-O binary 옵션을 준다면, 파일의 인스트럭션과 데이터만을 뽑는다고 한다. ELF 헤더도 붙지 않은 오로지

"인스트럭션 & data"

이것을 쓸 일은 쉘코드를 만들때와 부트로더(ELF헤더가 붙으면 안됨)를 만들때라고 한다.

ex) objcopy -S test test.new

모든 심볼들과 재배치 정보들이 제거되어 바이너리 사이즈가 최소화된다.