From 11bf2836351cdb0703506d9d24ebd72bb420d1df Mon Sep 17 00:00:00 2001 From: norly Date: Tue, 28 May 2013 18:22:31 +0100 Subject: [PATCH] Remove old and ugly printing functions --- src/main.c | 17 +-------- src/options.c | 10 +++--- src/printing/header.c | 62 -------------------------------- src/printing/sections.c | 63 -------------------------------- src/printing/segments.c | 80 ----------------------------------------- 5 files changed, 6 insertions(+), 226 deletions(-) delete mode 100644 src/printing/header.c delete mode 100644 src/printing/sections.c delete mode 100644 src/printing/segments.c diff --git a/src/main.c b/src/main.c index 1672ab4..0eb6e00 100644 --- a/src/main.c +++ b/src/main.c @@ -38,22 +38,7 @@ int main(int argc, char **argv) } - /* Now that we have a (hopefully) sane environment, execute commands. - * Printing will have to be reimplemented based on the memory model. - */ - if (opts.printHeader) { - printHeader(hIn.e); - } - - if (opts.printSegments) { - printSegments(hIn.e); - } - - if (opts.printSections) { - printSections(hIn.e); - } - - + /* Now that we have a (hopefully) sane environment, execute commands. */ me = elfu_mFromElf(hIn.e); if (me) { closeElf(&hIn); diff --git a/src/options.c b/src/options.c index 928d080..198f01b 100644 --- a/src/options.c +++ b/src/options.c @@ -14,11 +14,11 @@ static void printUsage(char *progname) " -h, --help Print this help message\n" " -o, --output Where to write the modified ELF file to\n" "\n" - "ELF dump:\n" - " --print-header Print ELF header\n" - " --print-segments Print program headers\n" - " --print-sections Print sections\n" - "\n" +// "ELF dump:\n" +// " --print-header Print ELF header\n" +// " --print-segments Print program headers\n" +// " --print-sections Print sections\n" +// "\n" "Space insertion:\n" " off: File offset, not within any structure (headers or sections).\n" " sz: A multiple of the maximum alignment of all PHDRs.\n" diff --git a/src/printing/header.c b/src/printing/header.c deleted file mode 100644 index 0be2536..0000000 --- a/src/printing/header.c +++ /dev/null @@ -1,62 +0,0 @@ -#include - -#include -#include - - -void printHeader(Elf *e) -{ - GElf_Ehdr ehdr; - int elfclass; - size_t shdrnum, shdrstrndx, phdrnum; - - - printf("ELF header:\n"); - - - elfclass = gelf_getclass(e); - if (elfclass == ELFCLASSNONE) { - fprintf(stderr, "getclass() failed: %s\n", elf_errmsg(-1)); - } - printf(" * %d-bit ELF object\n", elfclass == ELFCLASS32 ? 32 : 64); - - - if (!gelf_getehdr(e, &ehdr)) { - fprintf(stderr, "getehdr() failed: %s.", elf_errmsg(-1)); - return; - } - - printf(" * type machine version entry phoff shoff flags ehsize phentsize shentsize\n"); - printf(" %8jx %8jx %8jx %8jx %8jx %8jx %8jx %8jx %9jx %9jx\n", - (uintmax_t) ehdr.e_type, - (uintmax_t) ehdr.e_machine, - (uintmax_t) ehdr.e_version, - (uintmax_t) ehdr.e_entry, - (uintmax_t) ehdr.e_phoff, - (uintmax_t) ehdr.e_shoff, - (uintmax_t) ehdr.e_flags, - (uintmax_t) ehdr.e_ehsize, - (uintmax_t) ehdr.e_phentsize, - (uintmax_t) ehdr.e_shentsize); - - - if (elf_getshdrnum(e, &shdrnum) != 0) { - fprintf(stderr, "getshdrnum() failed: %s\n", elf_errmsg(-1)); - } else { - printf(" * (shnum): %u\n", shdrnum); - } - - if (elf_getshdrstrndx(e, &shdrstrndx) != 0) { - fprintf(stderr, "getshdrstrndx() failed: %s\n", elf_errmsg(-1)); - } else { - printf(" * (shstrndx): %u\n", shdrstrndx); - } - - if (elf_getphdrnum(e, &phdrnum) != 0) { - fprintf(stderr, "getphdrnum() failed: %s\n", elf_errmsg(-1)); - } else { - printf(" * (phnum): %u\n", phdrnum); - } - - printf("\n"); -} diff --git a/src/printing/sections.c b/src/printing/sections.c deleted file mode 100644 index ec0ff43..0000000 --- a/src/printing/sections.c +++ /dev/null @@ -1,63 +0,0 @@ -#include - -#include -#include - -#include -#include "printing.h" - - -void printSegmentsWithSection(Elf *e, Elf_Scn *scn) -{ - GElf_Phdr phdr; - GElf_Shdr shdr; - int i; - size_t n; - - - if (gelf_getshdr(scn, &shdr) != &shdr) { - fprintf(stderr, "gelf_getshdr() failed: %s\n", elf_errmsg(-1)); - return; - } - - if (elf_getphdrnum(e, &n)) { - fprintf(stderr, "elf_getphdrnum() failed: %s\n", elf_errmsg(-1)); - return; - } - - for (i = 0; i < n; i++) { - if (gelf_getphdr(e, i, &phdr) != &phdr) { - fprintf(stderr, "getphdr() failed for #%d: %s\n", i, elf_errmsg(-1)); - continue; - } - - if (PHDR_CONTAINS_SCN_IN_MEMORY(&phdr, &shdr)) { - printf(" %d %s\n", i, segmentTypeStr(phdr.p_type)); - } - } -} - - -void printSection(Elf *e, Elf_Scn *scn) -{ - printf(" %jd: %s\n", - (uintmax_t) elf_ndxscn(scn), - elfu_eScnName(e, scn)); -} - - -void printSections(Elf *e) -{ - Elf_Scn *scn; - - printf("Sections:\n"); - - scn = elf_getscn(e, 0); - - while (scn) { - printSection(e, scn); - //printSegmentsWithSection(e, scn); - - scn = elf_nextscn(e, scn); - } -} diff --git a/src/printing/segments.c b/src/printing/segments.c deleted file mode 100644 index c7b5cb2..0000000 --- a/src/printing/segments.c +++ /dev/null @@ -1,80 +0,0 @@ -#include - -#include -#include - -#include - - -static char *ptstr[] = {"NULL", "LOAD", "DYNAMIC", "INTERP", "NOTE", "SHLIB", "PHDR", "TLS", "NUM"}; - - -char* segmentTypeStr(size_t pt) -{ - if (pt >= 0 && pt <= PT_NUM) { - return ptstr[pt]; - } - - return "-?-"; -} - - -void printSectionsInSegment(Elf *e, GElf_Phdr *phdr) -{ - Elf_Scn *scn; - - scn = elf_getscn(e, 0); - - while (scn) { - GElf_Shdr shdr; - - if (gelf_getshdr(scn, &shdr) != &shdr) { - fprintf(stderr, "gelf_getshdr() failed: %s\n", elf_errmsg(-1)); - continue; - } - - if (PHDR_CONTAINS_SCN_IN_MEMORY(phdr, &shdr)) { - printf(" %10u %s\n", elf_ndxscn(scn), elfu_eScnName(e, scn)); - } - - scn = elf_nextscn(e, scn); - } -} - - -void printSegments(Elf *e) -{ - size_t i, n; - - if (elf_getphdrnum(e, &n)) { - fprintf(stderr, "elf_getphdrnum() failed: %s.", elf_errmsg(-1)); - } - - printf("Segments:\n"); - printf(" # typeStr type offset vaddr paddr filesz memsz flags align\n"); - - for (i = 0; i < n; i++) { - GElf_Phdr phdr; - - if (gelf_getphdr(e, i, &phdr) != &phdr) { - fprintf(stderr, "getphdr() failed for #%d: %s.", i, elf_errmsg(-1)); - continue; - } - - printf(" * %4d: %8s ", i, segmentTypeStr(phdr.p_type)); - - printf("%8jx %8jx %8jx %8jx %8jx %8jx %8jx %8jx\n", - (uintmax_t) phdr.p_type, - (uintmax_t) phdr.p_offset, - (uintmax_t) phdr.p_vaddr, - (uintmax_t) phdr.p_paddr, - (uintmax_t) phdr.p_filesz, - (uintmax_t) phdr.p_memsz, - (uintmax_t) phdr.p_flags, - (uintmax_t) phdr.p_align); - - printSectionsInSegment(e, &phdr); - } - - printf("\n"); -} -- 2.30.2