CleasbyCode/jdvrif

GitHub: CleasbyCode/jdvrif

一款基于 JPG 应用数据段的隐写术命令行工具,支持加密压缩并兼容主流社交平台传输。

Stars: 64 | Forks: 1

# jdvrif ***jdvrif*** 是一个快速、易用的隐写术命令行工具,用于通过 **JPG** 图像隐藏和提取任何文件类型。 此外还有一个 [***Web 版本***](https://cleasbycode.co.uk/jdvrif/app/),你可以立即使用,作为下载和编译 CLI 源代码的便捷替代方案。Web 文件上传限制为 **20MB**。 ![Demo Image](https://github.com/CleasbyCode/jdvrif/blob/main/demo_image/jrif_323291.jpg) *演示图像:**“藏身之处”** / ***PIN: 2190398302048725932**** 与常见的在载体图像像素内隐藏数据的隐写方法([***LSB***](https://ctf101.org/forensics/what-is-stegonagraphy/))不同,***jdvrif*** 将文件隐藏在 ***JPG*** 图像的 ***application segments*** 中。 你可以隐藏最大 ***2GB*** 的任何文件类型,尽管兼容站点(*如下所列*)有各自 ***更小*** 的大小限制和 *其他要求。 为了增加存储容量和安全性,你嵌入的数据文件会使用 ***zlib*** 进行压缩,并使用 ***libsodium*** 加密库进行加密。 ***jdvrif*** 部分源于安全研究员 ***[David Buchanan](https://www.da.vidbuchanan.co.uk/)*** ***[实施的技术](https://www.vice.com/en/article/bj4wxm/tiny-picture-twitter-complete-works-of-shakespeare-steganography)***。 ## 用法 (Linux) ``` Note: Compiler support for C++23 required. $ sudo apt install libsodium-dev libturbojpeg0-dev $ chmod +x compile_jdvrif.sh $ ./compile_jdvrif.sh Compiling jdvrif... Compilation successful. Executable 'jdvrif' created. $ sudo cp jdvrif /usr/bin $ jdvrif Usage: jdvrif conceal [-b|-r] jdvrif recover jdvrif --info $ jdvrif conceal your_cover_image.jpg your_secret_file.doc Platform compatibility for output image:- ✓ X-Twitter ✓ Tumblr ✓ Mastodon ✓ Pixelfed ✓ PostImage ✓ ImgBB ✓ ImgPile ✓ Flickr Saved "file-embedded" JPG image: jrif_129462.jpg (143029 bytes). Recovery PIN: [***2166776980318349924***] Important: Keep your PIN safe, so that you can extract the hidden file. Complete! $ jdvrif recover jrif_129462.jpg PIN: ******************* Extracted hidden file: your_secret_file.doc (6165 bytes). Complete! Please check your file. ``` ## 兼容平台 *发布大小限制以 ***载体图像*** + ***压缩数据文件*** 的 ***组合*** 大小衡量:* ● ***Flickr*** (**200MB**), ***ImgPile*** (**100MB**), ***ImgBB*** (**32MB**), ● ***PostImage*** (**32MB**), ***Reddit*** (**20MB** | ***-r 选项***), ***Pixelfed*** (**15MB**). *大小限制 ***仅*** 按 ***压缩数据文件大小*** 衡量:* ● ***Mastodon*** (**~6MB**), ***Tumblr*** (**~64KB**), ***X-Twitter*** (**~10KB**). 例如,对于 ***Mastodon***,如果你的载体图像是 **1MB**,你仍然可以嵌入最大 **~6MB** 大小限制的数据文件。 **其他:***Bluesky*** 平台对 ***载体图像*** 和 ***压缩数据文件*** 有 ***单独的*** 大小限制:** ● ***Bluesky*** (***-b 选项***)。载体图像大小限制 (**800KB**)。压缩数据文件大小限制 (**~171KB**)。 ● 需要 "***bsky_post.py***" 脚本才能在 ***Bluesky*** 上发布图像。*更多信息在页面下方。* 对于像 ***X-Twitter*** 和 ***Tumblr*** 这样有较小大小限制的平台,你可能需要关注压缩效果好的数据,例如文本文件等。 https://github.com/user-attachments/assets/8d21cdbb-30f0-424c-aeb8-bcacca8c4255 https://github.com/user-attachments/assets/b2cc33ff-b2c2-46c2-960b-f7b9ba65223d jdvrif ***mode*** 参数: ***conceal*** - 压缩、加密你的秘密数据文件,并将其嵌入到 ***JPG*** 载体图像中。 ***recover*** - 从 ***JPG*** 载体图像中解密、解压并提取隐藏的数据文件。 jdvrif ***conceal*** 模式 ***platform*** 选项: "***-b***" 要创建用于在 ***Bluesky*** 平台上发布的兼容“*嵌入文件*” ***JPG*** 图像,你必须在 ***conceal*** 模式下使用 ***-b*** 选项。 ``` $ jdvrif conceal -b my_image.jpg hidden.doc ``` 这些图像仅兼容在 ***Bluesky*** 上发布。如果在其他平台上发布,你嵌入的数据文件将被移除。 你还需要使用 Python 脚本 ***"bsky_post.py"***(位于仓库 ***src*** 文件夹中)将图像发布到 ***Bluesky***。 如果你通过浏览器网站或移动应用将图像发布到 ***Bluesky***,它将无法工作。 要使用该脚本,你需要从你的 ***Bluesky*** 账户创建一个 [***app password***](https://bsky.app/settings/app-passwords)。 以下是 ***bsky_post.py*** 脚本的一些基本用法示例。 发布到你的 bsky 个人资料的标准图像帖子: ``` $ python3 bsky_post.py --handle you.bsky.social --password xxxx-xxxx-xxxx-xxxx --image your_image.jpg --alt-text "alt-text here (optional)" "standard post text here (required)" ``` 如果你想发布多张图像(最多 4 张): ``` $ python3 bsky_post.py --handle you.bsky.social --password xxxx-xxxx-xxxx-xxxx --image img1.jpg --image img2.jpg --alt-text "alt_here" "standard post text..." ``` 如果你想把图像作为对另一个帖子的回复发布: ``` $ python3 bsky_post.py --handle you.bsky.social --password xxxx-xxxx-xxxx-xxxx --image your_image.jpg --alt-text "alt_here" --reply-to https://bsky.app/profile/someone.bsky.social/post/8m2tgw6cgi23i "standard post text..." ``` https://github.com/user-attachments/assets/b4c72ea7-40e3-49b0-89aa-ae2dd8ccccb9 "***-r***" 要创建用于在 ***Reddit*** 平台上发布的兼容“*嵌入文件*” ***JPG*** 图像,你必须在 ***conceal*** 模式下使用 ***-r*** 选项。 ``` $ jdvrif conceal -r my_image.jpg secret.mp3 ``` 在 ***Reddit*** 网站上,选择 "***Create Post***",然后选择 "***Images & Video***" 标签,以附加并发布你的 ***JPG*** 图像。 这些图像仅兼容在 ***Reddit*** 上发布。如果在其他平台上发布,你嵌入的数据文件将被移除。 要正确地从 ***X-Twitter*** 或 ***Reddit*** 下载图像,请先点击帖子中的图像使其完全展开,然后再保存。 https://github.com/user-attachments/assets/f56f54bb-658f-4b0e-a2f3-7d3428333304 ## 第三方库 本项目使用了以下第三方库: - **libsodium**: 用于加密功能。 - [**LICENSE**](https://github.com/jedisct1/libsodium/blob/master/LICENSE) - Copyright (C) 2013-2025 Frank Denis (github@pureftpd.org) - libjpeg-turbo (参见 [***LICENSE***](https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/LICENSE.md) 文件) - {本软件部分基于 Independent JPEG Group 的工作。} - Copyright (C) 2009-2024 D. R. Commander. All Rights Reserved. - Copyright (C) 2015 Viktor Szathmáry. All Rights Reserved. - **zlib**: 通用压缩库 - License: zlib/libpng license (参见 [***LICENSE***](https://github.com/madler/zlib/blob/develop/LICENSE) 文件) - Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler ##
标签:C++23, CLI, CTF工具, DNS 反向解析, JPG图片, libsodium, meg, Steganography, Web版, WiFi技术, zlib, 信息安全, 加密, 图像隐藏, 图片伪装, 数字取证, 数据压缩, 数据脱敏, 数据隐藏, 文件隐藏, 漏洞扫描器, 漏洞搜索, 网络安全, 自动化脚本, 逆向工具, 隐写术, 隐私保护, 隐蔽数据