본문으로 바로가기

[API 기반] FindWindow

category Reversing/Anti Debugging 2015. 3. 25. 11:23

FindWindow를 이용한 안티 디버깅
FindWindow는 Caption이나 Class Name으로 윈도우를 찾는 함수. 디버거가 가지고 있는 Caption이나 Class Name으로 윈도우를 찾아서 

핸들이 반환되면 디버거가 실행 중임을 의미.(아래 화면은 Spy++로 OllyDbg의 윈도우 정보를 검색한 내용)

 

MSDN

lpClassName : Class Name
lpWindowName : Caption Name
반환 값 : 해당 윈도우를 찾았을 경우 윈도우 핸들 반환, 찾지 못할 경우 0 반환 

 

소스 코드

 

안티 디버깅 우회 방법

1. FindWindow로 전달되는 인자를 존재하지 않는 이름으로 수정
2. FindWindow로 전달되는 반환 값을 0으로 수정
3. 디버거의 안티디버깅 플러그인 이용(ex : OllyDbg의 OllyAdvanced Plug-In을 이용)


Reference
MSDN : https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx