summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/js/main.js6
-rw-r--r--src/js/primitives/call.js9
2 files changed, 14 insertions, 1 deletions
diff --git a/src/js/main.js b/src/js/main.js
index 683c96a..923a8fd 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -48,6 +48,10 @@ function main() {
printf("*(uint32_t*)base = 0x%x\n", read_u32(base));
callnarg(sym_cache["printf"], sptr("Hello world! %x %x %x %x %x %x %x %x %x %x %x %x %x\n"), 0x420, 0x69, 0x1337, 0x13371337, 0xb1a7e17, 0x41424344);
+ callnarg(sym_cache["printf"], sptr("Hello world! %x %x %x %x %x %x %x %x %x %x %x %x %x\n"), 0x420, 0x69, 0x1337, 0x13371337, 0xb1a7e17, 0x41424344);
+ callnarg(sym_cache["printf"], sptr("Hello world! %x %x %x %x %x %x %x %x %x %x %x %x %x\n"), 0x420, 0x69, 0x1337, 0x13371337, 0xb1a7e17, 0x41424344);
+ callnarg(sym_cache["printf"], sptr("Hello world! %x %x %x %x %x %x %x %x %x %x %x %x %x\n"), 0x420, 0x69, 0x1337, 0x13371337, 0xb1a7e17, 0x41424344);
+ callnarg(sym_cache["printf"], sptr("Hello world! %x %x %x %x %x %x %x %x %x %x %x %x %x\n"), 0x420, 0x69, 0x1337, 0x13371337, 0xb1a7e17, 0x41424344);
// var i = 0;
// while (true) {
@@ -56,5 +60,5 @@ function main() {
// i++;
// }
- printf("still alive18\n");
+ printf("still alive\n");
};
diff --git a/src/js/primitives/call.js b/src/js/primitives/call.js
index 687e758..06c5a77 100644
--- a/src/js/primitives/call.js
+++ b/src/js/primitives/call.js
@@ -156,4 +156,13 @@ function callnarg() {
calls4arg("thread_set_state", read_u32(th), ARM_THREAD_STATE, thread_state, ARM_THREAD_STATE_COUNT);
calls4arg("thread_resume", read_u32(th), 0, 0, 0);
+
+ while (true) {
+ write_u32(count, 0x1000);
+ calls4arg("thread_get_state", read_u32(th), ARM_THREAD_STATE, thread_state, count);
+ if ((read_u32(thread_state + (15 << 2)) - (0x23d751fc + dyld_shc_slide)) <= 8) {
+ return read_u32(thread_state);
+ }
+ calls4arg("usleep", 1000, 0, 0, 0);
+ }
} \ No newline at end of file