28.11.2014 Views

iOS Kernel Heap Armageddon - Hakim

iOS Kernel Heap Armageddon - Hakim

iOS Kernel Heap Armageddon - Hakim

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

How does the parser work? (III)<br />

• after having seen a new object it is stored in a linked list<br />

• parser stores each object in a 44 byte object_t struct<br />

• memory is allocated via kern_os_malloc() which includes a header<br />

typedef struct object {<br />

struct object *next; // next in collection<br />

struct object *free; // for freelist<br />

struct object *elements; // inner elements<br />

OSObject *object;<br />

OSString *key; // for dictionary<br />

int size;<br />

void *data; // for data<br />

char *string; // for string & symbol<br />

long long number; // for number<br />

int idref;<br />

} object_t;<br />

Stefan Esser • <strong>iOS</strong> <strong>Kernel</strong> <strong>Heap</strong> <strong>Armageddon</strong> REVISITED • July 2012 •<br />

80

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!