2017. 12. 26. 01:43ㆍ0x03 Reversing Theory
Target AntiDebugging (특정한 타깃 = OllyDBG)
OllyDBG FindWindow
FindWindow() API를 사용해서 OllyDBG의 클래스명이 존재하는지를 조사하여 OllyDBG를 사용못하게 하는 방법
OllyDBG INT3 Exception Detection
INT3(BreakPoint)예외가 발생하기 전에 이에 대한 예외 핸들러를 등록하여 INT3 예외를 발생시키는 OllyDBG의 실행을 발견하는 방법
OllyDBG IsDebuggerPresent Detection
PEB의 BeingDebugged에 특정 값을 저장한 후에 OllyDBG에 의해 그 값이 변경된 경우 IsDebugger Present API를 사용하여 디버깅 중인지 체크
OllyDBG Memory Breakpoint Detection
메모리 영역에 PAGE_GUARD 속성을 설정하여 OllyDBG가 MemoryBreakPoint를 설정하면 예외가 일어나도록 하여 디버깅 중인지 체크한다.
OllyDBG NtQueryInformationProcess OllyDBG Detection
NtQueryInformationProcess를 사용하여 OllyDBG를 탐지함
OllyDBG OllyInvisible Detection
Anti-Debugging 기법들로부터 OllyDBG가 자신을 숨기기 위해 사용하는 OllyInvisible 플러그인이 CsrGetProcessID API를 후킹하여 항상 FALSE만을 리턴 시킨다는 점을 이용
OllyDBG OpenProcess HideDebugger Detection
OllyDBG의 HideDebugger 플러그인이 OpenProcess에 JMPFAR를 삽입한다는 점을 이용
OllyDBG OpenProcess String Detection
OpenProcess API를 이용하여 현재 실행중인 프로세스를 탐지하여 OLLY로 시작되는 프로세스를 탐지
OllyDBG Registry Key Detection
szOllyKey라는 WIndows 레지스트리를 검사하여 셋팅 유무에 따라 OllyDBG로 디버깅되고 있는지의 여부를 탐지
'0x03 Reversing Theory' 카테고리의 다른 글
온고지신 HWP 97 개념 (0) | 2018.01.08 |
---|---|
코드가상화 (0) | 2018.01.03 |
코드 가상화 개인 공부 [0x05] (0) | 2017.12.26 |
[dll injection] 친구 수업 자료 ^,^ (0) | 2017.12.22 |
코드 가상화 개인 공부 [0x04] (0) | 2017.12.20 |