murdok1982/fsociety
GitHub: murdok1982/fsociety
基于 Qwen2.5-Coder-1.5B 微调的轻量级本地大模型,专注于网络安全、漏洞利用与逆向工程领域的代码辅助与分析。
Stars: 3 | Forks: 1
## 目录
- [功能](#capacidades)
- [技术栈](#stack-técnico)
- [训练 Dataset](#dataset-de-entrenamiento)
- [安装说明](#instalación)
- [使用示例](#ejemplos-de-uso)
- [RAG 系统](#sistema-rag)
- [自定义 Fine-tuning](#fine-tuning-propio)
- [代码仓库](#repositorios)
- [许可证](#licencia)
## 功能
| 领域 | 能力 | 提示词示例 |
|---------|-----------|-------------------|
| 🐍 **编程** | 生成、审查和调试 Python/C/C++/Java/Go/Rust 代码 | "用 Python 写一个反向 shell" |
| 🔓 **Exploiting** | 缓冲区溢出、ROP chains、堆利用、格式化字符串 | "分析这段代码是否存在缓冲区溢出" |
| 🔬 **Reversing** | 二进制分析、反编译、逆向工程 | "解释这个 x86 汇编函数的作用" |
| 🛡️ **网络安全** | OWASP Top 10、系统加固、审计、CTF writeups | "如何缓解 Web 应用中的 SQL Injection?" |
| 💉 **Shellcode** | 为 x86/x64/ARM 生成和分析 shellcode | "创建一个在 x64 Linux 上执行 /bin/sh 的 shellcode" |
| 🕵️ **OSINT** | 信息收集技术、足迹分析 | "被动侦察应该使用哪些工具?" |
| 🔐 **密码学** | 加密算法的实现与分析 | "用 Python 实现带有 PKCS7 填充的 AES-256-CBC" |
| ⚡ **性能优化** | 代码优化、性能分析、高效算法 | "将这个 O(n²) 的搜索函数优化到 O(n log n)" |
## 技术栈
| 层级 | 技术 |
|------|-----------|
| 🧠 **基础模型** | [Qwen2.5-Coder-1.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-1.5B-Instruct) |
| 🎯 **Fine-tuning** | 在所有线性层应用 LoRA (rank=32, alpha=64, dropout=0.1) |
| 🏋️ **训练** | Google Colab T4 (batch=2, grad_accum=4, ~20K steps) |
| 📊 **Dataset** | 169,258 个 ChatML 格式的样本 |
| 📦 **量化** | Q8_0 (GGUF) — 1.53 GB |
| 🚀 **推理** | Ollama (CPU,在 16GB RAM 下约 4-8 tokens/s) |
| 🔍 **RAG** | ChromaDB + sentence-transformers (22,536 chunks) |
## 训练 Dataset
精选自多个来源,旨在全面覆盖安全与编程领域:
```
📂 169,258 ejemplos ChatML
├── 📝 Programación (150,000+)
│ ├── CodeSearchNet Python 50,000
│ ├── Stack Exchange 100,000
│ └── TheAlgorithms 340
├── 📖 Documentación (569)
│ └── Python docs oficial 569
├── 💥 Exploiting (16,000+)
│ ├── PyCode-Vul (CVE) 14,000
│ ├── how2heap 370
│ ├── CTF writeups 883
│ └── Shellcode 718
└── 🛡️ Seguridad (2,200+)
├── SecureCode OWASP Web 1,900
└── SecureCode AI/ML 285
```
## 安装说明
### 选项 1 — 从 HuggingFace 安装(推荐)
```
ollama pull murdok1982/fsociety
ollama run fsociety
```
### 选项 2 — 使用本地 GGUF 文件
```
ollama create fsociety -f Modelfile
ollama run fsociety
```
### 选项 3 — 仅使用 LoRA 适配器
如果你想自己将其与基础模型合并:
```
from peft import PeftModel
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-Coder-1.5B-Instruct",
torch_dtype=torch.float16,
device_map={"": "cpu"}
)
model = PeftModel.from_pretrained(model, "murdok1982/fsociety-LoRA")
model = model.merge_and_unload()
model.save_pretrained("./fsociety-merged")
```
## 使用示例
### 直接命令行
```
ollama run fsociety "Crea un script Python que escanee puertos abiertos en una IP"
```
### 交互式聊天
```
ollama run fsociety
```
```
>>> Hola, ¿quién eres?
Soy fsociety, un asistente experto en ciberseguridad, reversing y exploiting.
Estoy aquí para ayudarte con análisis de código, desarrollo de exploits,
y técnicas de hacking ético. ¿En qué puedo ayudarte?
>>> Analiza este código C por vulnerabilidades:
void vulnerable() {
char buffer[64];
gets(buffer);
}
```
### 快速示例
| 提示词 | 作用 |
|--------|-------------|
| `"写一个 x64 Linux 的 TCP bind shellcode"` | 生成可用的 shellcode |
| `"解释 how2heap fastbin_dup_consolidate 中的堆 exploit"` | 分析堆利用技术 |
| `"什么是 ROP chain?如何构建?"` | 解释 exploiting 概念 |
| `"审计这段 Django 代码中的 OWASP 漏洞"` | Web 安全审查 |
| `"将这段 IDA 伪代码翻译为可读的 C 代码"` | 辅助 reversing |
| `"如何在 ARM64 中使用 mprotect 绕过 NX"` | 高级 exploit 技术 |
## RAG 系统
fsociety 结合了一个 **RAG 系统**,该系统索引了 22,536 个真实安全文档的片段:
```
📚 Fuentes indexadas
├── 🔧 how2heap → Técnicas de heap exploitation
├── 📝 CTF writeups → Soluciones de challenges reales
├── 🏛️ ExploitDB papers → Papers clásicos de seguridad
├── 🪲 Phrack 61 → La revista de hacking por excelencia
├── 🔬 Ghidra docs → Guías de reversing con Ghidra
└── 📦 Datasets JSONL → Datos estructurados de seguridad
```
### 使用方法
```
python chat_rag.py
```
RAG 会在回答之前自动搜索最相关的片段,将模型的训练知识与即时更新的文档结合起来。
## 自定义 Fine-tuning
如果你想使用自己的数据重新训练或微调模型:
1. 在 Colab 中打开 [colab_fsociety_finetune.ipynb](colab_fsociety_finetune.ipynb)
2. **Runtime → Change runtime type → T4 GPU**
3. 连接你的 HuggingFace token
4. **Run all**(在 T4 上约需 1.5 小时)
### 本地后续处理
在 Colab 上完成训练后,在你的 PC 上执行以下操作以进行合并、量化并导入到 Ollama:
```
.\fsociety_post_train.ps1
```
该脚本将执行以下操作:
1. 从 HuggingFace 下载 LoRA 适配器
2. 将其与 Qwen2.5-Coder-1.5B-Instruct 合并
3. 转换为 GGUF Q8_0 格式
4. 自动导入到 Ollama
**系统要求:** 至少 10 GB 可用 RAM,Python 3.10+,已安装 Ollama
## 代码仓库
| 资源 | 链接 | 描述 |
|---------|--------|-------------|
| 🤗 **完整模型** | [murdok1982/fsociety](https://huggingface.co/murdok1982/fsociety) | Safetensors (3.09 GB) + tokenizer |
| 🧩 **LoRA 适配器** | [murdok1982/fsociety-LoRA](https://huggingface.co/murdok1982/fsociety-LoRA) | 61 MB — 用于自定义合并 |
| 📊 **Dataset** | [murdok1982/gemma4-programacion-seguridad](https://huggingface.co/datasets/murdok1982/gemma4-programacion-seguridad) | 169,258 个 ChatML 样本 (347 MB) |
| 💬 **RAG** | [murdok1982/rag-fsociety](https://github.com/murdok1982/rag-fsociety) | 索引器 + 带有向量数据库的聊天 |
| 🐙 **主仓库** | [murdok1982/fsociety](https://github.com/murdok1982/fsociety) | 本仓库 |
## 许可证
```
MIT License
Copyright (c) 2026 Gustavo Lobato Clara
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files...
```
## 支持与赞助
我致力于构建专注于应用型 AI、自动化和数据智能的开源项目。
在我的 GitHub 上,你会发现诸如基于 AI 的分析引擎、用于开源研究的 OSINT 平台、Windows 自动化工具以及语言模型实验等项目。
所有这些都是公开且免费的,任何人都可以使用、学习或在此基础上进行构建。github.com/murdok1982
维持这些项目的运转需要投入大量的时间。如果其中任何一个项目对你有所帮助,或者你只是喜欢我正在做的事情,你可以请我喝杯咖啡来支持我:ko-fi.com/murdok1982
所有的赞助资金都将直接用于开发和发布更多的开源代码。
标签:AI风险缓解, DLL 劫持, 云资产清单, 人工智能, 大语言模型, 实时告警, 微调, 服务器监控, 用户模式Hook绕过, 网络安全, 逆向工具, 逆向工程, 隐私保护