windows手工杀毒-寻找可疑进程之线程

2024-09-07 06:36

本文主要是介绍windows手工杀毒-寻找可疑进程之线程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上篇回顾:windows手工杀毒-寻找可疑进程之进程模块-CSDN博客
        上篇我们介绍了如何通过进程模块寻找可疑进程,进程模块文件按照PE格式存储,我们可以使用IDA等静态分析(不需要运行文件,只看文件内容)工具分析文件行为,也可以使用windbg,x64debug等动态分析(运行文件)文件行为,也可以根据文件所属公司,文件路径等文件相关信息寻找可疑进程。今天介绍如何通过线程寻找可疑进程。

术语介绍:

线程:

通过前几篇的介绍,我们知道进程是一整套运行时占用的资源的集合体,他是个逻辑概念。可以简单理解为是一个仓库的管理人员,他记录着仓库中有哪些货物,这些货物都放在哪,但是真正去搬运,去使用这些货物的不是他,而是线程。线程负责真正执行可执行文件的代码,从哪里开始执行,怎么执行等等。

如何获取进程的线程列表

使用之前介绍的ProcExp.exe,view->lower panel view->Threads查看线程列表

注:有人反馈看到的线程列表,模块列表是空的,这种情况下需要以管理员权限运行该工具,如果还看不到列表那可能存在黑客对抗,可能是工具被注入了,也可能中了rootkit

图中展示了DouyuUpdate.exe进程的线程列表。TID是线程唯一标识符

如何发现可疑线程

1. 通过线程开始时间发现可疑线程

我们通过右键选中进程,查看进程属性,在属性面板中可以看到进程启动时间。通常线程启动时间和进程启动时间是临近的,如果某个线程的启动时间与进程相距很远且与恶意行为发生的时间很紧近,那这就是个可疑的线程。

线程一定在进程启动的临近时间启动吗?这倒也不是,主要看线程的用途,比如一些周期性任务,像软件运行情况的收集,资源文件的写入或释放,不过这类线程通常是在执行某些动作后进入等待状态,等待指定时间间隔或信号后再次执行,所以TID通常是不会变化的。

2. 通过线程数量发现可疑线程

通常进程稳定运行一段时间后他的线程数量也是稳定的,如果我们发现一个进程的线程数量在不行的变化,那可能需要重点关注下这个进程。这种情况也要看进程是干什么的,还需要结合线程开始地址进一步判断

3. 通过线程开始地址发现可疑线程

从上面的截图中我们可以看到线程的开始地址。这个地址通常是在某个模块的偏移处,如果线程的开始地址不属于任意一个模块范围内,那这就是可疑线程。比如通过进程注入技术,在进程空间内手动分配内存,写入恶意代码并执行的情况。我们还可以按照上篇介绍的方法分析下线程开始地址所在的模块是否是恶意模块

这篇关于windows手工杀毒-寻找可疑进程之线程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144334

相关文章

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Spring Boot3虚拟线程的使用步骤详解

《SpringBoot3虚拟线程的使用步骤详解》虚拟线程是Java19中引入的一个新特性,旨在通过简化线程管理来提升应用程序的并发性能,:本文主要介绍SpringBoot3虚拟线程的使用步骤,... 目录问题根源分析解决方案验证验证实验实验1:未启用keep-alive实验2:启用keep-alive扩展建

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多