当前位置:   article > 正文

Ubuntu20.04手动安装binutils objdump、arm-linux-objdump: command not found、bash: hello.s: Permission denie

objdump: command not found

解决:下载binutils仍然无法使用objdump

操作背景:


使用的是Ubuntu 20.04的WSL

安装好了ARM32的交叉编译工具:sudo apt install gcc-arm-linux-gnueabi

通过C语言的.c 文件编译出可执行文件

  1. arm-linux-gnueabi-gcc -E hello.c -o hello.i
  2. arm-linux-gnueabi-gcc -S hello.i -o hello.s
  3. arm-linux-gnueabi-gcc -c hello.s -o hello.o
  4. arm-linux-gnueabi-gcc  hello.o -o hello


其中编译出的.s 汇编文件不够精简,包含很多C语言到汇编语言实现的说明

然后想通过把可执行文件的反汇编,来得到纯粹的.s 汇编文件,来直观的学习汇编语言的语法和格式

操作过程


1.执行反汇编语句:

arm-linux-objdump -d hello > arm_hello.s 

然后系统提示我:arm-linux-objdump: command not found

或有时提示我:bash: hello.s: Permission denied

2.然后我查到说objdump是binutils下的工具


所以我从http://ftp.gnu.org/gnu/binutils/下载了binutils-2.37.tar.gz这个包,导入了到Linux系统中,并且解压
然后在解压的目录内执行了
./configure
make
sudo make install
然后我执行这个命令:arm-linux-gnueabi-objdump -d hello > arm_hello.s 

