본문 바로가기
Security/Reversing

[Win32 API] PAGE_GUARD예외 처리특성을 통한 안티디버깅

by Winduck 2016. 11. 17.
반응형

이 안티 디버깅을 알기 위해서는 다음 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 ]

[서적 : 리버싱핵심원리]

반응형

'Security > Reversing' 카테고리의 다른 글

[Anti-VM] - 어셈블리 STR편  (0) 2018.01.14
PEB구조체 LDR을 이용한 Kernel32.dll주소 찾기.  (0) 2017.12.07
Zw API와 Nt API의 차이  (0) 2017.05.11
[AntiVM 탐지 우회]  (0) 2017.03.27
※함수호출규약  (0) 2017.03.15

댓글