cat 실행 파일의 시작 기호는 어디에 있습니까?

cat 실행 파일의 시작 기호는 어디에 있습니까?

Ubuntu 18.04에서 IDA Pro나 coreutils를 사용하여 프로그램을 디스어셈블하면 " " 기호가 /bin/cat있는데 일반적 으로 .start_startgimp

그러나 스위치를 사용하여 nm기호를 찾으면 기호 -D를 찾을 수 없습니다 start. 왜 그런 겁니까?

내 임무는 주어진 프로그램의 진입점을 가리키는 기호를 찾는 것입니다.

답변1

바이너리의 진입점은 헤더의 지점으로 찾을 수 있습니다.ELF 바이너리Linux에서 사용되는 경우 오프셋 0x18의 32비트 또는 64비트 값입니다.

objdump -f바이너리를 실행하면 이를 확인할 수 있습니다 .

nm바이너리의 디버깅 기호를 바이너리에서 직접(제거하지 않은 경우) 또는 독립형 기호로 사용할 수 있는 경우 컴파일러에서 실제로 생성했다고 가정하면 실제 기호만 표시됩니다.

관련 정보