티스토리 뷰

[Reversing] UnHandledExceptionFilter 


참조

https://www.codeproject.com/Articles/30815/An-Anti-Reverse-Engineering-Guide#UnhandledExceptionFilter

https://sanseolab.tistory.com/16


Access Violation가 발생하여 계속 따라 가다보니 처음 본 함수를 발견하여 정리한다.


일반적으로 디버깅 중이라면 UnHandledExceptionFilter()는 실행 되지 않는다고 한다.

필자도 역시 먼저 예외 발생 후 KiUserExceptionDispatcher()에서 UnHandledExceptionFilter() 내부에서 ZwQueryInformationProcess()를 호출하였다.

예외가 발생하고 진행하다보니 결국 ZwQueryInformationProcess() 나온 이유가 있었다.


NTSTATUS WINAPI ZwQueryInformationProcess(

  _In_      HANDLE           ProcessHandle,

  _In_      PROCESSINFOCLASS ProcessInformationClass,

  _Out_     PVOID            ProcessInformation,

  _In_      ULONG            ProcessInformationLength,

  _Out_opt_ PULONG           ReturnLength

); 

추가적으로 ZwQueryInformationProcess()의 디버깅 유무에 관련하여 정리한다. 

함수의 두번째 멤버인 ProcessInformationClass값이 0x7 면 세번째에 있는 output인 ProcessInformation가 가르키는 주소에 FFFFFFFF 값이 나오게 된다. 

해당 값을 받으면 프로세스가 종료하기 때문에 해당 값을 0으로 수정이 필요하다.

댓글
댓글쓰기 폼
공지사항
«   2020/09   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
Total
156,826
Today
20