12.07.2015 Views

Breaking iOS Code Signing - Reverse Engineering Mac OS X

Breaking iOS Code Signing - Reverse Engineering Mac OS X

Breaking iOS Code Signing - Reverse Engineering Mac OS X

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Patch 2uintptr_t ImageLoader<strong>Mac</strong>hO::reserveAnAddressRange(size_t length, constImageLoader::LinkContext& context){vm_address_t addr = 0;vm_size_t size = length;if ( fgNextPIEDylibAddress != 0 ) {// add small (0-3 pages) random padding between dylibsaddr = fgNextPIEDylibAddress + (__stack_chk_guard/fgNextPIEDylibAddress &(sizeof(long)-1))*4096;kern_return_t r = vm_allocate(mach_task_self(), &addr, size, VM_FLAGS_FIXED);if ( r == KERN_SUCCESS ) {fgNextPIEDylibAddress = addr + size;return addr;}fgNextPIEDylibAddress = 0;}kern_return_t r = vm_allocate(mach_task_self(), &addr, size, VM_FLAGS_ANYWHERE);if ( r != KERN_SUCCESS )throw "out of address space";}return addr;Friday, October 14, 11

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

Saved successfully!

Ooh no, something went wrong!