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 중국어 웹사이트의 기타 관련 기사를 참조하세요!