🛡️ StegaSuite

مخفی‌سازی امن فایل‌ها با رمزنگاری AES-256 — هر فایلی را درون هر فایلی پنهان کن

AES-256-GCM اندروید + ویندوز تم‌های رنگی مختلف پشتیبانی از زبان‌های مختلف ۳۰+ فرمت پشتیبانی بدون نیاز به روت متن‌باز
⬇️ دانلود اندروید (APK) ⬇️ دانلود ویندوز (EXE) 🌐 English ⭐ ستاره به پروژه

StegaSuite چیست؟یک ابزار متن‌باز برای مخفی‌سازی امن فایل‌ها روی اندروید

StegaSuite یک اپلیکیشن اندرویدی متن‌باز است که با استفاده از تکنیک Steganography (نهان‌نگاری) امکان مخفی‌سازی هر نوع فایلی را درون فایل‌های دیگر فراهم می‌کند. برخلاف رمزنگاری معمولی که فقط محتوا را رمز می‌کند، StegaSuite وجود خود فایل مخفی شده را هم پنهان می‌کند — یعنی کسی که فایل حامل را می‌بیند، حتی نمی‌داند چیزی درونش پنهان شده!

📷 فایل حامل (تصویر/صدا/...)
+
📄 فایل مخفی شونده
→
🔑 رمز عبور (اختیاری)
→
🔒 فایل خروجی با ظاهر عادی
💡 چرا Steganography؟ رمزنگاری معمولی (مثل ZIP رمزدار) مشخص می‌کند که فایل رمز شده است. اما Steganography فایل رمز شده را درون یک فایل کاملاً عادی (مثلاً یک عکس) پنهان می‌کند. هیچ‌کس بدون داشتن ابزار مناسب نمی‌تواند بفهمد چیزی پنهان شده!

امکانات کلیدیچه چیزی StegaSuite را متفاوت می‌کند

🔐

رمزنگاری AES-256-GCM

فایل مخفی شده با استاندارد نظامی AES-256 رمز می‌شود. حتی اگر کسی مکانیزم مخفی‌سازی را پیدا کند، بدون رمز عبور قادر به خواندن محتوا نیست.

🎨

پشتیبانی از ۳۰+ فرمت

PNG, BMP, TIFF, WebP, WAV, MP3, MP4, PDF, ZIP و ده‌ها فرمت دیگر به عنوان حامل. فایل مخفی شونده هم هیچ محدودیتی ندارد.

🌍

رابط کاربری دوزبانه

پشتیبانی کامل از فارسی (RTL) و انگلیسی (LTR) با قابلیت جابجایی آنی بین زبان‌ها. طراحی مدرن با تم تاریک و روشن.

🧠

تشخیص هوشمند فرمت

نیازی به انتخاب دستی فرمت نیست. اپلیکیشن با خواندن Magic Bytes فایل حامل، فرمت را به صورت خودکار تشخیص می‌دهد.

📊

محاسبه ظرفیت

قبل از مخفی‌سازی، ظرفیت واقعی فایل حامل نمایش داده می‌شود تا بدانید حداکثر چه حجمی می‌توانید مخفی کنید.

⚡

بدون نیاز به روت

بدون نیاز به دسترسی روت یا جیلبریک. مستقیماً از GitHub Releases نصب و استفاده کنید (انتشار گوگل‌پلی به‌زودی).

آموزش مخفی‌سازی فایلقدم‌به‌قدم از انتخاب فایل تا ذخیره خروجی

گام ۱: انتخاب فایل حامل Carrier

فایل حامل فایلی است که فایل مخفی شونده درون آن پنهان می‌شود. این فایل بعد از مخفی‌سازی کاملاً عادی به نظر می‌رسد.

  1. اپلیکیشن را باز کنید. در حالت پیش‌فرض روی «مخفی‌سازی» (Hide) قرار دارد.
  2. در کارت اول روی دکمه «انتخاب فایل حامل» کلیک کنید.
  3. از فایل‌پیکر سیستم یک فایل انتخاب کنید (تصویر، صدا، ویدیو، PDF و...).
  4. اطلاعات فایل نمایش داده می‌شود: نوع فرمت، نام فایل، اندازه، و ظرفیت مخفی‌سازی.
