CleasbyCode/wbpdv
GitHub: CleasbyCode/wbpdv
一款专为 WebP 图像设计的数据隐写工具,通过将机密文件压缩加密并注入图像元数据块而非像素中,实现隐蔽且安全的信息传递。
Stars: 7 | Forks: 0
# wbpdv
***wbpdv*** 是一个快速、易用的隐写术命令行工具,用于通过 **WebP** 图像隐藏任何文件类型。
我们还提供了一个 [***Web 版本***](https://cleasbycode.co.uk/wbpdv/app/),您可以立即使用它,作为下载和编译 CLI 源代码的便捷替代方案。

***图片来源:*** [***@blackowl777***](https://x.com/blackowl777) / ***PIN: 7438463291507255314***
与在覆盖图像的像素中隐藏数据的常见隐写方法 ([***LSB***](https://ctf101.org/forensics/what-is-stegonagraphy/)) 不同,***wbpdv*** 将文件嵌入到 ***WebP*** 图像的 ***Chunks***(块)中,例如 ***ICCP***、***EXIF*** 和 ***XMP***。
您可以隐藏任何最大为 ***1GB*** 的文件类型,尽管兼容网站(*如下所列*)有其自身的 ***小得多*** 的大小限制和 *其他要求。
为了增加存储容量和提供更好的安全性,您嵌入的数据文件将使用 ***zlib*** 进行压缩,并使用 ***libsodium*** 加密库进行加密。
## 使用方法 (Linux)
```
Note: Compiler support for C++23 required.
$ sudo apt install libsodium-dev zlib1g-dev libwebp-dev
$ chmod +x compile_wbpdv.sh
$ ./compile_wbpdv.sh
Compiling wbpdv...
Compilation successful. Executable 'wbpdv' created.
$ sudo cp wbpdv /usr/bin
$ wbpdv
Usage: wbpdv conceal [-b]
wbpdv recover
wbpdv --info
$ wbpdv conceal your_cover_image.webp your_secret_file.doc
Saved "file-embedded" WebP image: wbpdv_129462.webp (143029 bytes).
Recovery PIN: [***2166776980318349924***]
Important: Keep your PIN safe, so that you can extract the hidden file.
Complete!
$ wbpdv recover wbpdv_129462.webp
PIN: *******************
Extracted hidden file: your_secret_file.doc (6165 bytes).
Complete! Please check your file.
```
## 兼容平台
*发布大小限制以覆盖图像与压缩数据文件的总大小来衡量:*
● ***Mastodon*** (**16MB**)
● ***Tumblr*** (**9MB**)
● ***Bluesky*** (**~1MB** | ***-b option***)
wbpdv ***mode***(模式)参数:
***conceal*** - 压缩、加密您的秘密数据文件,并将其嵌入到 ***WebP*** 覆盖图像中。
***recover*** - 从 ***WebP*** 覆盖图像中解密、解压并提取隐藏的数据文件。
wbpdv ***conceal*** 模式的 ***platform***(平台)选项:
"***-b***" 要创建用于在 ***Bluesky*** 平台上发布的兼容“*内嵌文件*”的 ***WEBP*** 图像,您必须在 ***conceal*** 模式下使用 ***-b*** 选项。
```
$ wbpdv conceal -b my_image.webp hidden.doc
```
这些图像仅兼容在 ***Bluesky*** 上发布。如果您将其发布到其他平台,您嵌入的数据文件将被删除。
您还需要使用 Python 脚本 ***"bsky_post.py"***(*可在仓库的 ***src*** 文件夹中找到*)将图像发布到 ***Bluesky***。
如果您通过浏览器站点或移动应用将图像发布到 ***Bluesky***,它将无法正常工作。
要使用此脚本,您需要从您的 ***Bluesky*** 账户创建一个[***应用密码***](https://bsky.app/settings/app-passwords)。
向您的 bsky 个人资料发布图像的标准 ***bsky 脚本*** 示例:
```
$ python3 bsky_post.py --handle you.bsky.social --password xxxx-xxxx-xxxx-xxxx --image your_image.webp --alt-text "alt-text here (optional)" "standard post text here (required)"
```
https://github.com/user-attachments/assets/7c725045-b3f0-4bd1-890f-7810a721ca5c
https://github.com/user-attachments/assets/5520d223-e179-4ab1-81ee-bfd8a42197f2
https://github.com/user-attachments/assets/27a12ef6-de2d-4c7b-9bff-e85f2de18495
https://github.com/user-attachments/assets/ef39f5fc-caed-4bc7-a80d-ff478095415e
https://github.com/user-attachments/assets/39e89290-ac20-40b6-8a27-289f8680a3d2
## 第三方库
本项目使用了以下第三方库:
- **libsodium**:用于加密功能。
- [**LICENSE**](https://github.com/jedisct1/libsodium/blob/master/LICENSE)
- Copyright (C) 2013-2025 Frank Denis (github@pureftpd.org)
- **zlib**:通用压缩库
- License: zlib/libpng license (see [***LICENSE***](https://github.com/madler/zlib/blob/develop/LICENSE) file)
- Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler
- **WebP**:图像处理库,由 Google 开发。
- **Copyright**: Copyright 2010 Google Inc.
- **License**: BSD 3-Clause License (see [***LICENSE***](https://github.com/webmproject/libwebp?tab=BSD-3-Clause-1-ov-file#readme) file for details)
##
标签:C++23, CTF工具, libsodium, WebP, zlib压缩, 信息隐藏, 图像隐写, 密码学, 手动系统调用, 数字取证, 数据加密, 数据提取, 数据隐藏, 文件嵌入, 漏洞搜索, 网络安全, 自动化脚本, 逆向工具, 隐写术, 隐私保护, 非LSB隐写