NotMyFault 是一款由微软 Sysinternals 团队开发的工具,主要用于模拟系统崩溃的情况。主要用于教学目的,帮助开发者学习如何识别和诊断设备驱动程序和硬件问题。通过使用 NotMyFault,可以故意使系统崩溃或冻结,并生成蓝屏转储文件(也称为 dmp 文件),这些文件可以用来分析系统崩溃的原因。
下载地址:https://download.sysinternals.com/files/NotMyFault.zip
用法:
notmyfaultc.exe crash crash_type_num
- 0x01: 高级中断请求级别 (High IRQL) 错误(内核模式)。在高 IRQL 下修改不应该被修改的内存区域。
- 0x02: 缓冲区溢出。尝试写入超出缓冲区边界的内存。
- 0x03: 代码覆盖。尝试修改执行代码所在的内存区域。
- 0x04: 栈垃圾。向栈中写入随机数据。
- 0x05: 高级中断请求级别 (High IRQL) 错误(用户模式)。与 0x01 类似,但在用户模式下发生。
- 0x06: 栈溢出。尝试让栈溢出。
- 0x07: 硬编码断点。在代码中插入一个断点。
- 0x08: 双重释放 (Double Free)。释放已经释放过的内存块。
notmyfaultc.exe hang hang_type_num
- 0x01: 使用 I/O 请求包 (IRP) 挂起。模拟一个永远不会完成的 IRP,导致系统挂起。
- 0x02: 使用延迟过程调用 (DPC) 挂起。模拟一个永远不会完成的 DPC,导致系统挂起。
GUI: