흔히 해커들이,
GDB를 이용한 메모리 덤프를 통해 해킹을 시도.
이를 차단하기 위한 기본적인 방법,
GDB 접근 차단.
될 수 있는 한 main() 시작 전 가까운 곳에서 호출해야 한다는 것 같으나
(이를 우회하고 inspecting 하는 방법도 있지 않을까?
아직 관련하여 깊이 있게 알지 못하니 일단 기본적인 지침이라도 따르고 본다...)
방법은 아래와 같다.
#include <sys/ptrace.h>
#include <sys/types.h>
ptrace(PT_DENY_ATTACH, 0, 0, 0);
iOS 의 경우 OSX 과 사용방법이 다르다.
#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);
}
출처 : https://www.theiphonewiki.com/wiki/Bugging_Debuggers
'Mobile > iOS 개발 팁' 카테고리의 다른 글
[iOS] iOS 11 1024x1024 Artwork App Store Icon 문제 (0) | 2017.10.26 |
---|---|
[iOS] Undeclared selector Warning 제거하기 (0) | 2017.10.11 |
Storyboard Reference 는 iOS 9 부터 (0) | 2015.12.16 |
[CocoaPods] 멀티 타겟 문제점. (0) | 2015.11.25 |
iOS 강제 종료에 대하여... (0) | 2015.07.19 |