Skip to content

Instantly share code, notes, and snippets.

@sbz
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbz/ac5aafa3facc8c2b35c0 to your computer and use it in GitHub Desktop.
Save sbz/ac5aafa3facc8c2b35c0 to your computer and use it in GitHub Desktop.
auxv: dump elf auxillary vector information on freebsd
#include <stdio.h>
#include <elf.h>
/* /usr/include/x86/elf.h AT_* defs */
typedef struct {
const char *str_val;
int type;
} Elf_AuxStr;
Elf_AuxStr aux_map[AT_COUNT][2] = {
{"AT_NLL", 0},
{"AT_IGNORE", 1},
{"AT_EXECFD", 2},
{"AT_PHDR", 3},
{"AT_PHENT", 4},
{"AT_PHNUM", 5},
{"AT_PAGESZ", 6},
{"AT_BASE", 7},
{"AT_FLAGS", 8},
{"AT_ENTRY", 9},
{"AT_NOTELF", 10},
{"AT_UID", 11},
{"AT_EUID", 12},
{"AT_GID", 13},
{"AT_EGID", 14},
{"AT_EXECPATH", 15},
{"AT_CANARY", 16},
{"AT_CANARYLEN", 17},
{"AT_OSRELDATE", 18},
{"AT_NCPUS", 19},
{"AT_PAGESIZES", 20},
{"AT_PAGESIZESLEN", 21},
{"AT_TIMEKEEP", 22},
{"AT_STACKPROT", 23},
};
int
main(int argc, char* argv[], char* envp[])
{
Elf_Auxinfo *aux_info;
Elf_Auxinfo *auxp;
Elf_AuxStr *aux_str;
while(*envp++ != NULL);
for (auxp = (Elf_Auxinfo *)envp; auxp->a_type != AT_NULL; auxp++)
{
aux_str = aux_map[auxp->a_type];
printf("val: %s int: %02d ptr: 0x%lx\n", aux_str->str_val, aux_str->type, auxp->a_un.a_val);
}
}
@sbz
Copy link
Author

sbz commented Jun 23, 2014

  • Build:
(sbz@ogoshi:/tmp/) % cc -o auxv auxv.c
  • Run:
(sbz@ogoshi:/tmp) % ./auxv            
val: AT_PHDR int: 03 ptr: 0x400040
val: AT_PHENT int: 04 ptr: 0x38
val: AT_PHNUM int: 05 ptr: 0x8
val: AT_PAGESZ int: 06 ptr: 0x1000
val: AT_FLAGS int: 08 ptr: 0x0
val: AT_ENTRY int: 09 ptr: 0x4004e0
val: AT_BASE int: 07 ptr: 0x600000
val: AT_EXECPATH int: 15 ptr: 0xffffefd6
val: AT_OSRELDATE int: 18 ptr: 0xf4270
val: AT_CANARY int: 16 ptr: 0xffffef96
val: AT_CANARYLEN int: 17 ptr: 0x40
val: AT_NCPUS int: 19 ptr: 0x4
val: AT_PAGESIZES int: 20 ptr: 0xffffef7e
val: AT_PAGESIZESLEN int: 21 ptr: 0x18
val: AT_TIMEKEEP int: 22 ptr: 0xfffff020
val: AT_STACKPROT int: 23 ptr: 0x3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment