
إخفاء 🕵️♂️ ملفاتك من أي نوع داخل صورة من اختيارك باستخدام إخفاء المعلومات
إخفاء أي نوع من الملفات داخل صورة من اختيارك
| الملف المراد إخفاؤه | الصورة الغلاف | الصورة الغلاف مع الملف المخفي |
|---|---|---|
![]() | ![]() |
أساسيات التخزين الرقمي
كل شيء على جهاز الكمبيوتر الخاص بك، من ملفات .exe إلى صور .jpg، يُخزَّن كبتات. البتات هي مجرد 1 و0. على سبيل المثال:
A = 01000001B = 01000010لذا، فإن ملفًا بحجم 1 جيجابايت هو في الواقع 8.5 مليار من 1 و0 مصطفة في صف واحد. يُطلق على هذا اسم ثنائي وهو أساس كل التخزين الرقمي.
البكسلات والألوان
تتكون الصور من بكسلات. يأتي لون كل بكسل من تنسيق RGB (أحمر، أخضر، أزرق). يتراوح كل قناة RGB من 0 إلى 255، مما يسمح بـ 256 قيمة. هذا النطاق يعادل 8 بتات (2^8 = 256)، لذا يمكن تمثيل كل قناة بـ 1 بايت.
مثال: البكسل الأحمر هو (0xFF, 0x00, 0x00) أو بالبتات 11111111 00000000 00000000.
إخفاء ملف في صورة
إخفاء ملف داخل صورة هو في الواقع أبسط مما يبدو. كل ما نحتاج إليه هو:
على سبيل المثال، إذا أخذنا أول 2 بت من ملف واستبدلناها في قناة بكسل، فإن البكسل الأحمر (11111111 00000000 00000000) يمكن أن يتغير إلى (11111111 00000000 00000011) دون اختلاف مرئي.
كرر هذه العملية لكل بكسل وكل بت في الملف، وها هي، الملف مخفي في الصورة!
جرب بنفسك
تحقق من مستودع Python المقدم للحصول على تنفيذ سهل الفهم لهذه العملية.
# Clone the repository
git clone https://github.com/JoshuaKasa/van-gonography.git
# Change the working directory to van-gonography
cd van-gonography
# Install the required dependencies
pip install -r requirements.txt
لتشغيل البرنامج في وضع واجهة المستخدم (أبسط وأسهل في الاستخدام ولكنه أقل فائدة للمطورين) ما عليك سوى تشغيل الأمر التالي:
python vangonography.py
لتشغيل البرنامج في وضع سطر الأوامر (أكثر تعقيدًا ولكن مع ميزات أكثر بقليل) ما عليك سوى تشغيل الأمر التالي:
python vangonography.py -cli
يمكنك بعد ذلك استخدام الوسائط التالية معه:
usage: vangonography.py [-h] [-ood] [-l] [-cli] [-o OUTPUT_DIR] [-v] [--encrypt] [--decrypt] [--key KEY] [--json JSON_FILE] [--stealth] [-s] [-e] [-d] [-c COVER_IMAGE]
[-f HIDDEN_FILE]
Van Gonography is a steganography tool that hides files in images.
options:
-h, --help show this help message and exit
Optional arguments:
-ood Open file after decoding from image (default: False)
-l, --log Log file for the program (default: False)
-cli Run the program in CLI mode, this means there's not gonna be any menu (default: False)
-o OUTPUT_DIR, --output OUTPUT_DIR
Output directory for the modified image or revealed file
-v, --version Show the version number and exit
--encrypt Encrypt the data before hiding it (default: False)
--decrypt Decrypt the data after revealing it (default: False)
--key KEY Key to decrypt the data (default: None)
--json JSON_FILE JSON file containing the arguments (default: None)
--stealth Hides the file in stealth mode (default: False)
Positional arguments (only used in CLI mode):
-s, --show Show the difference between two images (default: False)
-e, --encode Encode the file in the image (default: False)
-d, --decode Decode the file hidden in the image (default: False)
-c COVER_IMAGE, --cover COVER_IMAGE
Image to be used for hiding or revealing, positional only when using decoding, encoding or differentiate
-f HIDDEN_FILE, --file HIDDEN_FILE
File to be hidden
على سبيل المثال، إذا أردت إخفاء ملف باسم secret.txt داخل صورة باسم image.png وتريد حفظ الصورة المعدلة في مجلد باسم output، فستشغل الأمر التالي:
python vangonography.py -cli -e -c [المسار المطلق لصورة `image.png` الغلاف] -f [المسار المطلق لملف `secret.txt`] -o Output
سيؤدي هذا إلى إنشاء دليل باسم Output في نفس دليل البرنامج، وبداخله سيكون ملف باسم Cover_txt.png وهو الصورة المعدلة التي تحتوي على الملف المخفي بداخلها. إذا أردت فك تشفير الملف من الصورة، فستشغل الأمر التالي:
python vangonography.py -cli -d -c [المسار المطلق (أو لا) لصورة `Cover_txt.png` الغلاف] -o Output
إذا أردت أيضًا إنشاء ملف سجل log.log يحتوي على جميع المعلومات حول البرنامج، يمكنك تشغيل الأمر التالي:
python vangonography.py -cli -d -c [المسار المطلق (أو لا) لصورة `Cover_txt.png` الغلاف] -o Output -l
MIT © Van Gonography MIT
طلبات السحب (Pull requests) مرحب بها أكثر من اللازم، أحب رؤية الناس يساهمون في مشاريعي وسأحرص على النظر في كل واحدة منها. لا تتردد في المساهمة بالترجمات أو الميزات أو إصلاحات الأخطاء أو أي شيء آخر تراه ضروريًا، حتى التوثيق وملفات README! إذا واجهت أي أخطاء، يرجى فتح مشكلة (issue) وسأحاول إصلاحها في أقرب وقت ممكن :)
نرحب بمساهمات المجتمع! سواء كنت مطورًا أو مصممًا أو مجرد مستخدم متحمس، هناك العديد من الطرق للمشاركة.
مستعد للمساهمة؟ ابدأ بعمل fork للمستودع وتقديم أول مساهمة لك اليوم. كل مساهمة، مهما كانت صغيرة، تُحدث فرقًا!
![]() |
| هذا هو الملف الذي نريد إخفاءه داخل الصورة | هذه هي الصورة التي نريد إخفاء الملف بداخلها | هذه هي الصورة الغلاف مع الملف بداخلها |