libc가 어떤방식(static/shared)으로 링크되었는지 확인하는 방법
글쓴이: nuricook / 작성시간: 일, 2012/11/25 - 5:11오후
안녕하세요.
현재 libc를 로딩할때 static이나 shared로 링킹되었는지 확인하는 방법이 필요한데요.
이에,,
[아이디어]
malloc의 주소가 .plt 테이블안에 있다면? Shared로 판별하자
[접근과정]
이런 아이디어로 접근하고 있습니다.
문제는 현재 실행중인 .plt의 address를 알아야겠는데요.
memcpy( Elf32_Ehdr elfHdr, base_address, sizeof(Elf32_Ehdr));
를 통해서
base_address ~ 헤더크기만큼 메모리를 가져와 elf header구조체에 넣고,
이를 통해 plt 섹션을 가져와 보려고 합니다.
현재 elf header는 잘 뽑아지고,
readelf 등과 비교해서 잘 정보가 나오는데요,
[현재문제]
도저히 섹션정보를 가져올수가 없습니다.
혹시 관련하여 아이디어가 있으시면 조언 부탁드립니다.ㅠ
Forums:
ldd를 해보고 libc.so 같은게 목록에 있으면
ldd를 해보고 libc.so 같은게 목록에 있으면 동적링크겠지요. ^^
bushi@u64:~$ readelf -d
댓글 달기