Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct rfork_args {
- int flags;
- };
- struct execve_args {
- char* path:
- char* argv;
- char* envp;
- };
- int (*sys_rfork)(struct thread* td, struct rfork_args* uap) = get_syscall_function();
- int (*sys_execve)(struct thread* td, struct execve_args* uap) = get_syscall_function();
- sys_jailbreak(curthread());
- struct proc* mini_syscore = proc_find_by_pid(1);
- struct thread* mini_syscore_td = TAILQ_FIRST(mini_syscore->p_threads);
- struct rfork_args rarg;
- rarg.flags = 0x1030;
- sys_rfork(mini_syscore_td, &rarg);
- struct proc* child = proc_find_by_pid(mini_syscore_td->td_retval[0]);
- if (child) {
- struct thread* child_td = TAILQ_FIRST(child->p_threads);
- char path[50] = "/sys
- struct execve_args execarg;
- execarg.path = path;
- execarg.argv = NULL;
- execarg.envp = NULL;
- sys_execve(child_td, execarg);
- }
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement