Skip to content

Instantly share code, notes, and snippets.

@john-tornblom
Created February 6, 2021 14:09
Show Gist options
  • Save john-tornblom/8bca0ddc48901a4357de263e486cc03e to your computer and use it in GitHub Desktop.
Save john-tornblom/8bca0ddc48901a4357de263e486cc03e to your computer and use it in GitHub Desktop.
WIP struct for PS4 dynlib_obj struct
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?
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment