[AOS] How to find the size of an ELF

koo00·2022년 12월 29일
0

I. Intro

ELF 파일을 덤프하고 싶은 경우 해당 파일의 크기를 알아야 한다.
DEX 파일은 파일의 크기를 헤더에서 쉽게 확인할 수 있지만 ELF 파일의 경우 헤더에서 확인할 수 있는 정보를 가지고 직접 계산해야 한다.
본 포스팅에서는 ELF 파일의 크기를 계산하는 방법에 대해 소개한다.


II. ELF Header Format

ELF 헤더 형식은 다음과 같다.

각각의 오프셋에 위치하는 필드(Elf32_Ehdr or Elf64_Ehdr 구조체 변수)의 내용은 여기에서 확인할 수 있다.


III. The size of an ELF

ELF 파일의 크기는 e_shoff + (e_shentsize * e_shnum) 로 계산할 수 있다.

위 방법으로 이미지에 보이는 ELF 파일의 크기를 계산하면 0x22D8 + (0x40 * 0x19) = 0x2918 > 10,520 bytes 이다.

실제 파일의 크기를 확인해보면 10,520 바이트로 계산한 결과와 동일하다는 것을 알 수 있다.


IV. Outro

덤프는 대충 프리다로 떠주면 되고, 자주 써먹을진 모르겠지만 기억해두면 잘 활용할 수 있을 것 같다.


Reference

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

profile
JFDI !

0개의 댓글