我们让这个客户抱怨产品在正常运行2-5分钟后不断崩溃。经过几天的猜测,但我们得出以下结论:
当进程终止而没有留下任何痕迹(事件日志/崩溃转储)时,有两种选择:
1.我们自己的过程正在调用TerminateProcess()
2.有人在杀死我们。
要捕获自杀式调用堆栈(情况1),您只需运行“Adplus -crash -CTCFG…”
las,这无助于解决我们的客户问题。
我们开始在客户耳边低语,“也许有人在杀死我们,也许是病毒之类的东西……?!”。
客户对此表示怀疑(“幽灵/病毒/守护程序?”),但是在被赶出去之前,我们被Sysadmin认罪了。
他想起了一个脚本,他们正在定期运行以监视我们的流程。该脚本错误地认为我们被绞死了,并迫使进程终止(Yack!)。
现在出现问题:
对于下一次,我们想要一种工具或技术来捕获谁杀死了我们的流程?
(我知道有一些黑客工具可以避免被杀死,但是我只想记录串行杀手进程PID / NAME是什么。)
他们有官方/非黑客的方式吗?
最佳答案
您需要在系统调用上安装一个钩子(Hook)。您也可以阻止这些通话。不能完全确定它是否是非黑客方式:)