Jaycelation/PTIT-Steganography-Project
GitHub: Jaycelation/PTIT-Steganography-Project
一个基于 Labtainer 平台的视频 DCT 系数域隐写教学实验项目,提供三个从隐写视频中逐步提取嵌入信息的动手实验。
Stars: 2 | Forks: 0
# PTIT Steganography 项目
此仓库包含关于在 DCT 系数域上对视频进行隐写的实验,主要侧重于修改 DC 和 AC 系数的技术。核心实现是为 Labtainer 提供的 3 个从隐写视频中提取信息的实验。
范围说明:
- 这些实验是使用 Python 在帧/视频和 DCT 系数上进行的模拟教学。
- 本项目不涉及对媒体播放器的攻击、自执行 payload、MP4 自动运行或编解码器漏洞利用。
- 这些实验不要求学生直接修改 MPEG/H.265/H.264 编解码器比特流。
## 1. 主要实验
| 实验 | 内容 | 指南 |
|---|---|---|
| `ac-midband-extract` | 从中频 AC 系数提取信息。 | [LAB_AC_MIDBAND_EXTRACT_GUIDE.md](LAB_AC_MIDBAND_EXTRACT_GUIDE.md) |
| `dc-ac-combined-extract` | 通过结合 DC 头部和 AC payload 的 pipeline 提取信息。 | [LAB_DC_AC_COMBINED_EXTRACT_GUIDE.md](LAB_DC_AC_COMBINED_EXTRACT_GUIDE.md) |
| `dc-ac-drift-extract` | 提取 DC/AC 并记录用于漂移分析的指标。 | [LAB_DC_AC_DRIFT_EXTRACT_GUIDE.md](LAB_DC_AC_DRIFT_EXTRACT_GUIDE.md) |
公开的 Labtainer 软件包已包含在以下目录中:
```
labtainer/ac-midband-extract.tar
labtainer/dc-ac-combined-extract.tar
labtainer/dc-ac-drift-extract.tar
```
## 2. 在 Labtainer 虚拟机中下载并运行实验
在 Labtainer 虚拟机的 student 目录中运行以下命令:
```
cd ~/labtainer/labtainer-student
```
### 实验 1:AC 中频提取
```
imodule https://github.com/Jaycelation/PTIT-Steganography-Project/raw/refs/heads/master/labtainer/ac-midband-extract.tar
labtainer -r ac-midband-extract
```
检查结果:
```
checkwork ac-midband-extract
```
### 实验 2:DC/AC 组合提取
```
imodule https://github.com/Jaycelation/PTIT-Steganography-Project/raw/refs/heads/master/labtainer/dc-ac-combined-extract.tar
labtainer -r dc-ac-combined-extract
```
检查结果:
```
checkwork dc-ac-combined-extract
```
### 实验 3:DC/AC 漂移提取
```
imodule https://github.com/Jaycelation/PTIT-Steganography-Project/raw/refs/heads/master/labtainer/dc-ac-drift-extract.tar
labtainer -r dc-ac-drift-extract
```
检查结果:
```
checkwork dc-ac-drift-extract
```
请参阅 [README_LABTAINER_VM.md](README_LABTAINER_VM.md) 了解更多在虚拟机中运行的说明。
## 3. 仓库结构
```
ac-coeff-midband/ Challenge nền cho lab AC.
dc-ac-combined/ Challenge nền cho lab DC/AC.
dc-coeff-warmup/ Challenge warmup về hệ số DC.
drift-compensation-basic/ Challenge mô phỏng drift compensation.
labtainer/ Template, gói build và file .tar cho Labtainer.
scripts/ Script build và kiểm tra package Labtainer.
videos/ Video demo dùng cho phát triển/thử nghiệm.
```
主要指南文件:
```
LAB_AC_MIDBAND_EXTRACT_GUIDE.md
LAB_DC_AC_COMBINED_EXTRACT_GUIDE.md
LAB_DC_AC_DRIFT_EXTRACT_GUIDE.md
README_LABTAINER_VM.md
LABTAINER_READINESS.md
LABTAINER_PROGRESS.md
```
## 4. 重新构建 Labtainer 包
在仓库的根目录下运行:
```
python scripts\prepare_labtainer_public.py
python scripts\run_all_lab_checks.py
```
`prepare_labtainer_public.py` 脚本将重新生成:
```
labtainer/build/ac-midband-extract/
labtainer/build/dc-ac-combined-extract/
labtainer/build/dc-ac-drift-extract/
labtainer/ac-midband-extract.tar
labtainer/dc-ac-combined-extract.tar
labtainer/dc-ac-drift-extract.tar
```
`run_all_lab_checks.py` 脚本会运行每个软件包中的辅助脚本,并检查 `checkwork` 所需的文件。
可以单独构建或检查每个实验:
```
python scripts\prepare_labtainer_public.py --lab ac-midband-extract
python scripts\run_all_lab_checks.py --lab ac-midband-extract
```
有效的实验名称:
```
ac-midband-extract
dc-ac-combined-extract
dc-ac-drift-extract
```
## 5. 基础挑战
除了 3 个主要的 Labtainer 实验外,仓库还保留了用于算法开发和测试的基础挑战:
| 挑战 | 重点 |
|---|---|
| `dc-coeff-warmup` | 修改 DC 系数。 |
| `ac-coeff-midband` | 使用中频 AC 系数嵌入/提取 payload。 |
| `dc-ac-combined` | 头部使用 DC,payload 使用 AC。 |
| `drift-compensation-basic` | 漂移模拟与偏差补偿。 |
运行基础挑战的快速示例:
```
cd ac-coeff-midband
python generate.py --flag "PTIT{ac_midband_test}" --seed 1337 --output output
python solve.py --input output/stego.mp4 --config output/public_config.json --output output/answer.txt
python checker.py --answer-file output/answer.txt
```
## 6. 分离学生端和教师端内容
学生端包只应包含:
- `solve.py`
- `src/` 目录
- `tools/` 目录
- 公开的隐写视频 `output/stego.mp4`
- 公开配置,如 `output/public_config.json` 以及 `output/hint.txt`(如果存在)
学生端包不应包含:
- `generate.py`
- `checker.py`
- `private/`
- `private_config.json`
- flag、答案或示例答案文件
- Python 缓存,如 `__pycache__/` 或 `.pyc`
当前的构建脚本已包含将这些文件从公开包中移除的步骤。
## 7. 备注
- 如果需要面向学生的详细指南,请使用第 1 部分中的 3 个独立指南文件。
- 如果需要检查 Labtainer 的打包状态,请参阅 [LABTAINER_READINESS.md](LABTAINER_READINESS.md)。
- 如果需要了解进度或近期的更改,请参阅 [LABTAINER_PROGRESS.md](LABTAINER_PROGRESS.md)。
标签:AC系数修改, CTF训练, DCT域隐写, DC系数修改, Labtainer, Midband提取, PTIT, Python, Steganography, 信息隐藏, 多媒体安全, 安全实验, 数字取证, 数据提取, 无后门, 漂移分析, 网络安全教育, 自动化脚本, 视频处理, 视频隐写, 逆向工具, 隐写术