HelderPereira Posted October 4, 2019 at 01:05 PM Share Posted October 4, 2019 at 01:05 PM Alguém poderia me informar em qual estrutura/campo é possível obter a data de criação do binário. No formato PE isso é fácil no entanto no ELF não consegui encontrar. Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted October 4, 2019 at 02:44 PM Administrators Share Posted October 4, 2019 at 02:44 PM Não tem na estrutura. ? O compilador poderia adicionar, mas que eu saiba nenhum faz por padrão. O GCC por exemplo adiciona uma seção .comment com a versão e tal, mas nada em relação ao timestamp: $ readelf -p .comment arquivo.elf String dump of section '.comment': [ 1] GCC: (GNU) 4.1.2 [ 13] GCC: (GNU) 4.1.2 [ 25] GCC: (GNU) 4.1.2 [...] Resumindo, não conheço jeito. Abraço! Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 5, 2019 at 04:30 PM Share Posted October 5, 2019 at 04:30 PM A data da criação/modificação/acesso do arquivo fica no filesystem, não no arquivo em si: $ cc -xc -O2 -s -include stdio.h - <<< 'int main(void){puts("Hello.");}' $ ./a.out Hello. $ file ./a.out ./a.out: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=5578b89998d1ac2d8cb3126f7ffc5d9b7b1ff167, stripped $ readelf -e ./a.out ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: DYN (Shared object file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x550 Start of program headers: 64 (bytes into file) Start of section headers: 4400 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 9 Size of section headers: 64 (bytes) Number of section headers: 27 Section header string table index: 26 Section Headers: [Nr] Name Type Address Offset Size EntSize Flags Link Info Align [ 0] NULL 0000000000000000 00000000 0000000000000000 0000000000000000 0 0 0 [ 1] .interp PROGBITS 0000000000000238 00000238 000000000000001c 0000000000000000 A 0 0 1 [ 2] .note.ABI-tag NOTE 0000000000000254 00000254 0000000000000020 0000000000000000 A 0 0 4 [ 3] .note.gnu.build-i NOTE 0000000000000274 00000274 0000000000000024 0000000000000000 A 0 0 4 [ 4] .gnu.hash GNU_HASH 0000000000000298 00000298 000000000000001c 0000000000000000 A 5 0 8 [ 5] .dynsym DYNSYM 00000000000002b8 000002b8 00000000000000a8 0000000000000018 A 6 1 8 [ 6] .dynstr STRTAB 0000000000000360 00000360 0000000000000082 0000000000000000 A 0 0 1 [ 7] .gnu.version VERSYM 00000000000003e2 000003e2 000000000000000e 0000000000000002 A 5 0 2 [ 8] .gnu.version_r VERNEED 00000000000003f0 000003f0 0000000000000020 0000000000000000 A 6 1 8 [ 9] .rela.dyn RELA 0000000000000410 00000410 00000000000000c0 0000000000000018 A 5 0 8 [10] .rela.plt RELA 00000000000004d0 000004d0 0000000000000018 0000000000000018 AI 5 22 8 [11] .init PROGBITS 00000000000004e8 000004e8 0000000000000017 0000000000000000 AX 0 0 4 [12] .plt PROGBITS 0000000000000500 00000500 0000000000000020 0000000000000010 AX 0 0 16 [13] .plt.got PROGBITS 0000000000000520 00000520 0000000000000008 0000000000000008 AX 0 0 8 [14] .text PROGBITS 0000000000000530 00000530 00000000000001a2 0000000000000000 AX 0 0 16 [15] .fini PROGBITS 00000000000006d4 000006d4 0000000000000009 0000000000000000 AX 0 0 4 [16] .rodata PROGBITS 00000000000006e0 000006e0 000000000000000b 0000000000000000 A 0 0 4 [17] .eh_frame_hdr PROGBITS 00000000000006ec 000006ec 000000000000003c 0000000000000000 A 0 0 4 [18] .eh_frame PROGBITS 0000000000000728 00000728 0000000000000100 0000000000000000 A 0 0 8 [19] .init_array INIT_ARRAY 0000000000200db8 00000db8 0000000000000008 0000000000000008 WA 0 0 8 [20] .fini_array FINI_ARRAY 0000000000200dc0 00000dc0 0000000000000008 0000000000000008 WA 0 0 8 [21] .dynamic DYNAMIC 0000000000200dc8 00000dc8 00000000000001f0 0000000000000010 WA 6 0 8 [22] .got PROGBITS 0000000000200fb8 00000fb8 0000000000000048 0000000000000008 WA 0 0 8 [23] .data PROGBITS 0000000000201000 00001000 0000000000000010 0000000000000000 WA 0 0 8 [24] .bss NOBITS 0000000000201010 00001010 0000000000000008 0000000000000000 WA 0 0 1 [25] .comment PROGBITS 0000000000000000 00001010 000000000000002b 0000000000000001 MS 0 0 1 [26] .shstrtab STRTAB 0000000000000000 0000103b 00000000000000ee 0000000000000000 0 0 1 Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings), I (info), L (link order), O (extra OS processing required), G (group), T (TLS), C (compressed), x (unknown), o (OS specific), E (exclude), l (large), p (processor specific) Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align PHDR 0x0000000000000040 0x0000000000000040 0x0000000000000040 0x00000000000001f8 0x00000000000001f8 R 0x8 INTERP 0x0000000000000238 0x0000000000000238 0x0000000000000238 0x000000000000001c 0x000000000000001c R 0x1 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000828 0x0000000000000828 R E 0x200000 LOAD 0x0000000000000db8 0x0000000000200db8 0x0000000000200db8 0x0000000000000258 0x0000000000000260 RW 0x200000 DYNAMIC 0x0000000000000dc8 0x0000000000200dc8 0x0000000000200dc8 0x00000000000001f0 0x00000000000001f0 RW 0x8 NOTE 0x0000000000000254 0x0000000000000254 0x0000000000000254 0x0000000000000044 0x0000000000000044 R 0x4 GNU_EH_FRAME 0x00000000000006ec 0x00000000000006ec 0x00000000000006ec 0x000000000000003c 0x000000000000003c R 0x4 GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 RW 0x10 GNU_RELRO 0x0000000000000db8 0x0000000000200db8 0x0000000000200db8 0x0000000000000248 0x0000000000000248 R 0x1 Section to Segment mapping: Segment Sections... 00 01 .interp 02 .interp .note.ABI-tag .note.gnu.build-id .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rela.dyn .rela.plt .init .plt .plt.got .text .fini .rodata .eh_frame_hdr .eh_frame 03 .init_array .fini_array .dynamic .got .data .bss 04 .dynamic 05 .note.ABI-tag .note.gnu.build-id 06 .eh_frame_hdr 07 08 .init_array .fini_array .dynamic .got $ stat ./a.out File: ./a.out Size: 6128 Blocks: 16 IO Block: 4096 regular file Device: 811h/2065d Inode: 18614071 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 1000/frederico) Gid: ( 1000/frederico) Access: 2019-10-05 13:24:16.941141704 -0300 Modify: 2019-10-05 13:24:16.941141704 -0300 Change: 2019-10-05 13:24:16.941141704 -0300 Birth: - Link to comment Share on other sites More sharing options...
HelderPereira Posted October 7, 2019 at 12:09 PM Author Share Posted October 7, 2019 at 12:09 PM Obrigado pelas respostas pessoal Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.