我是靠谱客的博主 火星上花生,最近开发中收集的这篇文章主要介绍linux下反汇编实例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

$ cat hello.s 
.text
.global _start

  msg:
.ascii "Hello World!n"
  msg_end:
.equ len, msg_end - msg
.equ SYS_write, 1
.equ SYS_exit, 60

  _start:
mov $SYS_write, %rax     # system call number (sys_write)
  mov $1, %rdi             # file descriptor (stdout)
mov $msg, %rsi           # message to write
  mov $len, %rdx           # message length.
syscall                 # previous 'int $0x80' in i386

mov $SYS_exit, %rax     # system call number (sys_exit)
mov $0, %rdi             # exit (0)
syscall                 # previous 'int $0x80' in i386

$ as -o hello.o hello.s
$ ld -o hello hello.o
$ ./hello 
Hello World!


$ objdump --disassemble-all hello

hello:     文件格式 elf64-x86-64


Disassembly of section .text:

0000000000400078 :
  400078: 48                   rex.W
  400079: 65                   gs
  40007a: 6c                   insb   (%dx),%es:(%rdi)
  40007b: 6c                   insb   (%dx),%es:(%rdi)
  40007c: 6f                   outsl   %ds:(%rsi),(%dx)
  40007d: 20 57 6f             and     %dl,0x6f(%rdi)
  400080: 72 6c                 jb     4000ee <_start+0x69>
  400082: 64 21 0a             and     �x,%fs:(%rdx)

0000000000400085 <_start>:
  400085: 48 c7 c0 01 00 00 00 mov     $0x1,%rax
  40008c: 48 c7 c7 01 00 00 00 mov     $0x1,%rdi
  400093: 48 c7 c6 78 00 40 00 mov     $0x400078,%rsi
  40009a: 48 c7 c2 0d 00 00 00 mov     $0xd,%rdx
  4000a1: 0f 05                 syscall 
  4000a3: 48 c7 c0 3c 00 00 00 mov     $0x3c,%rax
  4000aa: 48 c7 c7 00 00 00 00 mov     $0x0,%rdi
  4000b1: 0f 05                 syscall 

$ od -x hello
0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000020 0002 003e 0001 0000 0085 0040 0000 0000
0000040 0040 0000 0000 0000 00d8 0000 0000 0000
0000060 0000 0000 0040 0038 0001 0040 0005 0002
0000100 0001 0000 0005 0000 0000 0000 0000 0000
0000120 0000 0040 0000 0000 0000 0040 0000 0000
0000140 00b3 0000 0000 0000 00b3 0000 0000 0000
0000160 0000 0020 0000 0000 6548 6c6c 206f 6f57
0000200 6c72 2164 480a c0c7 0001 0000 c748 01c7
0000220 0000 4800 c6c7 0078 0040 c748 0dc2 0000
0000240 0f00 4805 c0c7 003c 0000 c748 00c7 0000
0000260 0f00 0005 732e 6d79 6174 0062 732e 7274
0000300 6174 0062 732e 7368 7274 6174 0062 742e
0000320 7865 0074 0000 0000 0000 0000 0000 0000
0000340 0000 0000 0000 0000 0000 0000 0000 0000
*
0000420 0000 0000 0000 0000 001b 0000 0001 0000
0000440 0006 0000 0000 0000 0078 0040 0000 0000
0000460 0078 0000 0000 0000 003b 0000 0000 0000
0000500 0000 0000 0000 0000 0001 0000 0000 0000
0000520 0000 0000 0000 0000 0011 0000 0003 0000
0000540 0000 0000 0000 0000 0000 0000 0000 0000
0000560 00b3 0000 0000 0000 0021 0000 0000 0000
0000600 0000 0000 0000 0000 0001 0000 0000 0000
0000620 0000 0000 0000 0000 0001 0000 0002 0000
0000640 0000 0000 0000 0000 0000 0000 0000 0000
0000660 0218 0000 0000 0000 0138 0000 0000 0000
0000700 0004 0000 0009 0000 0008 0000 0000 0000
0000720 0018 0000 0000 0000 0009 0000 0003 0000
0000740 0000 0000 0000 0000 0000 0000 0000 0000
0000760 0350 0000 0000 0000 004b 0000 0000 0000
0001000 0000 0000 0000 0000 0001 0000 0000 0000
0001020 0000 0000 0000 0000 0000 0000 0000 0000
*
0001060 0000 0000 0003 0001 0078 0040 0000 0000
0001100 0000 0000 0000 0000 0001 0000 0004 fff1
0001120 0000 0000 0000 0000 0000 0000 0000 0000
0001140 0009 0000 0000 0001 0078 0040 0000 0000
0001160 0000 0000 0000 0000 000d 0000 0000 0001
0001200 0085 0040 0000 0000 0000 0000 0000 0000
0001220 0015 0000 0000 fff1 000d 0000 0000 0000
0001240 0000 0000 0000 0000 0019 0000 0000 fff1
0001260 0001 0000 0000 0000 0000 0000 0000 0000
0001300 0023 0000 0000 fff1 003c 0000 0000 0000
0001320 0000 0000 0000 0000 0000 0000 0004 fff1
0001340 0000 0000 0000 0000 0000 0000 0000 0000
0001360 002c 0000 0010 0001 0085 0040 0000 0000
0001400 0000 0000 0000 0000 0033 0000 0010 0001
0001420 00b3 0060 0000 0000 0000 0000 0000 0000
0001440 003f 0000 0010 0001 00b3 0060 0000 0000
0001460 0000 0000 0000 0000 0046 0000 0010 0001
0001500 00b8 0060 0000 0000 0000 0000 0000 0000
0001520 6800 6c65 6f6c 6f2e 6d00 6773 6d00 6773
0001540 655f 646e 6c00 6e65 5300 5359 775f 6972
0001560 6574 5300 5359 655f 6978 0074 735f 6174
0001600 7472 5f00 625f 7373 735f 6174 7472 5f00
0001620 6465 7461 0061 655f 646e 0000
0001633

最后

以上就是火星上花生为你收集整理的linux下反汇编实例的全部内容,希望文章能够帮你解决linux下反汇编实例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部