⚠️ هشدار فرمت‌های Lossy اگر فایل حامل JPEG، WebP یا فرمت‌های فشرده با کیفیت از دست رفته باشد، یک هشدار نارنجی نمایش داده می‌شود. این فرمت‌ها ممکن است داده مخفی شده را خراب کنند. برای بهترین نتیجه از PNG یا BMP استفاده کنید.

گام ۲: انتخاب فایل مخفی شونده Payload

هر فایلی را می‌توانید مخفی کنید: متن، تصویر، صدا، ویدیو، PDF، ZIP و هر فرمت دیگری.

  1. در کارت دوم روی دکمه «انتخاب فایل مخفی شونده» کلیک کنید.
  2. فایل مورد نظر را انتخاب کنید.
  3. نام و اندازه فایل نمایش داده می‌شود.
✅ بدون محدودیت فرمتهیچ محدودیتی در نوع فایل مخفی شونده وجود ندارد. هر فایلی با هر پسوندی قابل مخفی‌سازی است.

گام ۳: تنظیم رمز عبور اختیاری

رمز عبور باعث می‌شود فایل مخفی شده علاوه بر مخفی بودن، با AES-256 هم رمز شود. این لایه امنیتی اضافه را Defense in Depth می‌نامند.

  1. در کارت سوم یک رمز عبور وارد کنید.
  2. با کلیک روی آیکون چشم 👁️ می‌توانید رمز را نمایش یا پنهان کنید.
  3. اگر رمز خالی بگذارید، فایل فقط با CRC32 ذخیره می‌شود (بدون رمزنگاری).
⚠️ رمز عبور را فراموش نکنید! اگر رمز عبور را فراموش کنید، امکان بازیابی فایل مخفی شده وجود ندارد. رمز را در جای امنی یادداشت کنید.

گام ۴: ذخیره فایل خروجی ذخیره

  1. روی دکمه «مخفی‌سازی و ذخیره» کلیک کنید.
  2. منتظر بمانید تا عملیات تمام شود (معمولاً چند ثانیه).
  3. فایل خروجی با نام photo(st).png ذخیره می‌شود (پسوند (st) اضافه می‌شود).
  4. روی لینک فایل ذخیره شده کلیک کنید تا آن را باز کنید.
📱
اسکرین‌شات محیط مخفی‌سازی
نمای کلی اپلیکیشن در حالت Hide با فایل حامل انتخاب شده

آموزش استخراج فایل مخفی شدهبازیابی فایل از درون فایل حامل

مراحل استخراج ساده

  1. روی آیکون قفل باز 🔓 در بالای صفحه کلیک کنید تا به حالت «استخراج» (Extract) بروید.
  2. فایل حاملی که فایل مخفی شده درونش پنهان شده را انتخاب کنید.
  3. اگر فایل با رمز عبور مخفی شده بود، رمز را وارد کنید.
  4. روی دکمه «استخراج فایل مخفی شده» کلیک کنید.
  5. فایل استخراج شده ذخیره و نمایش داده می‌شود.
💡 نکته مهم: تشخیص خودکار اپلیکیشن فایل مخفی شده را از روی Magic Bytes تشخیص می‌دهد، نه از پسوند فایل. یعنی حتی اگر نام فایل حامل را تغییر دهید یا پسوند آن را عوض کنید، استخراج همچنان کار می‌کند!
🔓
اسکرین‌شات محیط استخراج
نمای اپلیکیشن در حالت Extract با فایل حامل انتخاب شده

نسخه ویندوزهمان موتور، رابط دسکتاپ WPF — سازگار با اندروید

دانلود نسخه ویندوز Windows 10/11 x64

