理解 rabin2 的输出

逆向工程 雷达2
2021-06-16 11:51:22

我想知道rabin2的输出中cryptolinenumpcalignrelocsva值是什么意思。

我查看了radare2的源代码,似乎ELF va总是正确的,我认为这意味着虚拟寻址?

https://github.com/radareorg/radare2/blob/1d3698bc96a09e45c4fff4c090278623f146929c/libr/bin/format/elf/elf.c#L2132-L2134

int Elf_(r_bin_elf_has_va)(ELFOBJ *bin) {
    return true;
}

我认为relocs是指重定位表的存在,但是从我的测试来看,情况似乎并非如此。

对于linenum我认为它指的是与源代码中的行号有关的信息?但是当 ELF 二进制文件上没有 DWARF 信息时,这似乎仍然是正确的。

至于其他两个我不知道他们指的是什么。

arch     x86
baddr    0x0
binsz    6618
bintype  elf
bits     64
canary   true
sanitiz  false
class    ELF64
crypto   false
endian   little
havecode true
intrp    /lib64/ld-linux-x86-64.so.2
laddr    0x0
lang     c
linenum  true
lsyms    true
machine  AMD x86-64 architecture
maxopsz  16
minopsz  1
nx       true
os       linux
pcalign  0
pic      true
relocs   true
relro    full
rpath    NONE
static   false
stripped false
subsys   linux
va       true
1个回答

rabin2 的输出肯定有点神秘,这是我为您询问的组件找到的一些信息。

加密

指示二进制文件是否已加密/打包的布尔标志

重新定位

表示二进制文件执行运行时重定位

VA

表示正在使用虚拟寻址,如果使用-p标志运行 rabin2 则为 false

线号

ELF 二进制文件的 DWARF 调试部分中存在的 linenum 信息

电脑对齐

与数据结构对齐相关的,可以参考p_alignELF程序头中成员。p_align给出段在内存和文件中对齐的值。值 0 和 1 表示不需要对齐

一些可以提供更多上下文的链接