2024年Go最全objdump命令详解,2024年最新值得收藏

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

–stop-address=address
显示数据直到指定地址为止,该项影响-d、-r和-s选项的输出。

-t
–syms
显示文件的符号表入口。类似于nm -s提供的信息

-T
–dynamic-syms
显示文件的动态符号表入口,仅仅对动态目标文件意义,比如某些共享库。它显示的信息类似于 nm -D|–dynamic 显示的信息。

-V
–version
版本信息

–all-headers
-x
显示所可用的头信息,包括符号表、重定位入口。-x 等价于-a -f -h -r -t 同时指定。

-z
–disassemble-zeroes
一般反汇编输出将省略大块的零,该选项使得这些零块也被反汇编。

@file 可以将选项集中到一个文件中,然后使用这个@file选项载入。


##### 实例


首先,在给出后面大部分测试所基于的源代码以及编译指令。 源代码如下:  
 mytest.cpp



#include<stdio.h>
void exploit()
{
system(“/bin/sh”);
}
void func()
{
char str[0x20];
read(0, str, 0x50);
}
int main()
{
func();
return 0;
}


编译:



gcc -c -g -o mytest mytest.c


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407222848226.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 **查看当前使用的objdump的版本号:**



objdump -V


![在这里插入图片描述](https://img-blog.csdnimg.cn/2020040722293467.png)  
 **显示可用的架构和目标结构列表:**



objdump -i


![在这里插入图片描述](https://img-blog.csdnimg.cn/202004072232580.png)  
 **显示mytest文件中的text段的内容:**



objdump --section=.text -s mytest


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407223435752.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 这里注意,不能单独使用-j或者–section,例如`objdump --section=.text mytest`是不会运行成功的。


**反汇编mytest中的text段内容,并尽可能用源代码形式表示:**



objdump -j .text -S mytest


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407223816180.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 这里注意,不能单独使用-j或者–section,例如`objdump -j .text mytest`是不会运行成功的。另外-S命令对于包含调试信息的目标文件,显示的效果比较好,如果编译时没有指定-g选项,那么目标文件就不包含调试信息,那么显示效果就差多了。


**反汇编出mytest.o的源代码:**



objdump -S mytest


![在这里插入图片描述](https://img-blog.csdnimg.cn/2020040722401169.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 这里,尤其当编译的时候指定了-g这种调试参数时,反汇编的效果比较明显。隐含了-d参数。


**显示文件的符号表入口:**



objdump -t mytest


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407224112592.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 **显示文件的符号表入口,将底层符号解码并表示成用户级别:**



*objdump -t -C mytest*


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407224221494.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)


**反汇编目标文件的特定机器码段:**



objdump -d mytest


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407224321750.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 这里,对text段的内容进行了反汇编。


**反汇编特定段,并将汇编代码对应的文件名称和行号对应上:**



objdump -d -l mytest


![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407224448782.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNjgzMzA1,size_16,color_FFFFFF,t_70)  
 这里,项"-d"从objfile中反汇编那些特定指令机器码的section,而使用"-l"指定用文件名和行号标注相应的目标代码,仅仅和-d、-D或者-r一起使用,使用-ld和使用-d的区别不是很大,在源码级调试的时候有用,要求编译时使用了-g之类的调试编译选项。


**显示目标文件各个段的头部摘要信息:**




![img](https://img-blog.csdnimg.cn/img_convert/5908b9d0a7df1a68324f8f225dadc977.png)
![img](https://img-blog.csdnimg.cn/img_convert/a5053c405687e0b8652d3fbcbb3f12a2.png)
![img](https://img-blog.csdnimg.cn/img_convert/914c0080bd5807b733ad61b65d5bcd64.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618658159)**

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值