의도적으로 Windows에서 외부 프로세스를 충돌시킵니다
-
20-09-2019 - |
문제
기본 코드 결함을 합성하고 싶습니다. 이것은 우리가 특히 일부 디버깅 출력이 발생할 때 어디에 있는지 확인할 수 있도록하기 위해서입니다.
PSKILL (SYS-Internals)은 우아한 출구를 유발합니다. DotCrash.exe는 더 이상 Microsoft에서 직접 사용할 수없는 것 같습니다.
프로세스에서 외부 적으로 충돌을 일으키는 방법이 있습니까?
해결책
WINDBG를 사용하기 전에 다음을 수행했습니다.
- 프로세스 시작
- WINDBG로 프로세스에 부착
- 내 앱의 기능 중 하나에 중단 점 설정
- 중단 점에 부딪 칠 때까지 앱을 실행합니다
- WINDBG에서 로컬 변수를 액세스 위반을 일으킬 수있는 것으로 설정합니다 (예 : 0xffffffff 또는 레지스터 값으로 뭉치에 대한 포인터를 설정)
- F5를 누르면 앱이 희망적으로 충돌해야합니다
다른 팁
당신이 원하는 것이 코드 럼프와 동일하다면 drwtsn32 -p ProcessId
런닝 프로세스의 현재 상태의 덤프를 생성합니다. 적절한 디버그 기호가있는 경우 귀중한 정보를 얻을 수 있습니다.
HTH.
Nick이 언급 한 바와 같이, 이것은 Windows 용 디버깅 도구를 통해 쉽게 수행 할 수 있습니다.하지만 한 걸음 더 나아가서 CDB (명령 줄 WINDBG)를 사용하여 전체 상호 작용을 스크립트합니다.
원하는 시간에 덤프가 필요한 경우, 훌륭한 UI가있는 Microsoft의 무료 디버그 진단 도구를 사용할 수 있습니다. drwtsn32 -p processid
jrbjazz가 추천합니다.
당신은 사용해 볼 수 있습니다 Createremotethread. 올바르게 사용하는 것은 쉽지 않지만 다른 프로세스 충돌은 매우 쉬워야합니다 ;-)
어떤 종류의 후크 기능을 설치하거나 같은 것을 사용할 수 있습니까? 우회 도서관?
제휴하지 않습니다 StackOverflow