diff options
Diffstat (limited to 'js/call.js')
| -rw-r--r-- | js/call.js | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -2,6 +2,7 @@ var reserve_addr = 0x1a0000; var gettimeofday_addy = 0x34d63d3c; var slide = 0x0; var base = 0x0; +//var slid = 0x0; function get_dyld_shc_slide() { return read_u32((slide << 12) + reserve_addr + 20); @@ -45,3 +46,13 @@ function call4arg(addy, r0, r1, r2, r3) { return (parseInt(Int64.fromDouble(ret)) & 0xffffffff) >>> 0; } + +/* + * call with symbol + */ +function calls4arg(sym, r0, r1, r2, r3) { + var dlsym_addy = read_u32(0x1a0000 + 24 + slid); + var shc_slide = read_u32(0x1a0000 + 20 + slid); + var addy = call4arg(dlsym_addy + shc_slide, 0xfffffffe, sptr(sym), 0, 0); + return call4arg(addy, r0, r1, r2, r3); +} |
