ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.3.1测试

2021-10-30 14:34:49  阅读:156  来源: 互联网

标签:文件 objdump 博客 t1 测试 2.3 链接 out


2.3.1测试

作者:20191322wyl

本次实验在OpenEuler系统进行,安装教程参考我的博客

目录

任务详情

  1. 推荐在OpenEuler系统中实现
  2. 编辑并运行2.3.1中的代码,要求在不修改t2.c 和 t1.c中main函数中的代码的情况下,程序运行结果是你的后四位学号。提交代码和运行结果截图
  3. 网上学习objdump命令,提交不少于5篇博客链接和微信读书上的图书链接,并给出你认为最好的讲解资源的链接或图书名及章节
  4. 用objdump分析第1步中的可执行文件和目标文件,提交你的分析截图以及如何和教材讲解内容对应的,比如obj文件的文件头,代码段,数据段等,可执行文件如何链接mysum的

代码实现

1322 - 1 - 2 = 1319

所以只用把g的值改为1319即可

objdump命令学习

博客1

博客2

博客3

博客4

博客5

我认为最好的一篇博客是第5篇,排版工整,讲解清晰,并且提供了一个附带源代码的程序做演示,让人一目了然。

objdump命令实践

实践

  1. 首先使用objdimp -f a.out显示文件头信息

可以看到,在Linux系统中默认的可执行文件格式为ELF,并且程序的起始地址不是0x00。

  1. 使用objdump -h a.out查看a.out文件的各个section的头部摘要信息,可以看到每节的大小

    !

  2. 使用objdump -S a.out 反汇编源代码

    发现了.init段和.plt等其他段,在书上没有发现对应内容

    百度找到了答案:

    • .init段:程序初始化段,动态库的构建函数
    • .plt段:动态库链接的跳转表
  3. 根据命令objdump -t a.out查看a.out符号表

  4. objdump -f t1.o查看目标文件的文件头

    发现.o文件起始地址是0x0,但是ELF文件起始地址不是

  5. 使用`objdump -h t1.o查看a.out文件的各个section的头部摘要信息,可以看到每节的大小

  6. objdump -S t1.o反汇编目标文件

  7. 根据命令objdump -t t1.o查看t1.o符号表

执行文件如何链接mysum

使用callq调用

标签:文件,objdump,博客,t1,测试,2.3,链接,out
来源: https://www.cnblogs.com/BillGreen/p/15484942.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有