>  기사  >  백엔드 개발  >  objdump를 사용하여 Linux에서 실행 파일을 어떻게 분해할 수 있나요?

objdump를 사용하여 Linux에서 실행 파일을 어떻게 분해할 수 있나요?

Barbara Streisand
Barbara Streisand원래의
2024-10-27 03:56:30940검색

How can I disassemble an executable file in Linux using objdump?

Linux에서 실행 파일을 디스어셈블하는 방법

바이너리 실행 파일을 어셈블리 코드로 디스어셈블하면 기본 기계 명령어에 대한 통찰력을 얻을 수 있습니다. 일반적인 오해는 gcc에 디스어셈블러가 내장되어 있다는 것입니다. 그러나 gcc는 주로 컴파일러이기 때문에 그렇지 않습니다.

GNU objdump 도구는 디스어셈블리를 수행하는 편리한 방법을 제공합니다. -d/--disassemble 플래그와 함께 objdump를 호출하면 지정된 실행 파일의 어셈블리 코드 표현을 얻을 수 있습니다.

예를 들어 "/path/to/binary"에 있는 바이너리를 디스어셈블하려면 다음 명령을 실행합니다.

$ objdump -d /path/to/binary

디스어셈블리 출력은 다음과 유사합니다.

080483b4 <main>:
 80483b4:   8d 4c 24 04             lea    0x4(%esp),%ecx
 80483b8:   83 e4 f0                and    xfffffff0,%esp
 80483bb:   ff 71 fc                pushl  -0x4(%ecx)
 80483be:   55                      push   %ebp
 80483bf:   89 e5                   mov    %esp,%ebp
 80483c1:   51                      push   %ecx
 80483c2:   b8 00 00 00 00          mov    x0,%eax
 80483c7:   59                      pop    %ecx
 80483c8:   5d                      pop    %ebp
 80483c9:   8d 61 fc                lea    -0x4(%ecx),%esp
 80483cc:   c3                      ret    
 80483cd:   90                      nop
 80483ce:   90                      nop
 80483cf:   90                      nop

이 디스어셈블리는 실행 파일의 어셈블리 코드 지침에 대한 자세한 표현을 제공하므로 분석 및 디버깅이 가능합니다. 복잡한 소프트웨어입니다.

위 내용은 objdump를 사용하여 Linux에서 실행 파일을 어떻게 분해할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.