Security/Reversing
[Win32 API] PAGE_GUARD예외 처리특성을 통한 안티디버깅
Winduck
2016. 11. 17. 01:05
반응형
이 안티 디버깅을 알기 위해서는 다음 Windows의 예외처리 특징에 대해 알아야한다.
※Windows가 프로세스에 대한 예외를 처리할 경우 2가지로 나뉘며 특징은 다음과 같다.
1.일반적인 실행의 경우 : 예외처리를 프로세스에 맡긴다.(프로그래머 정의 : try-except문)
2.디버거에서 실행될 경우 : 예외처리를 디버거에게 맡긴다. 이 경우 프로그래머가 정의한 예외처리문은 거치지 않는다.
두차이를 이용하여 악성코드는 의도된 예외를 발생시키는데 예외에 사용되는 용도로 PAGE_GUARD를 사용한다.
PAGE_GUARD는 메모리 보안속성인데 PAGE_GUARD가 설정된 메모리에 접근할경우 예외가 발생한다.
Win32 API인 VirtualProtect의 3번째 parameter를 사용하여 메모리의 보안속성을 PAGE_GUARD로 설정할 수 있다.
악성코드는 PAGE_GUARD가 걸린 메모리에 접근하여 예외를 발생시킨다. 디버거에서 실행될 경우 Windows는 예외처리를 디버거에게 맡기기 때문에
제작자의 예외처리문은 진행되지 않고 이것을 통하여 디버깅을 탐지하게 된다.
<차단화면>
※참고
[블로그 : http://ezbeat.tistory.com/220 ]
[서적 : 리버싱핵심원리]
반응형