2010-05-29 3 views
0

C++의 실행 파일에는 링커, 모듈 등이 포함되어 있습니다. 내용을 살펴보고 싶습니다. 리눅스를 사용하고 있는데, 어떻게 a.out의 내용을 볼 수 있습니까? 어떤 명령을 사용하여 a.out을 탐색해야합니까? 텍스트 편집기는 내용을 표시하지 않습니다 ......a.out 파일의 내용을 보는 방법은 무엇입니까?

답변

4

내부 기호를 보려면 nm을 사용하고 분해하려면 objdump을 사용할 수 있습니다. 예를 들어 작성자 :

objdump -D a.out | less 

참고 그러나 실행 파일로 오브젝트 파일의 마지막 연결 중 기호와 내부 많은 양의 데이터가 제거 얻을 따라서 당신은 당신이 될 것 같은 구조를 이해 할 수 없습니다 오브젝트 파일.

실행 파일을 편집하고 수정하려면 hte 편집기를 사용하는 것이 좋습니다.이 편집기는 x86 실행 파일의 디스어셈블러 역할을 할 수 있습니다. 데비안/우분투 사용자 인 경우 패키지 이름은 "ht"("hte"가 아님)입니다.

나는 아직도 불완전하지만 꽤 우스운 little elf disassembly library를 썼다. 그러나 다른 (더 완벽하고 더 나은) 구현을 찾을 수 있습니다!

0

nm 명령을 사용하면 이진을 검사하고 정의 된 기호를 볼 수 있습니다. 바이너리를 생성하는 데 사용 된 실제 코드를 보려면 디 컴파일러가 필요합니다. 디 컴파일러는 컴파일하는 동안 본질적으로 손실 된 부분 만 원래 코드를 부분적으로 재구성 할 수 있습니다.

관련 문제