نسخهفایلتوضیح
نصبی (خودکفا)StegaSuite-Install-2.0.0.zipباز کن و Install.bat را اجرا کن (با ادمین → Program Files، بدون ادمین → نصب کاربرمحور). بدون نیاز به .NET
پرتابلStegaSuite-Portable-2.0.0.exeبدون نصب — فقط یک‌بار .NET 10 Desktop Runtime را نصب کن
✅ سازگاری کاملفرمت فایل‌ها یکسان است (SGP2 / SGF1 / SGA1)؛ فایلی که در ویندوز مخفی می‌کنی در اندروید باز می‌شود و برعکس (برای PNG/BMP/WAV).

⬇️ دانلود از Releases ویندوز  •  ریپوی StegaSuite-Windows

گام صفر: ورود / ساخت حساب فقط ویندوز

برنامه بدون ورود باز نمی‌شود (صفحه لاگین تمام‌صفحه):

  1. ثبت‌نام: نام کاربری + رمز + تکرار رمز → «ساخت حساب».
  2. کد بازیابی یک‌بارمصرف را همان لحظه یادداشت کن! با آن + فایل بکاپ (*.stegabak) می‌توانی رمز فراموش‌شده را برگردانی.
  3. ورود: نام کاربری + رمز، یا دکمه Google (مرورگر سیستم + PKCE).
  4. بکاپ: از ⚙️ تنظیمات → دریافت فایل بکاپ (رمزنگاری‌شده با AES-256-GCM). زبان/تم هر کاربر جدا ذخیره می‌شود.

مخفی‌سازی در ویندوز 🏠 تب خانه

  1. از سایدبار کپسولی تب 🏠 خانه را بزن (حالت پیش‌فرض).
  2. در کارت «فایل حامل» روی انتخاب فایل... کلیک کن — یا فایل را بکش و رها کن (درگ‌دراپ).
  3. نوع فرمت، نام، اندازه و ظرفیت مخفی‌سازی نمایش داده می‌شود.
  4. فایل مخفی‌شونده را در کارت دوم انتخاب کن (هر فرمتی، بدون محدودیت).
  5. رمز عبور را بگذار (پیشنهادی — با 👁️ نمایش/پنهان) یا خالی بگذار (فقط CRC32).
  6. روی «مخفی کن و ذخیره کن» کلیک کن؛ اسم پیشنهادی (st) دارد مثل photo(st).png. عملیات در History ثبت می‌شود.
⚠️ فرمت Lossyبرای نتیجه مطمئن در ویندوز هم از PNG / BMP / WAV استفاده کن؛ JPEG و WebP ممکن است دیتا را خراب کنند.

استخراج در ویندوز 🔓 تب استخراج

  1. از سایدبار تب 🔓 استخراج را بزن.
  2. فایل حامل را انتخاب کن (درگ‌دراپ هم می‌شود).
  3. اگر رمز گذاشته بودی، همان رمز را وارد کن.
  4. روی «استخراج فایل مخفی» کلیک کن — فایل با نام و پسوند اصلی ذخیره می‌شود.
💡 تب‌های دیگر:ℹ️ درباره • ✉️ تماس • ❤️ حمایت • ⚙️ تنظیمات (۵ زبان: فارسی، عربی، انگلیسی، روسی، چینی + ۹ تم تیره/روشن).

فرمت‌های پشتیبانی شدهلیست کامل فرمت‌های قابل استفاده به عنوان حامل و مخفی شونده

فرمت‌های حامل (Carrier) با کیفیت بالا

این فرمت‌ها به صورت بومی و با بالاترین کیفیت پشتیبانی می‌شوند:

فرمتپسوندروش مخفی‌سازیتوضیح
PNG.pngLSB پیکسلیبهترین گزینه — بدون افت کیفیت
BMP.bmpLSB پیکسلیکیفیت عالی، حجم بالا
WAV.wavLSB نمونه صوتیصدا بدون تغییر شنیداری

فرمت‌های حامل (Carrier) با احتیاط

این فرمت‌ها با روش Generic LSB پشتیبانی می‌شوند. برخی ممکن است باعث افت کیفیت شوند:

