当前位置: 首页 > article >正文

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

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

术语介绍:

线程:

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

如何获取进程的线程列表

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

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

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

如何发现可疑线程

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

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

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

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

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

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

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


http://www.kler.cn/a/293478.html

相关文章:

  • 使用kalibr_calibration标定相机(realsense)和imu(h7min)
  • 【金融风控】特征评估与筛选详解
  • Xcode 16 使用 pod 命令报错解决方案
  • PHP API如何使用access_token开放接口有效期
  • 【循环神经网络】
  • 通过脚本,发起分支合并请求和打tag
  • 如何在Selenium中使用Chrome DevTools进行交互
  • python的sqlalchemy使用@contextmanager来定义上下文管理器
  • shell脚本编程(正则表达式与grep +awk+sed+expect详解)
  • OpenCV中的颜色映射函数
  • [pytorch] --- pytorch基础之损失函数与反向传播
  • VUE3父子组件传参
  • Requests库对session的支持
  • PHP 项目流水线部署与错误问题解决
  • U盘数据危机应对:详解文件或目录损坏无法读取的恢复之道
  • SpringMVC启动与请求处理流程解析
  • 将网页保存为PDF---不分页
  • GIT | git提交注释自动添加信息头
  • echarts动态切换数据渲染(vue3 + echarts)
  • 5G移动网络运维实验(训)室解决方案
  • 逻辑回归与线性回归的目标函数和应用场景比较
  • 坐牢第三十六天(QT)
  • iOS——Block与内存管理
  • Kafka 实战演练:创建、配置与测试 Kafka全面教程
  • 《Python爬虫逆向实战》加密方法远程调用(RPC)
  • TRIZ在充电桩安全中的应用探究