Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#include <sys/ptrace.h> не работает на реальном устройстве. Решение:#import <dlfcn.h>
#import <sys/types.h>
typedef int (* ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data);
#if !defined(PT_DENY_ATTACH)
#define PT_DENY_ATTACH 31
#endif // !defined(PT_DENY_ATTACH)
void disable_gdb() {
void * handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW);
ptrace_ptr_t ptrace_ptr = dlsym(handle, "ptrace");
ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0);
dlclose(handle);
}
main() добавить:#ifndef DEBUG
disable_gdb();
#endif
"ptrace" (домашнее задание). Всю эту инфу прислал автор одной статьи, которая лежит в песочнице и очень ждёт инвайта.
Ломаем iOS-приложение! Часть 2