假设Windows,请参阅Application Verifier.
它可以进行故障注入(低资源模拟),使各种API调用以可配置的速率失败.例如堆分配,虚拟分配,WaitForXxx,注册表API,文件系统API等.
您甚至可以在启动期间未指定故障时指定宽限期(以毫秒为单位).
在Windows上,您可以将WinDbg附加到进程,损坏某些寄存器或内存并分离.例如,您可以将某些活动应用程序线程的指令指针设置为0.
windbg -pn notepad.exe
Run Code Online (Sandbox Code Playgroud)
在连接之后,当前线程被设置为调试线程,因此您需要更改为应用程序线程以使其与RIP寄存器更新崩溃
0:008> ~0s
0:000> rrip=0
0:000> qd
Run Code Online (Sandbox Code Playgroud)
您可以使用winapiexec该工具:
winapiexec64.exe CreateRemoteThread ( OpenProcess 0x1F0FFF 0 1234 ) 0 0 0xDEAD 0 0 0
替换1234为进程id并运行命令,进程会崩溃。