Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
steganographer — Steganograpy in Python | إخفاء ملفات أو بيانات في ملفات الصور | Kitploit
أدوات/GitHubGitHub/priyansh-anand/steganographer
أدوات التشفير/فك التشفيرتسريب البياناتإخفاء المعلوماتالتعلم والتعليم
GitHubpriyansh-anand/steganographer

steganographer

Steganograpy in Python | إخفاء ملفات أو بيانات في ملفات الصور

عرض المستودع
16934منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

التخفي (Steganography) باستخدام بايثون

هذا السكريبت يقوم بإخفاء الملفات داخل الصور وحفظ الصورة المعدلة على القرص.

الحد الأقصى لحجم الملف الذي يمكن إخفاؤه داخل الصورة يعتمد على أبعاد الصورة.

root@kitploit:~
max_file_size = ( height_of_image * width_of_image * 6 / 8 ) bytes

ملف '100k words.txt' تم إخفاؤه في 'original_image.png' تحت اسم 'image_with_100k words.png'. اذهب وتحقق مما إذا كان يمكنك اكتشاف الفرق بين هاتين الصورتين. يمكنك استخدام هذه الوحدة لاستخراج '100k words.txt' من 'image_with_100k words.png'

مثال

الصورة الأصلية Original Image

الصورة المعدلة Modified Image

هذه الصورة تحتوي على 100 ألف كلمة (ملف نصي) مخفية بداخلها!

كيف يعمل؟

يعتمد على مبدأ بسيط: إذا قمنا بتغيير البتات الأقل أهمية (LSB) من كل بكسل، فإن التغيير لن يكون كبيرًا ولن تلتقطه العين.

لذا، تأخذ هذه الوحدة 2 بت من البيانات المراد إخفاؤها وتستبدل آخر 2 بت من بكسل واحد بهذه الـ 2 بت، ثم تنتقل إلى البكسل التالي. أقصى تغيير في البكسل يمكن أن يكون 4 وحدات، ونطاق القيم في صورة PNG هو (0,255)، لذلك لن يكون هذا التغيير ملحوظًا.

في صورة PNG، لكل بكسل 3 قنوات: الأحمر والأخضر والأزرق. (بعض صور PNG تحتوي على قناة واحدة أو 4 قنوات، لكن هذا البرنامج سيحولها إلى 3 قنوات) شكل بكسل نموذجي في صورة PNG يكون كالتالي:

root@kitploit:~
a_pixel = (17,32,11)     # (RED, GREEN, BLUE)

لذا، يمكننا حفظ 3 مرات 2 بت في بكسل واحد، أي 6 بت لكل بكسل. وهذا يقودنا إلى الحد الأعلى لحجم الملف الذي يمكن إخفاؤه في الصورة:

root@kitploit:~
max_file_size = ( height_of_image * width_of_image * 6 / 8 ) bytes

دعنا نفهم بمثال. البيانات المراد إخفاؤها هي:

root@kitploit:~
binary_data = 0b100111

لنأخذ أول 2 بت ونستبدلها بالقناة الحمراء لبكسلنا 'a_pixel'.

root@kitploit:~
a_pixel = (0b10001, 0b100000, 0b1011)   # تمثيل ثنائي لقيم a_pixel
# لنغير القناة الحمراء لـ a_pixel
# 0b10001 -> 0b10010  (أول 2 بت هما 10)
a_pixel = (0b10010, 0b100000, 0b1011)  # البكسل المعدل

لنأخذ مرة أخرى 2 بت من binary_data ونستبدل آخر 2 بت من القناة الخضراء بهما.

root@kitploit:~
a_pixel = (0b10010, 0b100000, 0b1011)
# لنغير القناة الخضراء لـ a_pixel
# 0b100000 -> 0b100001  (الـ 2 بت هما 01)
a_pixel = (0b10010, 0b100001, 0b1011)  # البكسل المعدل

لنفعل ذلك مرة أخرى مع القناة الزرقاء وسننتهي.

root@kitploit:~
a_pixel = (0b10010, 0b100001, 0b1011)
# لنغير القناة الزرقاء لـ a_pixel
# 0b1011 -> 0b1011  (الـ 2 بت هما 11) ; لاحظ أن القيمة لم تتغير هذه المرة
a_pixel = (0b10010, 0b100001, 0b1011)  # البكسل لم يتغير هذه المرة

إذن، قمنا بإخفاء رسالتنا المكونة من 6 بت في بكسل واحد، دعنا نرى التغييرات في البكسل

root@kitploit:~
a_pixel             = (0b10001, 0b100000, 0b1011) = (17, 32, 11)
a_pixel_with_data   = (0b10010, 0b100001, 0b1011) = (18, 33, 11)

كما نرى، التغيير غير ملحوظ حتى على مستوى البكسل. تقوم الوحدة بتكرار ذلك حتى يتم حفظ جميع بياناتنا في الصورة.

Data hidden in Raw Image

ملاحظة: تزداد الضوضاء في الصورة، وإذا استخدمنا أي برنامج لتحرير الصور وقارناه بالصورة الأصلية، فستحتوي هذه الصورة على ضوضاء أكثر بكثير من الصورة الأصلية.

حل لهذه المشكلة: لا تقم أبدًا برفع/مشاركة الصورة الأصلية على الإنترنت

المهام المتبقية

  • إضافة دعم لصور JPEG
  • إضافة كشف تلقائي لاسم الملف المراد استخراجه

الترخيص

MIT

برنامج مجاني، نعم بكل تأكيد!

تنزيل الأداة