struct dynlib_dynsec { struct { struct dynlib_dynsec *le_next; struct dynlib_dynsec *le_prev; } list_entry; unsigned long handle; //struct sysentvec* ? unsigned int refcount; long size; void *symtab; unsigned long symtabsize; const char *strtab; unsigned long strsize; void *pltrela; unsigned long pltrelasize; void *rela; unsigned long relasize; void *hash; unsigned long hashsize; void *dynamic; unsigned long dynamicsize; void *sce_comment; unsigned long sce_commentsize; void *sce_dynlib; unsigned long sce_dynlibsize; char* unknown1; // execpath? unsigned long unknown1size; void *buckets; unsigned long bucketssize; unsigned int nbuckets; void *chains; unsigned long chainssize; unsigned int nchains; long unknown2[7]; }; struct dynlib_obj { struct dynlib_obj *next; char *path; long unknown0[2]; int refcount; unsigned long handle; unsigned long mapbase; unsigned long mapsize; unsigned long textsize; void *database; unsigned long datasize; void *unknown1; unsigned long unknown1_len; unsigned long vaddrbase; unsigned long relocbase; unsigned long entry; int tlsindex; void *tlsinit; unsigned long tlsinitsize; unsigned long tlssize; unsigned long tlsoffset; unsigned long tlsalign; unsigned long *pltgot; long unknown2[7]; unsigned long init; unsigned long fini; unsigned long eh_frame_hdr; unsigned long eh_frame_hdr_size; unsigned long eh_frame; unsigned long eh_frame_size; int status; int flags; long unknown5[5]; struct dynlib_dynsec *dynsec; long unknown6[6]; //fingerprint? };