gpt4 book ai didi

c - 反汇编 MIPS 架构(isa32r2)的库的起点是什么?

转载 作者:行者123 更新时间:2023-12-04 23:53:58 25 4
gpt4 key购买 nike

我在项目中使用了一些第三方库。本项目是一个以MIPS(isa32r2)为核心的嵌入式系统。最近在第三方库(libusb.a)中发现了一个bug,但是由于时间关系已经没有技术支持了。所以我尝试反汇编库。

$ mips-sde-elf-ar -x libusb.a$ mips-sde-elf-objdump.exe -Ds -mmips:isa32r2 -EL usbhost_func.o > usbhost_func.s

在文件 usbhost_func.s 中我可以获得一些信息,例如:

    Disassembly of section .text.usbhost_init:    00000000 :       0:   27bdffd8    addiu   sp,sp,-40       4:   3c020000    lui v0,0x0

.text.usbhost_init 看起来像是usbhost_init() 的完整反汇编函数。但这里还有一些其他信息,例如:

    Disassembly of section .pdr:    00000000 :       0:   00000000    nop       4:   40000000    mfc0    zero,c0_index       8:   fffffffc    sdc3    $31,-4(ra)        ...         why here is  ...      14:   00000008    jr  zero      18:   0000001e    0x1e      1c:   0000001f    0x1f      20:   00000000    nop    Disassembly of section .gnu.attributes:    00000000 :       0:   00000f41    0xf41       4:   756e6700    jalx    5b99c00        8:   00070100    sll zero,a3,0x4       c:   03040000    0x3040000

所以我的问题是:

  1. What does the secton's mean like section .pdr?
  2. Why there is some ... in setion .pdr ?
  3. What is the srart point to disassemble a mips library?
    Any hint and info are welcome.Tks.

最佳答案

  1. objdump -D 将尝试反汇编所有部分而不是包含有效指令的部分,您应该使用 objdump -d

    <
  2. .pdr 是调试信息部分,可能不包含有效指令。

  3. 对于静态库(.a文件),你应该通过ar x libfoo.a提取这些库中的目标文件,并尝试反汇编你通过得到的那些目标文件>objdump -d.

关于c - 反汇编 MIPS 架构(isa32r2)的库的起点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368114/

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