دسته‌بندیفرمت‌هاتوضیح
تصاویرTIFF, WebP, GIF, SVGبا تشخیص ساختار فایل، هدر پرش می‌شود
صداMP3, FLAC, OGG, M4A, AACپس از هدر فایل صوتی، LSB تغییر می‌کند
ویدیوMP4, AVI, MKV, MOV, WebMتشخیص اتم‌های MP4/Matroska
اسنادPDF, DOCX, XLSX, PPTX, TXTپرش تا %%EOF یا هدر فایل
آرشیوZIP, RAR, 7Z, TAR, GZپرش از هدر ۳۰ بایتی ZIP
کدJS, PY, TS, HTML, CSSپرش ۴ بایت از ابتدای فایل
⚠️ فرمت‌های Lossy فرمت‌های JPEG و WebP از فشرده‌سازی با افت کیفیت استفاده می‌کنند. اگر فایل حامل JPEG باشد، ممکن است داده مخفی شده خراب شود. برای نتیجه مطمئن از PNG یا BMP استفاده کنید.

فرمت‌های مخفی شونده (Payload) بدون محدودیت

📄 اسنادPDF, DOCX, XLSX, PPTX, TXT, CSV, JSON, XML, Markdown
🖼️ تصاویرPNG, JPG, GIF, BMP, SVG, WebP, TIFF
🎵 صداMP3, WAV, FLAC, OGG, M4A, AAC
🎬 ویدیوMP4, AVI, MKV, MOV, WebM
📦 آرشیوZIP, RAR, 7Z, TAR, GZ
💻 کدJS, PY, TS, HTML, CSS, Java, Kotlin

جزئیات رمزنگاریچگونه فایل شما محافظت می‌شود

لایه اول: مخفی‌سازی (Steganography) LSB

فایل مخفی شده در کم‌اهمیت‌ترین بیت‌ها (Least Significant Bit) فایل حامل قرار می‌گیرد. این تغییر آنقدر کوچک است که با چشم غیرمسلح یا ابزار معمولی قابل تشخیص نیست.

تصاویرهر پیکسل ۳ کانال RGB دارد. بیت آخر هر کانال تغییر می‌کند. تغییر رنگ: حداکثر ۱ از ۲۵۵.
صداهر نمونه صوتی LSB دارد. تغییر صدا: غیرقابل تشخیص با گوش انسان.
فایل عمومیبیت آخر هر بایت پس از هدر فایل تغییر می‌کند.

لایه دوم: رمزنگاری (Encryption) AES-256-GCM

اگر رمز عبور تنظیم شده باشد، داده قبل از مخفی‌سازی با AES-256-GCM رمز می‌شود:

پارامترمقدارتوضیح
الگوریتمAES/GCM/NoPaddingرمزنگاری تصدیق شده (Authenticated Encryption)
اندازه کلید256 bitsامن در برابر حملات کوانتومی فعلی
استخراج کلیدPBKDF2WithHmacSHA256استاندارد استخراج کلید از رمز عبور
تعداد تکرار600,000مقاوم در برابر brute-force
Salt16 bytesتصادفی با SecureRandom
Nonce (IV)12 bytesتصادفی با SecureRandom
تگ GCM128 bitsتصدیق یکپارچگی داده

ساختار فایل خروجی فناوری

هر فایل مخفی شده دارای ساختار زیر است:

binary structure
┌─────────────────────────────────────────────────┐
│  Magic Bytes: SGP2 / SGF1 / SGA1  (4 bytes)    │  ← تشخیص نوع فایل مخفی
│  Payload Length                    (8 bytes)    │  ← اندازه داده مخفی شده
│  ┌───────────────────────────────────────────┐  │
│  │  Encrypted/CRC'd Payload                 │  │  ← داده رمز شده یا CRC
│  │  ┌─────────────────────────────────────┐  │  │
│  │  │  Filename Length      (4 bytes)     │  │  │  ← طول نام فایل
│  │  │  Filename (UTF-8)    (≤1024 bytes) │  │  │  ← نام اصلی فایل
│  │  │  File Content         (N bytes)     │  │  │  ← محتوای اصلی فایل
│  │  └─────────────────────────────────────┘  │  │
│  └───────────────────────────────────────────┘  │
└─────────────────────────────────────────────────┘

