2010-03-01 2 views
2

따라서 C# 코드에서 관리되지 않는 .dll 파일에서 함수를 호출합니다. 함수에 전달 된 인수에 따라 "런타임 확인 실패 # 0 - ESP 값이 올바르지 않습니다"라는 오류가 발생할 수 있습니다.이 함수에 대한 정상적인 동작입니다 (예, 이상하게 들리지만 나와 곰). 그러나 이런 일이 발생하면 예외를 처리하는 것처럼 처리 할 수 ​​있기를 원합니다. 정상적으로 실패하고 사용자에게 메시지를 출력하고 전체 프로그램이 손상되는 것을 피하십시오. 이것이 가능합니까?"런타임 확인 실패 # 0 - ESP 값이 올바르지 않음"

답변

1

GS 플래그를 사용하는 경우 함수 __set_security_error_handler을 호출하여 동작을 재정의 할 수 있습니다. 이를 통해 GS 플래그 및 기타 보안 오류가 발} 할 때 호출되는 함수를 지정할 수 있습니다.

나는 이것에 대해 매우 조언한다. ESP를 정기적으로 손상시키는 기능은 실제 문제처럼 들립니다. 또한이 기능을 재정 의하여 다른 실제 보안 문제를 숨길 수 있습니다.

더 나은 해결책은 개별 메소드를 알몸으로 표시하고 GS 검사가 발생하지 못하게하는 것입니다.

+0

내가 그냥 별도의 스레드에서 함수 호출을 고수한다면? 스레드가 충돌했는지 감지하는 방법이 있습니까? –

관련 문제