【应急响应】探究beaconEye扫描原理

💡 原文中文,约10100字,阅读约需24分钟。
📝

内容提要

该项目由三个主要部分组成:main.go、beaconEye文件夹和win32main.go。main.go是程序入口,beaconEye包含核心扫描代码和配置文件,process.go用于获取系统进程信息。程序通过多线程扫描内存,识别恶意进程并输出结果。

🎯

关键要点

  • 该项目分为三个主要部分:main.go、beaconEye文件夹和win32main.go。
  • main.go是程序入口,执行后根据文件中的顺序进行扫描。
  • beaconEye文件夹包含核心扫描代码和配置文件,主要文件包括beaconEye.go和config.go。
  • process.go用于获取系统进程信息,主要通过GetProcesses函数遍历当前系统进程。
  • 程序通过多线程扫描内存,识别恶意进程并输出结果。
  • 主函数创建通道用于数据传输,启动goroutine进行扫描,并打印扫描结果。
  • FindEvil函数获取所有进程并存储到切片中,使用searchIn和searchOut通道进行搜索任务。
  • 使用sunday算法在指定进程内存块中搜索匹配模式,并将结果存储在ResultArray中。
  • SearchMemoryBlock函数实现了内存搜索,遍历所有进程并跳过自身进程进行扫描。

延伸问答

beaconEye项目的主要组成部分是什么?

该项目由main.go、beaconEye文件夹和win32main.go三个主要部分组成。

main.go文件的作用是什么?

main.go是程序的入口文件,执行后根据文件中的顺序进行扫描。

如何获取当前系统的进程信息?

通过process.go中的GetProcesses函数遍历当前系统进程,获取进程信息。

程序是如何识别恶意进程的?

程序通过多线程扫描内存,使用sunday算法在指定进程内存块中搜索匹配模式来识别恶意进程。

FindEvil函数的主要功能是什么?

FindEvil函数获取所有进程并存储到切片中,随后进行内存搜索以识别恶意进程。

程序如何处理搜索结果?

程序通过searchOut通道输出搜索结果,并在主函数中打印扫描结果。

➡️

继续阅读