imaarov/steganov
GitHub: imaarov/steganov
一个用纯 C 语言编写的教育性隐写术项目,演示如何通过 LSB 技术将数据隐藏在数字媒体文件中并从零实现底层算法。
Stars: 0 | Forks: 0
# steganov
将你的数据隐藏在其他数据中
**steganov** 是一个完全使用 C 语言编写的教育性隐写术项目。它演示了如何使用最低有效位(LSB)技术将数据隐藏在常见的媒体格式中,同时还探讨了这些格式的内部结构。
与许多类似的项目不同,本仓库特意避免在所实现的算法中使用第三方库。诸如 CRC32、Adler32、Bitstream 处理、Huffman 编码、LZ77 以及 DEFLATE pipeline(包含了那么多该死的 RFC 1951 细节 ):)等组件,都是出于学习目的从零开始实现的。
## 文档
该仓库包含一个专门的 **[文档](/docs)** 目录,用于解释实现背后的概念,并记录了整个项目中使用的算法。
文档目前包含以下主题:
* 隐写术基础
* LSB 编码与解码
* 文件结构(“蓝图”)
* PNG chunk 解析
* CRC32
* Adler32
* Bitstream 实现
* Huffman 编码
* LZ77
* DEFLATE pipeline
* RFC 1951 规范
如果你想了解实现是*如何*运作的,而不仅仅是使用它,请从以下内容开始:
```
docs/README.md
```
然后继续阅读 `docs/` 目录中的各个文档。
## 命令
构建:
```
make
```
格式化:
```
make format
```
清理 obj 文件:
```
make clean
```
构建测试:
```
make test
```
运行测试
```
make run-test
# or
./bin/test_runner
```
解码并测试编码的 DEFLATE 字符串的预期字符串
```
./tools/validate_deflate.py
```
### 支持的媒体
- BMP
- WAV
- PNG
标签:DNS 反向解析, HTTP工具, meg, 信息安全, 学习项目, 客户端加密, 数据隐藏, 算法实现, 逆向工具, 隐写术