تشخیص فرمت با Magic Bytes هوشمند

اپلیکیشن برای جلوگیری از خرابی فایل حامل، هدر فرمت‌ها را شناسایی و از آن‌ها رد می‌شود:

فرمتMagic Bytesبایت امن (Safe Offset)
JPEGFF D8متغیر — تا SOS/EOI اسکن می‌کند
PDF25 25 (%%)متغیر — تا %%EOF اسکن می‌کند
ZIP50 4B 03 0430
RAR52 69 63 6812
Matroska1A 45 DF A34
GIF47 49 4613
TIFF49 49 2A 00 / 4D 4D 00 2A8
سایر—4 (پیش‌فرض)

محاسبه ظرفیتچقدر فایل می‌توانید مخفی کنید

فرمول‌های محاسبه ظرفیت

نوع حاملفرمولمثال
PNG/BMP(عرض × ارتفاع × 3) ÷ 8تصویر ۱۹۲۰×۱۰۸۰: ≈ ۷۷۷ کیلوبایت
WAV(تعداد نمونه × کانال‌ها) ÷ 8صدای ۱۰ ثانیه ۴۴.۱kHz: ≈ ۲۵۹ کیلوبایت
عمومی(اندازه فایل - بایت امن) ÷ 8فایل ۱ مگابایتی: ≈ ۱۲۲ کیلوبایت
💡 نکته مهم حداکثر ظرفیت مفید کمی کمتر از ظرفیت خام است. اپلیکیشن ۵۰ بایت اضافی برای هدر و سربار رمزنگاری کنار می‌گذارد. همچنین اگر رمز عبور تنظیم شود، اندازه داده رمز شده کمی بیشتر از داده اصلی خواهد بود (به خاطر Salt, Nonce, و GCM Tag).

راهنمای سریع ظرفیت کاربردی

🖼️ تصویر ۱۲ مگاپیکسل≈ ۴.۳ مگابایت ظرفیت — برای مخفی‌سازی یک سند PDF یا چند عکس کافی است.
🎵 صدای ۱ دقیقه WAV≈ ۱.۵ مگابایت ظرفیت — برای مخفی‌سازی یک فایل متنی یا چند تصویر کوچک کافی است.
📄 فایل ۱ مگابایتی≈ ۱۲۲ کیلوبایت ظرفیت — برای مخفی‌سازی یک فایل متنی یا چند تصویر کوچک کافی است.

محدودیت‌ها و نکات مهماین موارد را قبل از استفاده بخوانید

محدودیت‌های فنی

محدودیتتوضیحراه‌حل
حداکثر اندازه فایل فایل مخفی شده حداکثر ۵۰ مگابایت باشد فایل را فشرده (ZIP) کنید یا بخش‌های کوچک‌تر بسازید
طول نام فایل نام فایل حداکثر ۱۰۲۴ بایت (حدود ۳۴۰ حرف فارسی) نام‌های کوتاه‌تر استفاده کنید
فرمت‌های Lossy JPEG و WebP ممکن است داده را خراب کنند از PNG یا BMP استفاده کنید
ظرفیت محدود اندازه فایل مخفی شده به اندازه فایل حامل بستگی دارد فایل حامل بزرگ‌تر انتخاب کنید
فایل‌های ویرایش شده اگر فایل حامل بعد از مخفی‌سازی ویرایش شود (مثل crop عکس)، داده خراب می‌شود فایل حامل را دستکاری نکنید
V1 Legacy فایل‌های مخفی شده با نسخه قدیمی‌تر نام فایل اصلی را ندارند از نسخه جدید استفاده کنید

هشدارهای امنیتی مهم

  • رمز عبور را فراموش نکنید: بدون رمز عبور، امکان بازیابی فایل وجود ندارد.
  • رمز عبور قوی انتخاب کنید: از ترکیب حروف، اعداد و نمادها استفاده کنید.
  • فایل حامل را ذخیره کنید: فایل حامل تنها کلید بازیابی فایل مخفی شده است.
  • از اشتراک‌گذاری مستقیم خودداری کنید: فایل حامل را از طریق ایمیل یا پیام‌رسان ارسال نکنید — ممکن است فشرده یا ویرایش شود.
  • نسخه پشتیبان بگیرید: همیشه یک نسخه پشتیبان از فایل حامل داشته باشید.

