gpt4 book ai didi

gdb - 如何使用 gdb 调试原始二进制文件

转载 作者:行者123 更新时间:2023-12-01 03:51:32 27 4
gpt4 key购买 nike

我有一个嵌入式设备的可执行文件。
它没有 gdb 识别的头信息,而是使用供应商指定的专有头信息。

我可以使用 IDA-pro 很好地分析文件,但我想运行一些代码来查看它的作用。

可执行文件加载在地址 0x52000000

但是,如果我只是使用加载文件

exec-file myfile

我得到

"myfile": not in executable format: File format not recognized



如果我使用以下方法在正确的位置恢复内存:
restore myfile 52000000

我得到:

You can't do that without a process to debug.



我如何摆脱这个先有鸡还是先有蛋的问题?

我只想跳到代码中间,将一些寄存器设置为预定值并运行一些代码以查看会发生什么。
请注意,我使用的是 ARM 本身的 gdb ARM 工具链。

最佳答案

根据@artless_noise 的建议,我执行了以下操作:

objcopy.exe 
--output-target=elf32-bigarm
--input-target=binary
--change-start=0x52000000
INPUTFILE OUTPUTFILE

这增加了一个 elf文件头。
然而,它并不能解决整个问题。
的输出
readelf.exe -a OUTPUTFILE 

给出:
ELF Header:
Magic: 7f 45 4c 46 01 02 01 61 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, big endian
Version: 1 (current)
OS/ABI: ARM
ABI Version: 0
Type: REL (Relocatable file)
Machine: ARM
Version: 0x1
Entry point address: 0x52000000
Start of program headers: 0 (bytes into file)
Start of section headers: 57316 (bytes into file)
Flags: 0x0
Size of this header: 52 (bytes)
Size of program headers: 0 (bytes)
Number of program headers: 0
Size of section headers: 40 (bytes)
Number of section headers: 5
Section header string table index: 2

Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .data PROGBITS 00000000 000034 00df8c 00 WA 0 0 1
.....

请注意 .data部分仍有地址 0x00000000 .这应该是 0x52000000 .
为了解决这个问题,我在地址 0xdf8c 处打开了一个十六进制编辑器。
这是靠近节标题的位置。
部分标题的结构如下,以及我希望在那里的数据。
typedef struct {
Elf32_Word sh_name;
Elf32_Word sh_type; = 1 {.data}
Elf32_Word sh_flags; = ?
Elf32_Addr sh_addr; = 0x00000000
Elf32_Off sh_offset; = 0x00000034
Elf32_Word sh_size; = 0x0000df8c
Elf32_Word sh_link;
Elf32_Word sh_info;
Elf32_Word sh_addralign;
Elf32_Word sh_entsize;
} Elf32_Shdr;

第一个标题总是全零,第二个标题是 .data部分。
所以我寻找魔数(Magic Number)并填写起始地址,保存文件并将其重新加载到gdb中。

现在可以使用

关于gdb - 如何使用 gdb 调试原始二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22177732/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com