constWORLDant

코드 가상화 개인 공부 [0x06] 본문

0x03 Reversing Theory

코드 가상화 개인 공부 [0x06]

data type ConS_tanT 2017.12.26 01:43

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로 디버깅되고 있는지의 여부를 탐지 

0 Comments
댓글쓰기 폼