CleasbyCode/pdvrdt
GitHub: CleasbyCode/pdvrdt
一款利用 PNG 数据块而非像素进行文件隐藏的隐写术命令行工具,支持加密压缩与多平台兼容。
Stars: 19 | Forks: 0
# pdvrdt
***pdvrdt*** 是一个快速、易用的隐写术命令行工具,用于通过 PNG 图像隐藏和提取任何文件类型。
此外还有一个 [***Web 版***](https://cleasbycode.co.uk/pdvrdt/app/),你可以立即使用它,作为下载和编译 CLI 源代码的便捷替代方案。Web 文件上传限制为 **20MB**。

*图像:“Wolf” / ***PIN: 1856140514119088821****
与常见的在载体图像像素内隐藏数据的隐写方法 ([***LSB***](https://ctf101.org/forensics/what-is-stegonagraphy/)) 不同,***pdvrdt*** 将文件隐藏在 ***PNG*** 图像的各种 ***块*** 中,例如 iCCP 和 IDAT。
你可以隐藏最大 ***2GB*** 的任何文件类型,尽管兼容的托管站点(*如下所列*)有其各自 ***更小*** 的尺寸限制和 *其他要求。
为了增加存储容量和更好的安全性,你嵌入的数据文件会使用 ***zlib*** 压缩,并使用 ***libsodium*** 加密库进行加密。
## 用法 (Linux)
```
$ sudo apt install libsodium-dev
$ chmod +x compile_pdvrdt.sh
$ ./compile_pdvrdt.sh
Compiling pdvrdt (hardened release build)...
Compilation successful. Executable 'pdvrdt' created.
$ sudo cp pdvrdt /usr/bin
$ pdvrdt
Usage: pdvrdt conceal [-m|-r]
pdvrdt recover
pdvrdt --info
$ pdvrdt conceal your_cover_image.png your_secret_file.doc
Platform compatibility for output image:-
✓ X-Twitter
✓ ImgPile
✓ PostImage
✓ ImgBB
✓ Flickr
Saved "file-embedded" PNG image: prdt_12462.png (143029 bytes).
Recovery PIN: [***2166776980318349924***]
Important: Keep your PIN safe, so that you can extract the hidden file.
Complete!
$ pdvrdt recover prdt_12462.png
PIN: *******************
Extracted hidden file: your_secret_file.doc (6165 bytes).
Complete! Please check your file.
```
## 兼容平台
*发布大小限制以载体图像 + 压缩数据文件的总大小衡量:*
* ***Flickr*** (**200MB**), ***ImgBB*** (**32MB**), ***PostImage*** (**32MB**), ***Reddit*** (**19MB** | ***-r 选项***),
* ***Mastodon*** (**16MB** | ***-m 选项***), ***ImgPile*** (**8MB**), ***X-Twitter*** (**5MB** + ****尺寸限制,见下文***)
*X-Twitter 图像尺寸限制:*
* ****PNG-32/24*** (*真彩色*) **68x68** 最小 - **900x900** 最大.
* ***PNG-8*** (*索引色*) **68x68** 最小 - **4096x4096** 最大.
https://github.com/user-attachments/assets/76732196-815b-45ac-b71d-6e1aca672e25
https://github.com/user-attachments/assets/7a1557d1-4772-4d3d-94a6-ec58d0977a59
*图像致谢:***“Red_Dragon / [@ultra_arcane](https://x.com/ultra_arcane)”****
pdvrdt ***模式*** 参数:
***conceal*** - 压缩、加密你的秘密数据文件并将其嵌入到 ***PNG*** 载体图像中。
***recover*** - 从 ***PNG*** 载体图像中解密、解压并提取隐藏的数据文件。
pdvrdt ***conceal*** 模式平台选项:
"***-m***" - 要创建用于在 ***Mastodon*** 平台上发布的兼容“*文件嵌入*”***PNG*** 图像,你必须在 ***conceal*** 模式下使用 ***-m*** 选项。
```
$ pdvrdt conceal -m my_image.png hidden.doc
```
"***-r***" - 要创建用于在 ***Reddit*** 平台上发布的兼容“*文件嵌入*”***PNG*** 图像,你必须在 ***conceal*** 模式下使用 ***-r*** 选项。
```
$ pdvrdt conceal -r my_image.png secret.mp3
```
在 ***Reddit*** 网站上,选择“***Create Post***”,然后选择“***Images & Video***”标签,以附加并发布你的 ***PNG*** 图像。
要从 ***X-Twitter*** 或 ***Reddit*** 正确下载图像,请在保存前点击帖子中的图像将其完全展开。
## 第三方库
本项目使用了以下第三方库:
- **LodePNG** 由 Lode Vandevenne 开发
- 许可证:zlib/libpng (见 [***LICENSE***](https://github.com/lvandeve/lodepng/blob/master/LICENSE) 文件)
- 版权所有 (c) 2005-2024 Lode Vandevenne
- [**libsodium**](https://libsodium.org/) 用于加密功能。
- [**LICENSE**](https://github.com/jedisct1/libsodium/blob/master/LICENSE)
- 版权所有 (c) 2013-2025 Frank Denis (github@pureftpd.org)
- **zlib**: 通用压缩库
- 许可证:zlib/libpng 许可证 (见 [***LICENSE***](https://github.com/madler/zlib/blob/develop/LICENSE) 文件)
- 版权所有 (C) 1995-2024 Jean-loup Gailly 和 Mark Adler
##
标签:C++, CLI, CTF工具, DNS 反向解析, ESC8, Libsodium, meg, PNG图片, Steganography, WiFi技术, Zlib压缩, 信息安全, 图片处理, 数据擦除, 数据隐匿, 数据隐藏, 文件加密, 机密性, 漏洞搜索, 社会工程学, 网络信息收集, 网络安全, 隐写术, 隐私保护