ELF 파일을 덤프하고 싶은 경우 해당 파일의 크기를 알아야 한다.
DEX 파일은 파일의 크기를 헤더에서 쉽게 확인할 수 있지만 ELF 파일의 경우 헤더에서 확인할 수 있는 정보를 가지고 직접 계산해야 한다.
본 포스팅에서는 ELF 파일의 크기를 계산하는 방법에 대해 소개한다.
ELF 헤더 형식은 다음과 같다.
각각의 오프셋에 위치하는 필드(Elf32_Ehdr or Elf64_Ehdr 구조체 변수
)의 내용은 여기에서 확인할 수 있다.
ELF 파일의 크기는 e_shoff + (e_shentsize * e_shnum)
로 계산할 수 있다.
위 방법으로 이미지에 보이는 ELF 파일의 크기를 계산하면 0x22D8 + (0x40 * 0x19) = 0x2918
> 10,520 bytes
이다.
실제 파일의 크기를 확인해보면 10,520 바이트로 계산한 결과와 동일하다는 것을 알 수 있다.
덤프는 대충 프리다로 떠주면 되고, 자주 써먹을진 모르겠지만 기억해두면 잘 활용할 수 있을 것 같다.
https://sonseungha.tistory.com/460
https://stackoverflow.com/questions/2995347/how-can-i-find-the-size-of-a-elf-file-image-with-header-information
https://gist.github.com/probonopd/a490ba3401b5ef7b881d5e603fa20c93