c语言修改elf文件crc32,ELF文件中调试信息的格式说明?
看了很多文档,都是对ELF文件中的调试信息格式一带而过,包括《Linker & Loader》中也没有详细介绍。
我想获取调试信息中的数据结构相关的信息,结构大小,每个变量的名称,大小等信息。
|
通过objdump的命令,例如:tmp.o是elf文件,objdump参数应该为--sym
1、dump出符号表,objdumpppc --sym tmp.o > bootrom_sym.txt,内容如下:
tmp.o: file format elf32-powerpc
SYMBOL TABLE:
02c00000 l d .text00000000
02ce7cc0 l d .data00000000
02d0a1f0 l d .bss00000000
00000000 l d .PPC.EMB.apuinfo00000000
00000000 l d *ABS*00000000
00000000 l d *ABS*00000000
00000000 l d *ABS*00000000
00000000 l df *ABS*00000000 bootConfig.c
02ce7da8 l O .data00000078 netIf
02ce7e2c l O .data00000004 trapValue1
02ce7e30 l O .data00000004 trapValue2
02ce7f34 l O .data00000044 noticeChar.0
02d0a674 l O .bss00000004 noticeNum.1
02d0a678 l O .bss00000004 memTestRoundPass
02ce7f78 l O .data00000004 SEED_X
02ce7f7c l O .data00000004 SEED_Y
02ce7f80 l O .data00000004 a.2
02ce7f84 l O .data00000004 b.3
02c00184 l F .text00000058 memCheckRand
02c00200 l F .text00000278 movinv1
02c00478 l F .text000001d8 addr_tst1
02c00650 l F .text00000184 addr_tst2
02c007d4 l F .text00000284 modtst
02c00a58 l F .text00000204 movinvr
02c00c5c l F .text00000340 movinv32
02c00f9c l F .text00000188 bit_fade
02c01124 l F .text000003bc enhancedMemCheckMainLoop
02c014e0 l F .text000001d8 patchVecBase
02c018a0 l F .text00000184 CheckRam
02c093a4 l F .text000000c8 usrBootLineInit
02c08840 l F .text00000080 go
.....................................................
2、dump出汇编,objdumpppc --disassemble tmp.o > bootrom_asm.txt,内容如下:
tmp.o: file format elf32-powerpc
Disassembly of section .text:
02c00000 :
2c00000:94 21 ff f8 stwur1,-8(r1)
2c00004:7c 08 02 a6 mflrr0
2c00008:90 01 00 0c stwr0,12(r1)
2c0000c:4c c6 31 82 crclr4*cr1+eq
2c00010:48 00 16 a9 bl2c016b8
2c00014:80 01 00 0c lwzr0,12(r1)
2c00018:38 21 00 08 addir1,r1,8
2c0001c:7c 08 03 a6 mtlrr0
2c00020:4e 80 00 20 blr
02c00024 :
2c00024:94 21 ff f8 stwur1,-8(r1)
2c00028:7c 08 02 a6 mflrr0
2c0002c:90 01 00 0c stwr0,12(r1)
2c00030:48 08 88 09 bl2c88838
2c00034:48 0c 7b b9 bl2cc7bec
2c00038:48 09 70 15 bl2c9704c
2c0003c:48 0c 49 41 bl2cc497c
2c00040:48 0c 65 49 bl2cc6588
2c00044:48 0c 51 29 bl2cc516c
2c00048:48 0c 1f cd bl2cc2014
2c0004c:48 0c a9 ed bl2ccaa38
2c00050:48 0c 2e 19 bl2cc2e68
2c00054:3c a0 02 db lisr5,731
2c00058:3d 20 02 cf lisr9,719
2c0005c:80 89 4a 38 lwzr4,19000(r9)
2c00060:3c 60 02 db lisr3,731
2c00064:38 c0 01 00 lir6,256
2c00068:38 a5 c6 14 addir5,r5,-14828
2c0006c:38 63 b9 48 addir3,r3,-18104
2c00070:4c c6 31 82 crclr4*cr1+eq
2c00074:48 0a 12 4d bl2ca12c0
。。。。。。。。。。。
就这样,linux下面也有类似的工具。
c语言修改elf文件crc32,ELF文件中调试信息的格式说明?相关推荐
- tif文件转为shp文件_在arcgis中怎么把tif格式的遥感图像转换为矢量图
http://bbs.3s001.com/thread-67153-1-1.html,这个帖子里有讲操作步骤 一.对影像的校准和配准 1.打开ArcMap,增加Georeferncing工具条. 2. ...
- .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)
如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs N:\NET\cs\*.cs 是你的cs文 ...
- .CS文件编译生成.DLL文件 .EXE文件
如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs N:\NET\cs\*.cs 是你的cs文 ...
- 面试问题-理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用
理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用 1)什么是sdf文件 2)如何反标sdf文件? 1,什么是数字后仿? 2,什么是门级网表? 3,什么是sdf文件 4,如何反标sd ...
- coredump文件的生成以及如何调试coredump文件?
生成coredump文件的相关配置 1. 首先通过 ulimit -a 命令,查看是否允许coredump文件生成; 如下图所示,core文件大小限制为0,即:不允许core文件生成 2. 使用 ul ...
- PE文件和COFF文件格式分析——节信息
在<PE文件和COFF文件格式分析--签名.COFF文件头和可选文件头3>中,我们看到一些区块的信息都有偏移指向.而我们本文讨论的节信息是没有任何偏移指向的,所以它是紧跟在可选文件头后面的 ...
- python读文件操作-python文件操作读取文件写入文件
读取文件 要使用文本文件中的信息,首先需要将信息读取到内存中.为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创 ...
- vs2010下使用dmp文件和pdb文件调试时dump、exe和pdb三个文件要保持版本一致的原因
一.pdb文件简介 英文:Program Data Base,即程序的基本数据,是 VS 编译链接时生成的文件. pdb文件主要存储了如下调试信息: (1)public,private 和 stati ...
- c语言修改elf文件crc32,hash/crc32
import "hash/crc32" 概述 索引 示例 概述 Package crc32 实现32位循环冗余校验或CRC-32校验和.有关信息,请参阅http://en.wiki ...
最新文章
- MYSQL远程连接数据库
- coursera—吴恩达Machine Learning笔记(1-3周)
- java8电脑版安装包下载百度云_everything电脑文件搜索工具
- 这三位同学的名字绝了!笑得肚子疼......
- CentOS忘记普通用户密码解决办法
- hbuild json红叉_MUI+Hbuilder之踩坑(三)
- linux 设置dns缓存周期,如何解决DNS缓存时间问题
- TensorFlow安装中遇到的问题
- afnetworking 和 asihttprequest 强制修改http连接的host地址
- attention的前世今生
- 网络通信基础——网络协议
- RPC调用和HTTP调用的区别
- 【VIP视频网站项目一】搭建视频网站的前台页面(导航栏+轮播图+电影列表+底部友情链接)
- TensorFlow-gpu安装和测试(TensorFlow-gpu1.14+Cuda10)
- 嗖嗖移动大厅JAVA(免费源码分享)
- 分析完百年飞机空难数据,我发现了这几条“保命”小秘诀
- java中级程序员全面学习路线教程
- FPGA之道(11)FPGA芯片的供电系统
- “滴滴出行” 成长路径分析(2016年01月19日)
- 【python】django实现扫码签到
热门文章
- 腾讯云安全专家 Killer 告诉你,企业上云怎么做更安全
- TensorFlow MNIST CNN LeNet5模型
- 【PAT甲级 火星数字】1100 Mars Numbers (20 分)Java 全部AC
- 【PAT甲级 排序】1096 Consecutive Factors (20 分) C++ 全部AC
- 红帽linux iso镜像,红帽 Red Hat Linux相关产品iso镜像下载
- XSS跨站脚本攻击在Java开发中防范的方法
- 操作系统中的同步和异步
- postman根据请求内容生成对应的代码(Java、Go、C语言等)
- Leecode题解汇总(附题型归类)
- C语言满分代码:1018 锤子剪刀布 (20分)(解题报告)