본문으로 바로가기

Registry를 이용한 안티 디버깅

Debugger를 설치할 경우 Explorer의 메뉴에 추가하거나, JIT Debugger 설정, 디버거 자체 적인 레지스트리 사용에 의해 레지스트리에 디버거에 관련된 흔적이 남게 된다. 따라서 레지스트리에서 디버거에 대한 흔적을 검색하여 안티 디버깅을 수행할 수 있다. 여기서는 JIT Debugger로 OllyDbg, Immunity Debugger, IDA, WinDbg 중에 하나가 설정되어 있는 경우 디버거가 설치된 환경으로 가정하여 안티 디버깅을 수행.

 

소스 코드


안티 디버깅 우회 방법

1. Regstry 관련 함수 들의 인자로 디버거에 관련된 문자열이 전달될 경우 반환 값 수정
2. JIT Debugger에 대한 탐지만 있는 경우 JIT Debugger 해제

 

Reference

MSDN(RegOpenKeyEx) : https://msdn.microsoft.com/en-us/library/windows/desktop/ms724897(v=vs.85).aspx
MSDN(RegQueryValueEx) : https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx