␉// Locate the symbol in the list, if it exists, update it's address␊ |
␉kernSymbols_t *symbol = lookup_kernel_symbol(symbolName);␊ |
␉␊ |
␉␊ |
␉␊ |
␉if(symbol)␊ |
␉{␊ |
␊ |
␉␉//printf("Located %sbit symbol %s at 0x%lX\n", is64 ? "64" : "32", symbolName, addr);␊ |
␉␉//getc();␊ |
␉␉␊ |
␉␉symbol->addr = addr;␊ |
␉}␊ |
␉␊ |
␉return 0xFFFFFFFF; // fixme␊ |
}␊ |
␊ |
|
␉// NOTE: This will *NOT* be located on pre 10.6.2 kernels␊ |
␉jumpLocation = patchLocation - 15;␊ |
␉while((bytes[jumpLocation - 1] != 0x77 ||␊ |
␉␉ bytes[jumpLocation] != (patchLocation - jumpLocation - -8)) &&␊ |
␉␉ bytes[jumpLocation] != (patchLocation - jumpLocation - 18)) &&␊ |
␉␉ (patchLocation - jumpLocation) < 0xF0)␊ |
␉{␊ |
␉␉jumpLocation--;␊ |