成功!

  1. hello: file format elf32-littlearm
  2. Disassembly of section .init:
  3. 000102bc <_init>:
  4. 102bc: e92d4008 push {r3, lr}
  5. 102c0: eb000020 bl 10348 <call_weak_fn>
  6. 102c4: e8bd8008 pop {r3, pc}
  7. Disassembly of section .plt:
  8. 000102c8 <.plt>:
  9. 102c8: e52de004 push {lr} ; (str lr, [sp, #-4]!)
  10. 102cc: e59fe004 ldr lr, [pc, #4] ; 102d8 <.plt+0x10>
  11. 102d0: e08fe00e add lr, pc, lr
  12. 102d4: e5bef008 ldr pc, [lr, #8]!
  13. 102d8: 00010d28 .word 0x00010d28
  14. 000102dc <puts@plt>:
  15. 102dc: e28fc600 add ip, pc, #0, 12
  16. 102e0: e28cca10 add ip, ip, #16, 20 ; 0x10000
  17. 102e4: e5bcfd28 ldr pc, [ip, #3368]! ; 0xd28
  18. 000102e8 <__libc_start_main@plt>:
  19. 102e8: e28fc600 add ip, pc, #0, 12
  20. 102ec: e28cca10 add ip, ip, #16, 20 ; 0x10000
  21. 102f0: e5bcfd20 ldr pc, [ip, #3360]! ; 0xd20
  22. 000102f4 <__gmon_start__@plt>:
  23. 102f4: e28fc600 add ip, pc, #0, 12
  24. 102f8: e28cca10 add ip, ip, #16, 20 ; 0x10000
  25. 102fc: e5bcfd18 ldr pc, [ip, #3352]! ; 0xd18
  26. 00010300 <abort@plt>:
  27. 10300: e28fc600 add ip, pc, #0, 12
  28. 10304: e28cca10 add ip, ip, #16, 20 ; 0x10000
  29. 10308: e5bcfd10 ldr pc, [ip, #3344]! ; 0xd10
  30. Disassembly of section .text:
  31. 0001030c <_start>:
  32. 1030c: e3a0b000 mov fp, #0
  33. 10310: e3a0e000 mov lr, #0
  34. 10314: e49d1004 pop {r1} ; (ldr r1, [sp], #4)
  35. 10318: e1a0200d mov r2, sp
  36. 1031c: e52d2004 push {r2} ; (str r2, [sp, #-4]!)
  37. 10320: e52d0004 push {r0} ; (str r0, [sp, #-4]!)
  38. 10324: e59fc010 ldr ip, [pc, #16] ; 1033c <_start+0x30>
  39. 10328: e52dc004 push {ip} ; (str ip, [sp, #-4]!)
  40. 1032c: e59f000c ldr r0, [pc, #12] ; 10340 <_start+0x34>
  41. 10330: e59f300c ldr r3, [pc, #12] ; 10344 <_start+0x38>
  42. 10334: ebffffeb bl 102e8 <__libc_start_main@plt>
  43. 10338: ebfffff0 bl 10300 <abort@plt>
  44. 1033c: 0001047c .word 0x0001047c
  45. 10340: 000103fc .word 0x000103fc
  46. 10344: 0001041c .word 0x0001041c
  47. 00010348 <call_weak_fn>:
  48. 10348: e59f3014 ldr r3, [pc, #20] ; 10364 <call_weak_fn+0x1c>
  49. 1034c: e59f2014 ldr r2, [pc, #20] ; 10368 <call_weak_fn+0x20>
  50. 10350: e08f3003 add r3, pc, r3
  51. 10354: e7932002 ldr r2, [r3, r2]
  52. 10358: e3520000 cmp r2, #0
  53. 1035c: 012fff1e bxeq lr
  54. 10360: eaffffe3 b 102f4 <__gmon_start__@plt>
  55. 10364: 00010ca8 .word 0x00010ca8
  56. 10368: 0000001c .word 0x0000001c
  57. 0001036c <deregister_tm_clones>:
  58. 1036c: e59f0018 ldr r0, [pc, #24] ; 1038c <deregister_tm_clones+0x20>
  59. 10370: e59f3018 ldr r3, [pc, #24] ; 10390 <deregister_tm_clones+0x24>
  60. 10374: e1530000 cmp r3, r0
  61. 10378: 012fff1e bxeq lr
  62. 1037c: e59f3010 ldr r3, [pc, #16] ; 10394 <deregister_tm_clones+0x28>
  63. 10380: e3530000 cmp r3, #0
  64. 10384: 012fff1e bxeq lr
  65. 10388: e12fff13 bx r3
  66. 1038c: 00021028 .word 0x00021028
  67. 10390: 00021028 .word 0x00021028
  68. 10394: 00000000 .word 0x00000000
  69. 00010398 <register_tm_clones>:
  70. 10398: e59f0024 ldr r0, [pc, #36] ; 103c4 <register_tm_clones+0x2c>
  71. 1039c: e59f1024 ldr r1, [pc, #36] ; 103c8 <register_tm_clones+0x30>
  72. 103a0: e0413000 sub r3, r1, r0
  73. 103a4: e1a01fa3 lsr r1, r3, #31
  74. 103a8: e0811143 add r1, r1, r3, asr #2
  75. 103ac: e1b010c1 asrs r1, r1, #1
  76. 103b0: 012fff1e bxeq lr
  77. 103b4: e59f3010 ldr r3, [pc, #16] ; 103cc <register_tm_clones+0x34>
  78. 103b8: e3530000 cmp r3, #0
  79. 103bc: 012fff1e bxeq lr
  80. 103c0: e12fff13 bx r3
  81. 103c4: 00021028 .word 0x00021028
  82. 103c8: 00021028 .word 0x00021028
  83. 103cc: 00000000 .word 0x00000000
  84. 000103d0 <__do_global_dtors_aux>:
  85. 103d0: e92d4010 push {r4, lr}
  86. 103d4: e59f4018 ldr r4, [pc, #24] ; 103f4 <__do_global_dtors_aux+0x24>
  87. 103d8: e5d43000 ldrb r3, [r4]
  88. 103dc: e3530000 cmp r3, #0
  89. 103e0: 18bd8010 popne {r4, pc}
  90. 103e4: ebffffe0 bl 1036c <deregister_tm_clones>
  91. 103e8: e3a03001 mov r3, #1
  92. 103ec: e5c43000 strb r3, [r4]
  93. 103f0: e8bd8010 pop {r4, pc}
  94. 103f4: 00021028 .word 0x00021028
  95. 000103f8 <frame_dummy>:
  96. 103f8: eaffffe6 b 10398 <register_tm_clones>
  97. 000103fc <main>:
  98. 103fc: e92d4800 push {fp, lr}
  99. 10400: e28db004 add fp, sp, #4
  100. 10404: e59f000c ldr r0, [pc, #12] ; 10418 <main+0x1c>
  101. 10408: ebffffb3 bl 102dc <puts@plt>
  102. 1040c: e3a03000 mov r3, #0
  103. 10410: e1a00003 mov r0, r3
  104. 10414: e8bd8800 pop {fp, pc}
  105. 10418: 0001048c .word 0x0001048c
  106. 0001041c <__libc_csu_init>:
  107. 1041c: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
  108. 10420: e59f604c ldr r6, [pc, #76] ; 10474 <__libc_csu_init+0x58>
  109. 10424: e59f504c ldr r5, [pc, #76] ; 10478 <__libc_csu_init+0x5c>
  110. 10428: e08f6006 add r6, pc, r6
  111. 1042c: e08f5005 add r5, pc, r5
  112. 10430: e0466005 sub r6, r6, r5
  113. 10434: e1a07000 mov r7, r0
  114. 10438: e1a08001 mov r8, r1
  115. 1043c: e1a09002 mov r9, r2
  116. 10440: ebffff9d bl 102bc <_init>
  117. 10444: e1b06146 asrs r6, r6, #2
  118. 10448: 08bd87f0 popeq {r4, r5, r6, r7, r8, r9, sl, pc}
  119. 1044c: e3a04000 mov r4, #0
  120. 10450: e1a02009 mov r2, r9
  121. 10454: e1a01008 mov r1, r8
  122. 10458: e1a00007 mov r0, r7
  123. 1045c: e4953004 ldr r3, [r5], #4
  124. 10460: e2844001 add r4, r4, #1
  125. 10464: e12fff33 blx r3
  126. 10468: e1560004 cmp r6, r4
  127. 1046c: 1afffff7 bne 10450 <__libc_csu_init+0x34>
  128. 10470: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
  129. 10474: 00010ae4 .word 0x00010ae4
  130. 10478: 00010adc .word 0x00010adc
  131. 0001047c <__libc_csu_fini>:
  132. 1047c: e12fff1e bx lr
  133. Disassembly of section .fini:
  134. 00010480 <_fini>:
  135. 10480: e92d4008 push {r3, lr}
  136. 10484: e8bd8008 pop {r3, pc}

一定要在要在解压的目录内执行第二步语句,如果还是解决不了,可以再在目录下试一下下面的命令

export CC=afl-gcc; export CXX=afl-g++;

sudo bash -c 'echo core >/proc/sys/kernel/core_pattern'

sudo apt-get install texinfo

一定要在objdump前面加上gnueabi

arm-linux-gnueabi-objdump -d hello > arm_hello.s 


祝你好运如果还解决不了,可以评论区留言

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/822539
推荐阅读
相关标签
  

闽ICP备14008679号