X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/ad9b5f33fa57cb70f654e335c4ad8919613ff6d9..9968a2d6394d8d1c1724e78068a11490d790c20f:/Mach/Inject.cpp diff --git a/Mach/Inject.cpp b/Mach/Inject.cpp index 74e5b30..feb2c3c 100644 --- a/Mach/Inject.cpp +++ b/Mach/Inject.cpp @@ -53,7 +53,13 @@ extern "C" void CYHandleServer(pid_t); void InjectLibrary(pid_t pid) { Dl_info addr; _assert(dladdr(reinterpret_cast(&CYHandleServer), &addr) != 0); - const char *library(addr.dli_fname); + + size_t flength(strlen(addr.dli_fname)); + char library[flength + 4 + 1]; + memcpy(library, addr.dli_fname, flength); + library[flength] = '\0'; + _assert(strcmp(library + flength - 6, ".dylib") == 0); + strcpy(library + flength - 6, "-any.dylib"); mach_port_t self(mach_task_self()), task; _krncall(task_for_pid(self, pid, &task));