بهترین شیوه‌ها پیشنهاد

✅ از PNG استفاده کنیدبهترین فرمت برای مخفی‌سازی بدون افت کیفیت و بدون خطر خرابی.
✅ رمز عبور قوی بگذاریدلایه امنیتی اضافه حتی اگر مکانیزم مخفی‌سازی کشف شود.
✅ فایل حامل را تغییر ندهیدهرگونه ویرایش، فشرده‌سازی یا تغییر پسوند ممکن است داده را خراب کند.
❌ از JPEG استفاده نکنیدفرمت Lossy است و ممکن است داده مخفی شده را از بین ببرد.

عیب‌یابی و سؤالات متداول۹۰٪ مشکلات یکی از این‌هاست

نشانهعلت احتمالیراه‌حل
خطا در استخراج: «پسورد اشتباه یا فایل خراب» رمز عبور اشتباه یا فایل حامل ویرایش/فشرده شده رمز را دوباره بررسی کنید. مطمئن شوید فایل حامل تغییر نکرده.
خطا: «فایل خراب است» فایل حامل با فشرده‌سازی یا ویرایش آسیب دیده از نسخه اصلی فایل حامل استفاده کنید. از PNG استفاده کنید.
ظرفیت کافی نیست فایل حامل کوچک‌تر از فایل مخفی شونده است فایل حامل بزرگ‌تر انتخاب کنید یا فایل مخفی شونده را فشرده کنید.
فایل خروجی باز نمی‌شود فرمت فایل خروجی با اپلیکیشن پیش‌فرض سازگار نیست فایل را با اپلیکیشن مناسب باز کنید (مثلاً PNG با نمایشگر تصویر).
«پسورد خالی است» فیلد رمز عبور خالی گذاشته شده یا رمز وارد کنید، یا فیلد را خالی رها کنید (بدون رمزنگاری).
نام فایل نمایش داده نمی‌شود فایل با نسخه قدیمی‌تر (V1) مخفی شده نام فایل استخراج شده «recovered_file» خواهد بود. طبیعی است.

مقایسه با ابزارهای مشابه

ویژگیStegaSuiteابزارهای مشابه
رمزنگاریAES-256-GCMمعمولاً AES-128 یا بدون رمزنگاری
فرمت‌های حامل۳۰+ فرمتعمدتاً PNG/JPEG
تشخیص فرمتخودکار با Magic Bytesدستی یا فقط پسوند
رابط کاربریفارسی و انگلیسیعمدتاً انگلیسی
متن‌بازبلهمعمولاً خیر
پشتیبانی V1/V2backward compatibleمعمولاً خیر

نکات پیشرفتهبرای کاربران حرفه‌ای

نسخه‌های فرمت فناوری

نسخهMagicویژگی
V1 LegacySGP1بدون ذخیره نام فایل — نام خروجی: «recovered_file»
V2 CurrentSGP2شامل نام فایل اصلی UTF-8
File V1SGF1مخفی‌سازی عمومی فایل‌ها (غیرتصویری)
Audio V1SGA1مخفی‌سازی در فایل‌های صوتی WAV
💡 سازگاری معکوسنسخه جدید قادر به استخراج فایل‌های V1 قدیمی است. اما نسخه قدیمی قادر به استخراج فایل‌های V2 جدید نیست.

ساختار بیتی LSB فناوری

LSB Encoding
Original pixel:  R=10110100  G=11001011  B=01101010
                                        ↑       ↑       ↑
LSB hidden:      R=1011010**0** G=1100101**1** B=0110101**0**
                                         ↑       ↑       ↑
                                         └───────┴───────┘
                                         3 bits per pixel
                                         تغییر رنگ: حداکثر 1/255

Capacity: width × height × 3 bits ÷ 8 = bytes