上篇回顾:windows手工杀毒-寻找可疑进程之内存-CSDN博客
上篇中我们介绍了如果通过进程的内存分析进程是否是可疑进程,主要是通过查看是否有可写可执行的内存页。也可以通过查看内存内容,看是否是可疑内容,不过这个可能需要一定的安全经验。今天介绍一种新的判断可疑进程的方法。通过句柄确定可疑进程。
术语介绍:
句柄:
进程中记录着占用了系统哪些资源,比如打开了哪些文件,创建了哪些互斥体,读取了注册表哪些键值。总之就是进程持有的,系统资源的唯一标识
进程句柄:
Process 代表当前进程持有哪些进程,可以通过进程句柄读取其他进程内存,修改其他进程内存等
线程句柄:
Thread 代表当前进程持有哪些线程,可以通过线程句柄结束线程,挂起线程
注册表句柄:
Key 代表当前进程打开的注册表项,可以通过注册表句柄,设置,修改注册表的键值
事件,互斥体,信号量句柄:
event,mutex,semaphore,这些句柄可以用来做进程同步,进程通信,也可以用来做进程避免多开
如何查看进程句柄列表
我们以procexp.exe为例,具体见下图
如何确定可疑句柄
1. 通过句柄名称判断可疑句柄
我们在上图中能看到有的句柄后面是有名字的,有的句柄是没有名字的。软件通常会使用命名的句柄,可以当作全局的唯一标识符使用,比如判断进程是否重复开启。有的病毒会创建特定名称的文件,或事件。这些名字都可以用来确定句柄是否可疑
2. 进程是否持有其他进程的句柄或线程句柄
常规软件中很少出现打开别人进程,操作别人线程的情况。如果一个进程有大量的其他进程的句柄,他有可能是系统管理工具,也有可能是恶意进程
3. 通过文件句柄判断可疑进程
文件句柄代表进程使用了哪些文件,我们可以通过前面系列文章介绍的方法,分别查看句柄对应的文件是否是可疑文件