3

我们让这位客户抱怨说,产品在正常运行 2-5 分钟后不断崩溃。花了几天的时间猜测,但我们得出以下结论:
当进程终止而不留下任何痕迹(事件日志/崩溃转储)时,有两种选择:
1.我们自己的进程正在调用 TerminateProcess()
2.其他人正在杀死我们。

要捕获自杀式调用堆栈(案例 1),您只需要运行“Adplus -crash -CTCFG ...”
,唉,这无助于解决我们的客户问题。

我们开始对我们的客户耳语,“也许有人在杀死我们,也许是病毒或其他什么……?!”。
客户对此持怀疑态度(“幽灵 / 病毒 / 守护进程?”),但就在我们被踢出去之前,我们被一些系统管理员的供词所救。他想起了他们定期运行的脚本来监控我们的进程。该脚本错误地认为我们被绞死并强制终止进程(Yack!)。

现在问题来了:
下一次,我们想要一个工具或技术来捕捉谁正在杀死我们的进程?(我知道有一些黑客工具可以避免被杀,但我只想记录连环杀手进程 PID/NAME 是什么。)

他们有任何官方/非黑客的方式来做到这一点吗?

4

2 回答 2

1

您需要在系统调用上安装挂钩。您还可以阻止这些呼叫。不完全确定它是否是一种非黑客方式:)

于 2009-07-14T10:44:56.653 回答
0

如果我是你,我会记录应用程序的每次启动。流氓工具可能会定期杀死您的应用程序,如果您每 10 分钟或 10 秒(或任何设置)看到您的应用程序启动,它会引起您的注意。

据我所知,除了跟踪系统调用之类的问题之外,没有什么灵丹妙药可以解决这个问题,而且它很hacky,但它应该可以开箱即用。

于 2009-08-19T18:11:44.327 回答