From b4e73e3d896287c930b576ed6c7c06280965f3e0 Mon Sep 17 00:00:00 2001 From: Giovanni <561184+wargio@users.noreply.github.com> Date: Fri, 2 Feb 2024 07:12:00 +0800 Subject: [PATCH] COFF: add flags values to section data. (#4177) --- librz/bin/p/bin_coff.c | 3 ++- test/db/formats/coff | 48 +++++++++++++++++++++--------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/librz/bin/p/bin_coff.c b/librz/bin/p/bin_coff.c index f532390af94..d29f10640ba 100644 --- a/librz/bin/p/bin_coff.c +++ b/librz/bin/p/bin_coff.c @@ -291,10 +291,11 @@ static RzPVector /**/ *sections(RzBinFile *bf) { ptr->size = obj->scn_hdrs[i].s_size; ptr->vsize = obj->scn_hdrs[i].s_size; ptr->paddr = obj->scn_hdrs[i].s_scnptr; + ptr->flags = obj->scn_hdrs[i].s_flags; if (obj->scn_va) { ptr->vaddr = obj->scn_va[i]; } - ptr->perm = rz_coff_perms_from_section_flags(obj->scn_hdrs[i].s_flags); + ptr->perm = rz_coff_perms_from_section_flags(ptr->flags); rz_pvector_push(ret, ptr); } return ret; diff --git a/test/db/formats/coff b/test/db/formats/coff index 26a368a3aec..3e7edacdca4 100644 --- a/test/db/formats/coff +++ b/test/db/formats/coff @@ -33,19 +33,19 @@ nth vaddr bind type lib name 23 0x0000b748 NONE FUNC __TIFFDataSize 24 0x0000b750 NONE FUNC __TIFFCheckMalloc 25 0x0000b758 NONE UNK __fltused -paddr size vaddr vsize align perm name type flags ------------------------------------------------------------------------------- -0x000001cc 0x2f 0x00000000 0x2f 0x0 ---- .drectve MEM_NO_READ -0x000001fb 0x8670 0x00000030 0x8670 0x0 -r-- .debug_S MEM_NO_READ -0x0000ad73 0x70 0x000086a0 0x70 0x0 -r-- .debug_T MEM_NO_READ -0x0000ade3 0x625 0x00008710 0x625 0x0 -rw- .data MEM_NO_READ -0x0000b408 0x54 0x00008d40 0x54 0x0 -r-- .rdata MEM_NO_READ -0x00000000 0x8 0x00008da0 0x8 0x0 -rw- .bss MEM_NO_READ -0x0000b45c 0x2895 0x00008db0 0x2895 0x0 -r-x .text_mn MEM_NO_READ -0x0000e967 0x8 0x0000b650 0x8 0x0 -r-- .rdata_0xe967 MEM_NO_READ -0x0000e96f 0x4 0x0000b660 0x4 0x0 -r-- .rdata_0xe96f MEM_NO_READ -0x0000e973 0x8 0x0000b670 0x8 0x0 -r-- .rdata_0xe973 MEM_NO_READ -0x0000e97b 0x4 0x0000b680 0x4 0x0 -r-- .rdata_0xe97b MEM_NO_READ +paddr size vaddr vsize align perm name type flags +--------------------------------------------------------------------------------------------------------------- +0x000001cc 0x2f 0x00000000 0x2f 0x0 ---- .drectve LNK_INFO,LNK_REMOVE,ALIGN_1BYTES,MEM_NO_READ +0x000001fb 0x8670 0x00000030 0x8670 0x0 -r-- .debug_S CNT_INIT_DATA,ALIGN_1BYTES,MEM_DISCARDABLE +0x0000ad73 0x70 0x000086a0 0x70 0x0 -r-- .debug_T CNT_INIT_DATA,ALIGN_1BYTES,MEM_DISCARDABLE +0x0000ade3 0x625 0x00008710 0x625 0x0 -rw- .data CNT_INIT_DATA,ALIGN_8BYTES +0x0000b408 0x54 0x00008d40 0x54 0x0 -r-- .rdata CNT_INIT_DATA,ALIGN_4BYTES +0x00000000 0x8 0x00008da0 0x8 0x0 -rw- .bss CNT_UNIN_DATA,ALIGN_4BYTES +0x0000b45c 0x2895 0x00008db0 0x2895 0x0 -r-x .text_mn CNT_CODE,ALIGN_16BYTES +0x0000e967 0x8 0x0000b650 0x8 0x0 -r-- .rdata_0xe967 CNT_INIT_DATA,LNK_COMDAT,ALIGN_8BYTES +0x0000e96f 0x4 0x0000b660 0x4 0x0 -r-- .rdata_0xe96f CNT_INIT_DATA,LNK_COMDAT,ALIGN_4BYTES +0x0000e973 0x8 0x0000b670 0x8 0x0 -r-- .rdata_0xe973 CNT_INIT_DATA,LNK_COMDAT,ALIGN_8BYTES +0x0000e97b 0x4 0x0000b680 0x4 0x0 -r-- .rdata_0xe97b CNT_INIT_DATA,LNK_COMDAT,ALIGN_4BYTES EOF RUN @@ -93,17 +93,17 @@ EXPECT=<