]> git.saurik.com Git - cycript.git/blob - Trampoline.t.cpp
Implemented Mach injection: Cycript into any process.
[cycript.git] / Trampoline.t.cpp
1 #define _PTHREAD_ATTR_T
2 #include <pthread_internals.h>
3
4 #include "Baton.hpp"
5
6 void *Routine(void *);
7
8 extern "C" void Start(Baton *baton) {
9 struct _pthread self;
10 baton->_pthread_set_self(&self);
11
12 pthread_t thread;
13 baton->pthread_create(&thread, NULL, &Routine, baton);
14
15 void *result;
16 baton->pthread_detach(thread);
17
18 baton->thread_terminate(baton->mach_thread_self());
19 }
20
21 void *Routine(void *arg) {
22 Baton *baton(reinterpret_cast<Baton *>(arg));
23 baton->dlopen(baton->library, RTLD_LAZY | RTLD_GLOBAL);
24 return arg;
25 }