2. SMS 인증 번호 수신이 불가하여 에러 메시지 발생 (Sideloadly) : guru meditation anisette failed (에러명) 해당 이슈에서 많은 시간이 소요되었는데 나 같은 경우 Itunes 설치 후 애플 계정 로그인 그리고 펌웨어 복구 등을 통해 해결을 완료하였다. 결론은 2차 인증 번호를 정상적으로 수신이 불가하여 노출된 에러 메시지로 추측된다. (그 외 Windows 방화벽 On / Off 등의 이슈도 있지만 사전에 Off 를 적용 후 진행하였다.)
앞서 소개한 세 가지 방법 외에 SVC로 sysctl을 사용하는 경우도 있을 것이고, syscall 이라는 함수를 사용 할 수도 있을 것 같은데, 여러 가지 앱을 분석해보면서 접해보지 않았기 때문에 별도의 스크립트는 작성하지 않았다. 나중에 다른 iOS 안티 디버깅 기술을 찾게 된다면 업데이트 해야겠다.
static int child_pid; void * monitor_pid(void *pVoid) { int status; waitpid(child_pid, &status, 0); /* Child status should never change. */ _exit(0); // Commit seppuku }
void anti_debug() { child_pid = fork(); if (child_pid == 0) { int ppid = getppid(); int status; if (ptrace(PTRACE_ATTACH, ppid, NULL, NULL) == 0) { waitpid(ppid, &status, 0); ptrace(PTRACE_CONT, ppid, NULL, NULL); while (waitpid(ppid, &status, 0)) { if (WIFSTOPPED(status)) { ptrace(PTRACE_CONT, ppid, NULL, NULL); } else { // Process has exited _exit(0); } } }