저는 다중 플랫폼 C++ 퍼징 응용 프로그램을 개발 중입니다. 앱이 하위 프로세스를 생성하고 예기치 않게 중지되었는지 확인합니다. 난 이미 리눅스 에서이 일을 관리했지만, 윈도우 예외 처리 메커니즘은 나를 위해 열심히하고있다.Windows에서 하위 프로세스 예외 잡기
내 코드는 지금 다음을 수행합니다. - CreateProcess를 호출하여 프로세스를 생성합니다. - WaitForSingleObject가 종료 될 때까지 기다리는 중입니다. - 그런 다음 GetExitCodeProcess를 호출하고 종료 코드가 예외에 해당하는지 확인하십시오.
모든 것이 정상적으로 작동하므로 테스트 응용 프로그램에서 dereferencing을 사용하여 테스트했습니다. 정상적으로 예외를 잡을 수 있습니다. 그러나, 내가 이것을 테스트 할 때마다 Windows 오류 메시지 상자에서 오류 보고서를 보내거나 보내지 말라고 알려줍니다. fuzzer는 자동 테스트 응용 프로그램으로 간주되기 때문에이 알림을 사용하지 않도록 설정해야합니다. 따라서 예외가 잡히더라도 fuzzer는 테스트를 계속할 수 있습니다.
SEH 처리기를 설치하려고했지만 이미 운이 없었습니다. (분명히 이러한 처리기는 하위 프로세스에 상속되지 않습니다.) vectored 예외 처리를 사용하는 것에 대해 뭔가 읽었지만 벡터 핸들러가 상속되지 않는다고 생각합니다.
누구든지이 문제를 해결해 줄 수 있습니까? 나는 무엇을 검색해야할지 모르겠다. 나는 이미 많이 봤는데 애니킹을 찾지 못했다.
감사합니다.
답변 해 주셔서 감사합니다. 일부 디버깅 API를 사용하려고 생각했지만 크래킹 및/또는 revering을 방지하기 위해 일부 디버깅 방지 메커니즘을 사용하는 일부 응용 프로그램이 fuzzer에서 디버깅 중임을 감지하면 동작을 수정할 수 있다고 생각했습니다. 다른 옵션을 찾을 수 없다면이 디버깅 메커니즘을 사용해야 할 것입니다. – mfontanini
리버스 엔지니어가 자신의 코드를 증명하려고하는 사람을 쏴 버릴 수있는 이유가 있습니다. –
그것은 일했다! 감사합니다. D – mfontanini