mirror of
https://github.com/radareorg/radare2.git
synced 2024-10-08 11:23:27 +00:00
Add additional ELF header fields to rz-bin output (#372)
This commit is contained in:
parent
4b6abb88ee
commit
f57677b554
@ -11,6 +11,13 @@ static void headers32(RBinFile *bf) {
|
||||
p ("0x00000018 Entrypoint 0x%08x\n", r_buf_read_le32_at (bf->buf, 0x18));
|
||||
p ("0x0000001c PhOff 0x%08x\n", r_buf_read_le32_at (bf->buf, 0x1c));
|
||||
p ("0x00000020 ShOff 0x%08x\n", r_buf_read_le32_at (bf->buf, 0x20));
|
||||
p ("0x00000024 Flags 0x%08x\n", r_buf_read_le32_at (bf->buf, 0x24));
|
||||
p ("0x00000028 EhSize %d\n", r_buf_read_le16_at (bf->buf, 0x28));
|
||||
p ("0x0000002a PhentSize %d\n", r_buf_read_le16_at (bf->buf, 0x2a));
|
||||
p ("0x0000002c PhNum %d\n", r_buf_read_le16_at (bf->buf, 0x2c));
|
||||
p ("0x0000002e ShentSize %d\n", r_buf_read_le16_at (bf->buf, 0x2e));
|
||||
p ("0x00000030 ShNum %d\n", r_buf_read_le16_at (bf->buf, 0x30));
|
||||
p ("0x00000032 ShrStrndx %d\n", r_buf_read_le16_at (bf->buf, 0x32));
|
||||
}
|
||||
|
||||
static bool check_buffer(RBuffer *buf) {
|
||||
|
@ -1184,13 +1184,30 @@ static RList* fields(RBinFile *bf) {
|
||||
ROW ("PhOff", 4, r_buf_read_le32_at (bf->buf, addr), "x");
|
||||
addr += 0x4;
|
||||
ROW ("ShOff", 4, r_buf_read_le32_at (bf->buf, addr), "x");
|
||||
addr += 0x4;
|
||||
} else {
|
||||
ROW ("Entry point", 8, r_buf_read_le64_at (bf->buf, addr), "x");
|
||||
addr += 0x8;
|
||||
ROW ("PhOff", 8, r_buf_read_le64_at (bf->buf, addr), "x");
|
||||
addr += 0x8;
|
||||
ROW ("ShOff", 8, r_buf_read_le64_at (bf->buf, addr), "x");
|
||||
addr += 0x8;
|
||||
}
|
||||
|
||||
ROW ("Flags", 4, r_buf_read_le32_at (bf->buf, addr), "x");
|
||||
addr += 0x4;
|
||||
ROW ("EhSize", 2, r_buf_read_le16_at (bf->buf, addr), "x");
|
||||
addr += 0x2;
|
||||
ROW ("PhentSize", 2, r_buf_read_le16_at (bf->buf, addr), "x");
|
||||
addr += 0x2;
|
||||
ROW ("PhNum", 2, r_buf_read_le16_at (bf->buf, addr), "x");
|
||||
addr += 0x2;
|
||||
ROW ("ShentSize", 2, r_buf_read_le16_at (bf->buf, addr), "x");
|
||||
addr += 0x2;
|
||||
ROW ("ShNum", 2, r_buf_read_le16_at (bf->buf, addr), "x");
|
||||
addr += 0x2;
|
||||
ROW ("ShrStrndx", 2, r_buf_read_le16_at (bf->buf, addr), "x");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,13 @@ static void headers64(RBinFile *bf) {
|
||||
p ("0x00000018 Entrypoint 0x%08"PFMT64x"\n", r_buf_read_le64_at (bf->buf, 0x18));
|
||||
p ("0x00000020 PhOff 0x%08"PFMT64x"\n", r_buf_read_le64_at (bf->buf, 0x20));
|
||||
p ("0x00000028 ShOff 0x%08"PFMT64x"\n", r_buf_read_le64_at (bf->buf, 0x28));
|
||||
p ("0x00000030 Flags 0x%08x\n", r_buf_read_le32_at (bf->buf, 0x30));
|
||||
p ("0x00000034 EhSize %d\n", r_buf_read_le16_at (bf->buf, 0x34));
|
||||
p ("0x00000036 PhentSize %d\n", r_buf_read_le16_at (bf->buf, 0x36));
|
||||
p ("0x00000038 PhNum %d\n", r_buf_read_le16_at (bf->buf, 0x38));
|
||||
p ("0x0000003a ShentSize %d\n", r_buf_read_le16_at (bf->buf, 0x3a));
|
||||
p ("0x0000003c ShNum %d\n", r_buf_read_le16_at (bf->buf, 0x3c));
|
||||
p ("0x0000003e ShrStrndx %d\n", r_buf_read_le16_at (bf->buf, 0x3e));
|
||||
}
|
||||
|
||||
static RBuffer* create(RBin* bin, const ut8 *code, int codelen, const ut8 *data, int datalen, RBinArchOptions *opt) {
|
||||
|
@ -98,8 +98,15 @@ EXPECT=<<EOF
|
||||
0x00000018 0x00000018 Entry point; 0x08048300
|
||||
0x0000001c 0x0000001c PhOff; 0x00000034
|
||||
0x00000020 0x00000020 ShOff; 0x000007cc
|
||||
0x00000024 0x00000024 Flags; 0x00000000
|
||||
0x00000028 0x00000028 EhSize; 0x00000034
|
||||
0x0000002a 0x0000002a PhentSize; 0x00000020
|
||||
0x0000002c 0x0000002c PhNum; 0x00000008
|
||||
0x0000002e 0x0000002e ShentSize; 0x00000028
|
||||
0x00000030 0x00000030 ShNum; 0x0000001e
|
||||
0x00000032 0x00000032 ShrStrndx; 0x0000001b
|
||||
|
||||
7 fields
|
||||
14 fields
|
||||
EOF
|
||||
RUN
|
||||
|
||||
@ -136,6 +143,34 @@ pf.PhOff x
|
||||
CCu MHgwMDAwMDdjYw== @ 0x20
|
||||
Cf 4 x @ 0x20
|
||||
pf.ShOff x
|
||||
"f header.Flags 1 0x00000024"
|
||||
CCu MHgwMDAwMDAwMA== @ 0x24
|
||||
Cf 4 x @ 0x24
|
||||
pf.Flags x
|
||||
"f header.EhSize 1 0x00000028"
|
||||
CCu MHgwMDAwMDAzNA== @ 0x28
|
||||
Cf 2 x @ 0x28
|
||||
pf.EhSize x
|
||||
"f header.PhentSize 1 0x0000002a"
|
||||
CCu MHgwMDAwMDAyMA== @ 0x2a
|
||||
Cf 2 x @ 0x2a
|
||||
pf.PhentSize x
|
||||
"f header.PhNum 1 0x0000002c"
|
||||
CCu MHgwMDAwMDAwOA== @ 0x2c
|
||||
Cf 2 x @ 0x2c
|
||||
pf.PhNum x
|
||||
"f header.ShentSize 1 0x0000002e"
|
||||
CCu MHgwMDAwMDAyOA== @ 0x2e
|
||||
Cf 2 x @ 0x2e
|
||||
pf.ShentSize x
|
||||
"f header.ShNum 1 0x00000030"
|
||||
CCu MHgwMDAwMDAxZQ== @ 0x30
|
||||
Cf 2 x @ 0x30
|
||||
pf.ShNum x
|
||||
"f header.ShrStrndx 1 0x00000032"
|
||||
CCu MHgwMDAwMDAxYg== @ 0x32
|
||||
Cf 2 x @ 0x32
|
||||
pf.ShrStrndx x
|
||||
EOF
|
||||
RUN
|
||||
|
||||
@ -3050,6 +3085,13 @@ EXPECT=<<EOF
|
||||
0x00000018 Entrypoint 0x00400410
|
||||
0x00000020 PhOff 0x00000040
|
||||
0x00000028 ShOff 0x00000a30
|
||||
0x00000030 Flags 0x00000000
|
||||
0x00000034 EhSize 64
|
||||
0x00000036 PhentSize 56
|
||||
0x00000038 PhNum 8
|
||||
0x0000003a ShentSize 64
|
||||
0x0000003c ShNum 30
|
||||
0x0000003e ShrStrndx 27
|
||||
EOF
|
||||
RUN
|
||||
|
||||
|
@ -653,6 +653,13 @@ va true
|
||||
0x00000018 Entrypoint 0x08048300
|
||||
0x0000001c PhOff 0x00000034
|
||||
0x00000020 ShOff 0x000007cc
|
||||
0x00000024 Flags 0x00000000
|
||||
0x00000028 EhSize 52
|
||||
0x0000002a PhentSize 32
|
||||
0x0000002c PhNum 8
|
||||
0x0000002e ShentSize 40
|
||||
0x00000030 ShNum 30
|
||||
0x00000032 ShrStrndx 27
|
||||
[Linked libraries]
|
||||
libc.so.6
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user