구조적예외핸들러
Exploit writing tutorial part3 : SEH base exploit
앞서 shellcode로 점프할 수 있는 여러 방법에 대해서 알아보았다. 이번에는 조금 특별한 방법인 SEH기반의 오버 플로우 공격을 알아볼 것이다. 먼저 예외 핸들러에 대해 알아보자. 프로그램이 실행되는 도중 여러 예외가 발생 가능하다. 예를 들면 0으로 나누거나 stack overflow가 발생하는 경우 등이 있을것이다. 이러한 경우 예외 핸들러가 동작하며 해당 예외 발생에 대처한다. 일반적인 예외처리 매커니즘은 아래와 같다. try { //run stuff. If an exception occurs, go to code } catch { // run stuff when exception occurs } 이렇게 핸들러가 추가된 뒤 스택의 구조는 아래와 같다. 윈도우에서는 기본적으로 예외들을 처리할 수..