像防病毒一样处理自我防御

时间:2010-12-29 14:07:10

标签: security defensive-programming

我为防御系统,防病毒反恶意软件等编写程序。我在通过杀死管理器杀死防御过程时遇到了问题 - >杀死进程。我测试了一些防病毒,他们不让我杀死他的过程。我只能阻止他们服务。我如何为我的程序创建这种防御。谢谢!

2 个答案:

答案 0 :(得分:2)

通过调用TerminateProcess(Win32 API)来完成停止进程。默认情况下,无法终止在不同于发出TerminateProcess调用的进程的安全上下文下运行的进程。

可以配置用户模式运行服务(使用服务控制管理器),以便在有人杀死服务时重新启动它。但是,如果您不希望从服务控制管理器界面或使用“net stop”命令停止服务,则可以在创建服务时适当地设置SERVICE_STATUS结构的“dwControlsAccepted”字段。

还要考虑到,即使它是先前启用调试权限的服务或系统进程,也可以结束任何进程。此权限分配给管理员,并在访问令牌中禁用。虽然任务管理器不使用调试权限,但KILL实用程序(随Windows资源工具包提供)可以使用。

答案 1 :(得分:0)

您观察到的服务应用程序很常见,即您需要为此提供服务。

防病毒软件通常使用多个内核模式驱动程序(网络过滤器,文件系统过滤器等),它们还具有检查用户模式进程是否可用的附加功能,如果没有,则重新启动它(它们还控制执行)国家服务)。

此外,服务还可以监控UI流程的存在并重新启动它。而UI过程又可以检查服务的状态。并行停止两个进程是非常棘手的(虽然可能),所以这个方案也可以工作。

我猜你会来到同一个架构。

但总的来说,rootkit会绕过所有这些技巧,而rootkit则是现代计算机面临的最大威胁。