assembly 만 보고 어떤 라이브러리들이 임포트됬나 알수 있나요?
글쓴이: eternalklaus / 작성시간: 월, 2018/07/02 - 1:24오전
만약에 a라는 바이너리가 아래와 같이 컴파일되었다고 가정합니다.
$ gcc -o a a.c -lcrypto
그런데 10년 후, 소스코드(a.c)를 잃어버린 개발자의 컴퓨터에 a.s와 바이너리 a만 남아있었다고 가정했을때(-0-ㅋㅋㅋㅋ)
a.s를 다시 컴파일해서 잘 동작하는 바이너리 a를 만들고 싶습니다.
제가 이 개발자에게
컴파일 스크립트를 만들어줘야 하는 상황일 경우
어디에서 링킹정보를 얻어올 수가 있을까요?
Forums:
링킹 힌트가 들어가지 않는 시스템에서는 찾는 수 밖에
링킹 힌트가 들어가지 않는 시스템에서는 찾는 수 밖에 없습니다.
1. a.o 를 만들고, nm으로 symbol을 덤프합니다.
2. 모든 library의 symbol을 덤프합니다.
3. 매칭되는 library를 스크립트에 명시합니다.
---
http://coolengineer.com
심볼을 찾아볼 때 항상 objdump -T -t 만
심볼을 찾아볼 때 항상 objdump -T -t 만 써왔었는데,
nm이라는 유용한 툴이 있었군요--;;;;
답변 감사합니다~~
10년 후에도 10년 전의 바로 그 라이브러리를 구할
10년 후에도 10년 전의 바로 그 라이브러리를 구할 수만 있다면,
앗 이거슨..
앗 이거슨..
한 수 배웠습니다.
readelf 에 dynamic section 만을
readelf 에 dynamic section 만을 볼수있는 옵션이 있었는지 처음 알았습니다...
유용한 답변 정말 감사드립니다 :D
댓글 달기