背景:
当下,计算机病毒种类繁多,数不胜数,正常PC机上运行有杀毒软件防护,会很大程度上防止计算机感染。
但是当软件运行在资源比较紧凑的环境下,不能安装现有主流杀毒软件时,往往会感到无可奈何。软件自带查杀病毒功能?别扯了,那将非常耗资源,可能连本软件进程的资源都抢占了。
由于工作关系,一直苦恼于LPK木马问题,木马病毒会在电脑开机时自动启动,生成几个hrl*.tmp的镜像程序并运行,时间长了就会非常耗资源,使得本公司软件申请不到资源而不能正常运行,工控机又不能安装主流杀毒软件,甚是头疼。
今天查看进程详细信息时,突然灵光一现,既然我不能去查杀病毒(也非常难以查杀干净),那为什么不在软件启动时或定时去查询一遍现有进程列表中是否有hrl*.tmp的进程在运行,如果在运行则杀掉它呢?那就能保证本次开机后运行的程序免收其影响。
于是亲自测试之,挺好使,现总结操作过程如下:
操作步骤:
1、首先确定病毒运行后的进程名,lpk病毒开机启动后,在进程列表中的名称是hrl*.tmp,其中*代表随机的数字和字母,如144、123、1ED、4EF等;
2、编写查杀进程函数:
/************************************************************************/
/*
名称: DealFindVirusesAndKillIt
功能: 检测指定病毒进程并杀掉进程入口函数
参数: 无
返回: 无
创建时间: 2016-12-07
作者: **攀*/
/************************************************************************/
void
CViruses_Protection::
DealFindVirusesAndKillIt()
{
//提升本程序进程的权限,以获取结束其他进程的句柄
AdjustProcessTokenPrivilege();
//杀掉csc.exe进程
int nPid =
FindProcess(_T("csc.exe"));
if (0 != nPid)
{
KillProcess(nPid);