|  |
| |
| phills0915 |
nuclear가 제가 알기로 32비트 바이너리인데 혹시 ida, objdump로 보신 라이브러리가 64비트용 라이브러리 아닌가요?
ldd ./nuclear를 해서 나오는 32비트 라이브러리를 보셔야 합니다 |
2016/12/17 |
|
| choboKing |
조언 감사드립니다.
다시 확인해봤으나, ldd ./nuclear를 해서 나오는 32비트용 라이브러리가 맞더군요....
혹시나 하는 마음에 gdb로 info sharedlibrary를 해서 라이브러리의 주소를 확인 한 후에 got에 들어가 있는 주소들을 확인 해보니까 libc가 아니라 libpthread영역의 주소가 들어가 있더군요....
쓰레드 관련 함수들이 libpthread에 있는것은 이해가 되는데 send,recv같은 함수조차 libpthread에 있는것이 이해가 안되어 관련 정보들을 검색해 보는 중입니다.... |
2016/12/18 |
|
| jinmo123 |
ELF같은 경우에는 어떤 심볼을 불러와야 할 때 어떤 라이브러리에서 불러오는지는 따지지 않고 그 이름과 심볼의 버전(지정된 경우에만)으로만 찾아서 불러오기때문에 여러 라이브러리에서 같은 이름의 심볼을 정의한다면 그 라이브러리들 중 먼저 찾아지는 심볼을 불러옵니다. libpthread는 그걸 이용해서 send, recv 함수를 덮어쓴게 아닐까요? |
2017/01/07 |
|
| choboKing |
궁금하던 점이 해결되었습니다.
감사합니다. |
2017/01/09 |
|