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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
byvalver — يأخذ البايتات الضارة في الشيل كود ويُبعدها، معيدًا شيل كود نظيفًا مع الحفاظ على وظائفه | Kitploit
أدوات/GitHubGitHub/umpolungfish/byvalver
الاستغلالشيل كودتحليل البرمجيات الخبيثةاختبار الاختراقتحليل الملفات الثنائيةتعلم الآلةالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولات
GitHubumpolungfish/byvalver

byvalver

يأخذ البايتات الضارة في الشيل كود ويُبعدها، معيدًا شيل كود نظيفًا مع الحفاظ على وظائفه

63951منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

byvalver (·𐑚𐑲𐑝𐑨𐑤𐑝𐑼)

مُبيد البايتات الضارة في الشيلكود

byvalver يبيد البايتات الضارة بكل حزم
C++ تنظيف الشيلكود متعدد المنصات البنى بناء نظيف نجوم GitHub نسخ GitHub ادعم على GitHub
ادعم على ko-fi

نظرة عامة • بدء سريع • واجهة TUI التفاعلية • إزالة البايتات الضارة المستهدفة • ملفات تعريف البايتات الضارة • الميزات • البنية • متطلبات النظام • التبعيات • البناء • التثبيت • الاستخدام • استراتيجيات التعتيم • استراتيجيات إزالة النول • تدريب ML • مجموعة الوكلاء • التطوير • استكشاف الأخطاء • الترخيص


جدول المحتويات

  • نظرة عامة
  • بدء سريع
    • التثبيت
    • الاستخدام الأساسي
    • التحقق
    • دعم البنى المتعددة
    • المعالجة بالدفعات
  • واجهة TUI التفاعلية
  • طرد البايتات الضارة المستهدف
  • ملفات تعريف البايتات الضارة
  • الميزات
    • محرك التحويل المتقدم
    • مقاييس الأداء
    • طبقة التعتيم
    • اختيار الاستراتيجيات المدعوم بالتعلم الآلي
    • خيارات الإخراج
    • مجموعة التحقق
  • البنية
  • متطلبات النظام
  • التبعيات
  • البناء
  • التثبيت
  • الاستخدام
  • استراتيجيات التعتيم
  • استراتيجيات إزالة النول
  • تدريب ML والتحقق
  • مجموعة الوكلاء
  • التطوير
  • التوثيق
  • استكشاف الأخطاء
  • الترخيص

نظرة عامة

byvalver هي أداة سطر أوامر مبنية بلغة C للإزالة التلقائية (أو "طرد") للـ bad-bytes من شيلكود x86/x64/ARM/ARM64 مع الحفاظ على التكافؤ الوظيفي الكامل

الجديد في v4.0: دعم متعدد البنى

البنيةالنضجالاستراتيجياتملاحظات
x86 (Intel/AMD 32-بت)مستقر v4.2150+مُختبَر في الإنتاج، تغطية كاملة
x64 (Intel/AMD 64-بت)مستقر v4.2150+البنية الافتراضية، مُختبَر في الإنتاج
ARM (32-بت)تجريبي v0.17 أساسيةاختبار محدود، تعليمات أساسية فقط
ARM64 (AArch64)تجريبي v0.1أساسيةالإطار جاهز، استراتيجيات قليلة
  • اختيار وضع Capstone تلقائيًا عبر علم --arch

إصلاحات أخطاء v4.0.1:

  • إصلاح ترميز تعليمة ARM SUB (opcode الصحيح 0x2 مع بت I=1)
  • إصلاح منطق can_handle لاستراتيجيات ARM64 الخاصة بالاستراتيجيات الممررة
  • إضافة تحذيرات تجريبية عند اختيار بنية ARM/ARM64
  • إضافة استدلالات لكشف عدم تطابق البنية
  • تحسين تنظيم الكود (نقل الإنشائات إلى نطاق الملف)

الجديد في v4.2: دعم محسّن لـ x64

  • طبقة توافق استراتيجيات x86/x64: أكثر من 128 استراتيجية x86 تعمل الآن على شيلكود x64
  • 5 ملفات استراتيجية جديدة خاصة بـ x64: MOVABS, SBB, TEST, SSE Memory, LEA Displacement
  • ترميز سجلات ممتد: دعم كامل لـ R8-R15 مع معالجة صحيحة لبادئة REX
  • أدوات بادئة REX: is_64bit_register()، is_extended_register()، build_rex_prefix()
  • يحل معدل الفشل بنسبة 100% على عينات شيلكود x64 فقط

تستخدم الأداة إطار عمل التفكيك Capstone لتحليل التعليمات وتطبق أكثر من 175+ استراتيجية تحويل مرتبة لاستبدال الكود الذي يحتوي على bad-byte ببدائل مكافئة

يوفر إطار عمل طرد bad-byte العام وضعين للاستخدام:

  1. تحديد مباشر: يسمح خيار --bad-bytes بتحديد بايتات عشوائية لطردها (مثل --bad-bytes "00,0a,0d" لشيلكود آمن ضد أسطر جديدة)
  2. قائم على الملفات الشخصية: يستخدم خيار --profile مجموعات بايتات ضارة مُعدة مسبقًا لسيناريوهات الاستغلال الشائعة (مثل --profile http-newline, --profile sql-injection, --profile alphanumeric-only)

يدعم Windows و Linux و macOS

التقنية الأساسية:

  • تنفيذ بلغة C نقية للكفاءة والتحكم منخفض المستوى
  • Capstone للتفكيك الدقيق
  • NASM لتوليد دعائم فك التشفير
  • نمط استراتيجي معياري لتحويلات قابلة للتوسيع (أكثر من 153 استراتيجية منفذة)
  • تكامل الشبكات العصبية للاختيار الذكي للاستراتيجيات
  • معالجة ثنائية المراحل: تعتيم يتبعه إزالة النول

[!NOTE] إزالة بايت النول (--bad-bytes "00" أو الافتراضي): مُختبَرة جيدًا / إزالة عامة للبايتات الضارة (--bad-bytes "00,0a,0d" وغيرها): منفذة حديثًا

طرد البايتات الضارة أثناء العمل

طرد البايتات الضارة أثناء العمل

بدء سريع

ابدأ مع byvalver في دقائق:

التثبيت

الخيار 1: من GitHub (موصى به)```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

root@kitploit:~
**الخيار 2: البناء من المصدر**```bash
git clone https://github.com/umpolungfish/byvalver.git
cd byvalver
make
sudo make install
sudo make install-man  # Install man page

الاستخدام الأساسي

إزالة NULL BYTES (الافتراضي):```bash byvalver input.bin output.bin

root@kitploit:~
**استخدام ملفات تعريف البايتات السيئة:**```bash
# HTTP contexts (removes null, newline, carriage return)
byvalver --profile http-newline input.bin output.bin

# SQL injection contexts
byvalver --profile sql-injection input.bin output.bin

# Alphanumeric-only shellcode (most restrictive)
byvalver --profile alphanumeric-only input.bin output.bin

تحديد البايتات الضارة يدويًا:```bash

banish null bytes and newlines

byvalver --bad-bytes "00,0a,0d" input.bin output.bin

root@kitploit:~
**الميزات المتقدمة:**```bash
# Add obfuscation layer before denullification
byvalver --biphasic input.bin output.bin

# Enable ML-powered strategy selection
byvalver --ml input.bin output.bin

# Generate XOR-encoded shellcode with decoder stub
byvalver --xor-encode DEADBEEF input.bin output.bin

# Output in different formats
byvalver --format c input.bin output.c      # C array
byvalver --format python input.bin output.py # Python bytes
byvalver --format hexstring input.bin output.hex # Hex string

التحقق

تحقق دائمًا من شيلكودك المحوّل:```bash

Check for remaining bad bytes

python3 verify_denulled.py --bad-bytes "00,0a,0d" output.bin

Verify functional equivalence

python3 verify_functionality.py input.bin output.bin

root@kitploit:~
### دعم البنى المتعددة

يدعم `byvalver` بنى معمارية متعددة عبر خيار `--arch`:

**x86 (32-bit Intel/AMD)** - مدعوم بالكامل مع أكثر من 150 استراتيجية```bash
byvalver --arch x86 --bad-bytes "00" x86_shellcode.bin output.bin

x64 (64-bit Intel/AMD) - مدعوم بالكامل (افتراضي)```bash byvalver --arch x64 --bad-bytes "00,0a,0d" x64_shellcode.bin output.bin

root@kitploit:~
**ARM (32-bit)** - دعم تجريبي باستراتيجيات أساسية```bash
byvalver --arch arm --bad-bytes "00" arm_shellcode.bin output.bin

ARM64 (AArch64) - دعم تجريبي مع استراتيجيات أساسية```bash byvalver --arch arm64 --bad-bytes "00,0a" arm64_shellcode.bin output.bin

root@kitploit:~
**ملاحظات:**
- دعم ARM/ARM64 يركز على التعليمات الأساسية (MOV، العمليات الحسابية، التحميل/التخزين)
- استخدم ملفات تعريف bad-byte أبسط لـ ARM (مثل: null-byte فقط)
- يتم عرض تحذيرات تجريبية عند اختيار ARM/ARM64
- كشف أساسي لعدم تطابق البنية يحذر إذا بدت شيلكود ذات بنية خاطئة
- الاكتشاف التلقائي للبنية مخطط له في الإصدارات المستقبلية

### المعالجة الدفعية

معالجة الدلائل بالكامل:```bash
# Process all .bin files recursively
byvalver -r --pattern "*.bin" input_dir/ output_dir/

# Apply HTTP profile to all shellcode in directory
byvalver -r --profile http-newline input_dir/ output_dir/

الواجهة النصية التفاعلية

القائمة الرئيسية للواجهة النصية

المعالجة بالدفعات في الواجهة النصية

يتضمّن byvalver واجهة نصية تفاعلية (Text User Interface) مع تماثل كامل مع ميزات CLI بنسبة 1:1.

توفر الواجهة النصية واجهة مرئية بديهية لجميع عمليات التخلّص من bad-byte، بما في ذلك:

  • المعالجة بالدفعات مع إحصائيات مباشرة
  • إعدادات ML &
  • تصفّح شامل للملفات

شغّل الواجهة النصية باستخدام العلامة --menu:```bash byvalver --menu

root@kitploit:~
### الميزات الرئيسية:

توفر الواجهة النصية (TUI) 9 خيارات قائمة رئيسية تغطي جميع وظائف CLI:

1. **معالجة ملف واحد** - معالجة ملفات shellcode فردية مع تغذية بصرية راجعة
2. **معالجة مجلد بالدفعة** - معالجة مجلدات كاملة مع تتبع مباشر للتقدم
3. **تكوين خيارات المعالجة** - تبديل الوضع ثنائي الطور، توليد PIC، ML، verbose، dry-run
4. **تعيين البايتات المحظورة** - إدخال يدوي أو الاختيار من 13 ملفًا شخصيًا محددًا مسبقًا
5. **إعدادات تنسيق الإخراج** - اختر من 5 تنسيقات إخراج (raw، C، Python، PowerShell، hexstring)
6. **إعداد مقاييس ML** - تكوين استراتيجية اختيار ML وتتبع المقاييس
7. **خيارات متقدمة** - ترميز XOR، مهلات، حدود، إعدادات التحقق
8. **تحميل/حفظ التكوين** - إدارة ملفات التكوين بنمط INI
9. **حول byvalver** - معلومات الإصدار والمساعدة

### متصفح الملفات البصري:

- **التنقل بين المجلدات** باستخدام مفاتيح الأسهم أو مفاتيح j/k بنمط vi
- **التمييز بين ملف/مجلد** مع مؤشرات [FILE] و [DIR]
- **عرض حجم الملف** بتنسيقات مقروءة (B، KB، MB، GB)
- **تصفية الامتدادات** (مثل *.bin)
- **معالجة ذكية للمسار** - يتنقل تلقائيًا إلى المجلد الأصلي إذا تم توفير مسار ملف
- **عرض مرتب** - المجلدات أولاً، ثم أبجديًا
- **أوضاع تحديد متعددة**:
  - وضع تحديد الملف: التنقل داخل المجلدات، تحديد الملفات فقط
  - وضع تحديد المجلد: تحديد المجلدات للمعالجة الدفعية
  - الوضع المزدوج: تحديد الملفات أو المجلدات

### المعالجة الدفعية مع تحديثات مباشرة:

توفر شاشة المعالجة الدفعية **تغذية راجعة في الوقت الفعلي**:

- **شريط التقدم** يعرض الملفات المعالجة (مثل `[==============        ] 52/100 files`)
- **عرض التكوين** يعرض الإعدادات النشطة:
  - عدد البايتات المحظورة والملف الشخصي المستخدم
  - خيارات المعالجة (`Biphasic`, `PIC`, `XOR`, ML)
  - تنسيق الإخراج
- **إحصائيات الملفات المباشرة** مع حالة ملوّنة:
  - مكتمل: X / Y (الملفات المجرّبة / الإجمالي)
  - ✅ ناجح (أخضر) - صفر بايتات محظورة متبقية
  - ❌ فاشل (أحمر) - أخطاء أو بايتات محظورة متبقية
  - نسبة نجاح مئوية
- **عرض الملف الحالي** بخط عريض
- **معاينة الملف التالي** بنص أصفر/خافت
- **جدول إحصائيات الاستراتيجية الديناميكي** يعرض:
  - **جميع الاستراتيجيات النشطة** (بدون حد 10 استراتيجيات)
  - **أسماء الاستراتيجيات الكاملة** (حتى 50 حرفًا، دون اقتطاع)
  - عدد النجاح/الفشل لكل استراتيجية
  - نسب النجاح المئوية
  - ملوّنة حسب الأداء (أخضر ≥80%، أصفر 50-79%، أحمر <50%)
  - تحديثات فورية كل 50 مللي ثانية

### إدارة التكوين:

تحميل وحفظ التكوينات بتنسيق **نمط INI**:```ini
[general]
verbose = 0
quiet = 0
show_stats = 1

[processing]
use_biphasic = 0
use_pic_generation = 0
encode_shellcode = 0
xor_key = 0xDEADBEEF

[output]
output_format = raw

[bad_bytes]
bad_bytes = 00

[ml]
use_ml_strategist = 0
metrics_enabled = 0

[batch]
file_pattern = *.bin
recursive = 0
preserve_structure = 1

انظر example.conf للحصول على قالب إعدادات كامل.

تكوين البايتات الضارة:

تتوفر طريقتان للإدخال:

  1. الإدخال اليدوي - قيم سداسية عشرية مفصولة بفواصل (مثل: 00,0a,0d)
  2. الملفات الشخصية المحددة مسبقًا - 13 ملفًا شخصيًا للسيناريوهات الشائعة:
    • null-only, http-newline, http-whitespace
    • url-safe, sql-injection, xml-html
    • json-string, format-string, buffer-overflow
    • command-injection, ldap-injection
    • printable-only, alphanumeric-only

التنقل:

  • مفاتيح الأسهم (↑↓) أو j/k (بنمط vi): التنقل بين خيارات القائمة
  • Enter: تحديد الخيار المميز
  • q: إنهاء التطبيق أو إلغاء العملية
  • 0-9: تحديد سريع لخيار القائمة حسب الرقم
  • Space: تحديد الدليل الحالي (في وضع تصفح الدلائل)

المتطلبات:

يتطلب الوضع التفاعلي تثبيت مكتبة ncurses على نظامك:```bash

Ubuntu/Debian

sudo apt install libncurses-dev

CentOS/RHEL/Fedora

sudo dnf install ncurses-devel

macOS (with Homebrew)

brew install ncurses

root@kitploit:~
سيتحقق التطبيق تلقائيًا من توفر ncurses ويمكّن دعم TUI وفقًا لذلك.

### خيارات البناء:

يتم تجميع دعم TUI بشكل شرطي بناءً على توفر ncurses:

- البناء الافتراضي: `make` - يتضمن TUI إذا كان ncurses متوفرًا
- فرض بناء TUI: `make with-tui` - يبني مع دعم TUI (يفشل إذا لم يكن ncurses متوفرًا)
- استبعاد TUI: `make no-tui` - يبني بدون دعم TUI للحصول على ملف ثنائي أصغر

### أمثلة على سير العمل:

**معالجة ملف واحد:**

1. تشغيل TUI: `byvalver --menu`
2. اختر "1. معالجة ملف واحد"
3. تصفح للبحث عن ملف الإدخال باستخدام متصفح الملفات المرئي
4. تصفح لتحديد موقع ملف الإخراج
5. ابدأ المعالجة وعرض النتائج

**المعالجة المجمعة:**

1. تشغيل TUI: `byvalver --menu`
2. اختر "2. معالجة مجلد دفعة واحدة"
3. تصفح لاختيار مجلد الإدخال الذي يحتوي على ملفات shellcode
4. تصفح لتحديد مجلد الإخراج
5. قم بتهيئة نمط الملف (الافتراضي: `<file>.bin`) وخيار العودية
6. ابدأ المعالجة المجمعة وشاهد التقدم المباشر مع إحصائيات الاستراتيجيات

**إدارة الإعدادات:**

1. قم بضبط جميع الخيارات في TUI (البايتات المحظورة، صيغة الإخراج، ML، إلخ.)
2. اختر "8. تحميل/حفظ الإعدادات"
3. احفظ الإعدادات الحالية إلى ملف (مثل: `my_config.conf`)
4. لاحقًا: قم بتحميل ملف الإعدادات لاستعادة جميع الإعدادات

### ملاحظات الأداء:

- **معالجة ملف واحد**: ردود فعل بصرية فورية، أقل من ثانية واحدة لـ shellcode النموذجي
- **المعالجة المجمعة**: تأخير 50ms بين الملفات للتحديثات المرئية
- **المجلدات الكبيرة (100+ ملف)**: قد يستغرق الفحص 1-2 ثانية
- **تهيئة الاستراتيجيات**: 2-5 ثوانٍ عند التشغيل الأول (تكلفة لمرة واحدة لكل جلسة)

### توافق الطرفية:

تم اختبار TUI مع:
- GNOME Terminal
- Konsole
- xterm
- iTerm2 (macOS)
- Windows Terminal (WSL)
- tmux/screen (يعمل ولكن قد يكون لديه قيود في الألوان)

**الحد الأدنى الموصى به لحجم الطرفية**: 80x24 حرفًا (يوصى بـ 100x30 أو أكبر لعرض جدول الاستراتيجيات الكامل أثناء المعالجة المجمعة)

لتوثيق TUI الكامل واستكشاف الأخطاء وإصلاحها والاستخدام المتقدم، راجع [TUI_README.md](https://github.com/umpolungfish/byvalver/blob/main/TUI_README.md).

## الاستئصال الموجّه للبايتات المحظورة

### نظرة عامة

يتيح لك خيار `--bad-bytes` تحديد أي مجموعة بايتات لاستئصالها من الـ shellcode الخاص بك.

### تفاصيل التنفيذ

يعمل `byvalver` من خلال:

1. تحليل قائمة البايتات السداسية عشرية المفصولة بفواصل (مثل: `"00,0a,0d"`)
2. استخدام بحث bitmap بتعقيد O(1) لتحديد البايتات المحظورة في التعليمات
3. تطبيق نفس استراتيجيات التحويل الـ 153+ المستخدمة للتخلص من البايتات الصفرية
4. التحقق من أن المخرجات لا تحتوي على البايتات المحظورة المحددة

### السلوك المتوقع

- **البايتات الصفرية فقط** (`--bad-bytes "00"` أو الافتراضي): معدل نجاح مرتفع (100% على مجموعة الاختبار)
- **عدة بايتات محظورة** (`--bad-bytes "00,0a,0d"`): قد يختلف معدل النجاح بشكل كبير اعتمادًا على:
  - أي بايتات محددة تم وضع علامة عليها كمحظورة
  - تعقيد الـ shellcode المدخل
  - تكرار البايتات المحظورة في الـ shellcode الأصلي
  - ما إذا كانت هناك ترميزات بديلة فعّالة لمجموعة البايتات المحظورة المحددة

### التوصيات

1. **للاستخدام الإنتاجي:** التزم بوضع استئصال البايتات الصفرية الافتراضي
2. **للتجربة:** اختبر خاصية `--bad-bytes` مع حالة الاستخدام الخاصة بك وتحقق من صحة المخرجات
3. **تحقق دائمًا:** استخدم `verify_denulled.py --bad-bytes "XX,YY"` للتأكد من إزالة جميع البايتات المحظورة
4. **توقع التباين:** قد لا يمكن تنظيف بعض الـ shellcode بالكامل مع مجموعات معينة من البايتات المحظورة

### التحسينات المستقبلية

توفر خاصية البايتات المحظورة العامة أساسًا لـ:

- تحسين الاستراتيجيات لأنماط البايتات المحظورة المحددة
- اكتشاف تلقائي لاستراتيجيات جديدة تستهدف مجموعات البايتات المحظورة الشائعة
- إعادة تدريب نموذج ML ببيانات تدريب متنوعة للبايتات المحظورة
- اختبار وتحقق موسعان

> [!CAUTION]
> استخدام `--bad-bytes` مع عدة بايتات محظورة يزيد بشكل كبير من تعقيد مهمة التحويل. قد يصبح تحويل بعض الـ shellcode مستحيلًا إذا تم وضع علامة على عدد كبير جدًا من البايتات كمحظورة، لأن الأداة قد تنفد من الترميزات البديلة. ابدأ بمجموعات بايتات محظورة صغيرة (مثل: `"00,0a"`) وقم بالتوسع تدريجيًا أثناء اختبار المخرجات. تحقق دائمًا من النتيجة باستخدام `verify_denulled.py` قبل النشر.

## ملفات البايتات المحظورة

### نظرة عامة

يمكن للمستخدمين أيضًا اختيار **ملفات البايتات المحظورة** - مجموعات بايتات مُعدّة مسبقًا لسيناريوهات الاستغلال الشائعة. بدلاً من تحديد القيم السداسية عشرية يدويًا، استخدم أسماء ملفات التعريف المطابقة لسياقك.

### الملفات المتاحة

| الملف التعريفي | الصعوبة | البايتات المحظورة | حالة الاستخدام |
|---------|-----------|-----------|----------|
| `null-only` | ░░░░░ سهل جدًا | 1 | تجاوزات المخزن المؤقت الكلاسيكية (الافتراضي) |
| `http-newline` | █░░░░ منخفض | 3 | ترويسات `HTTP`، بروتوكولات سطرية |
| `http-whitespace` | █░░░░ منخفض | 5 | بارامترات `HTTP`، حقن الأوامر |
| `url-safe` | ███░░ متوسط | 23 | بارامترات `URL`، طلبات `GET` |
| `sql-injection` | ███░░ متوسط | 5 | سياقات حقن `SQL` |
| `xml-html` | ███░░ متوسط | 6 | حقن `XML`/`HTML`، `XSS` |
| `json-string` | ███░░ متوسط | 34 | حقن واجهات برمجة تطبيقات `JSON` |
| `format-string` | ███░░ متوسط | 3 | ثغرات سلسلة التنسيق |
| `buffer-overflow` | ███░░ متوسط | 5 | تجاوزات المكدس/الكومة مع التصفية |
| `command-injection` | ███░░ متوسط | 20 | حقن أوامر الصدفة |
| `ldap-injection` | ███░░ متوسط | 5 | استعلامات `LDAP` |
| `printable-only` | ████░ عالي | 161 | بروتوكولات نصية (ASCII قابل للطباعة فقط) |
| `alphanumeric-only` | █████ متطرف | 194 | shellcode أبجدي رقمي فقط (0-9، A-Z، a-z) |

### الاستخدام```bash
# List all available profiles
byvalver --list-profiles

# Use a specific profile
byvalver --profile http-newline input.bin output.bin

# Combine with other options
byvalver --profile sql-injection --biphasic --format c input.bin output.c

أمثلة البروفيلات

سياقات HTTP (يزيل NULL وLF وCR):```bash byvalver --profile http-newline payload.bin http_safe.bin

root@kitploit:~
**SQL Injection** (يزيل NULL وعلامات الاقتباس والفواصل المنقوطة):```bash
byvalver --profile sql-injection payload.bin sql_safe.bin

أبجدي-رقمي فقط (صعوبة قصوى - يسمح فقط بـ 0-9, A-Z, a-z):```bash byvalver --profile alphanumeric-only payload.bin alphanum.bin

root@kitploit:~
للحصول على توثيق مفصّل للملفات الشخصية، انظر [docs/BAD_BYTE_PROFILES.md](https://github.com/umpolungfish/byvalver/blob/main/docs/BAD_BYTE_PROFILES.md).


## الميزات

### معدل نجاح مرتفع في إزالة NULL-BYTE
<div align="center">
  <strong>تم تحقيق إزالة 100% من البايتات الصفرية على مجموعة اختبار متنوعة تمثل مصادر البايت الصفري الشائعة والمعقدة.</strong>
</div>

> ينطبق معدل النجاح هذا تحديدًا على إزالة البايت الصفري (`\x00`)، والذي تم اختباره وتحسينه على نطاق واسع.

### محرك التحويل المتقدم
170+ تنفيذًا للاستراتيجيات تغطي تقريبًا جميع مصادر البايت الصفري الشائعة وأنماط البايتات الضارة العامة (تمت إضافة عائلات استراتيجيات جديدة متعددة في v3.0 وv3.6 وv3.7 وv3.8 وv4.0 وv4.1):
- `CALL/POP` والتحميل الفوري القائم على المكدس
- اجتياز `PEB` مع تحليل API بالتجزئة
- تحليل API متقدم قائم على التجزئة مع خوارزميات معقدة
- اجتياز `PEB` متعدد المراحل لتحميل DLL متعددة
- `SALC` و`XCHG` والتصفير القائم على الأعلام
- `LEA` للاستبدال الحسابي
- بناء القيم باستخدام الإزاحة `Shift` والعمليات الحسابية
- بناء السلاسل باستخدام `PUSH` المتعدد
- بناء الهياكل القائمة على المكدس لهياكل Windows
- بناء السلاسل القائم على المكدس مع أنماط متقدمة
- إعادة كتابة `SIB` والإزاحة (displacement)
- معالجة إزاحة القفزات الشرطية
- إعادة توجيه السجلات والتسلسل
- تحسين `SALC`+`REP STOSB` لتهيئة المخازن المؤقتة
- تحويلات متقدمة لعمليات السلاسل
- سلاسل ترميز العمليات الذرية
- ترميز فوري قائم على مكدس `FPU`
- ترجمة البايتات القائمة على الجدول عبر `XLAT`
- سلاسل الحفاظ على الأعلام عبر `LAHF`/`SAHF`
- **جديد في v3.6**: إخفاء العمليات الحسابية بـ`BCD` (`AAM`/`AAD`)
- **جديد في v3.6**: بدائل إطار المكدس `ENTER`/`LEAVE`
- **جديد في v3.6**: عد البتات للثوابت باستخدام `POPCNT`/`LZCNT`/`TZCNT`
- **جديد في v3.6**: التحميل الفوري لسجلات `SIMD` `XMM`
- **جديد في v3.6**: تحويلات القفز لاختبار الصفر `JECXZ`/`JRCXZ`
- **جديد في v3.7**: إزالة البايتات الضارة من أكواد تشغيل القفزات الشرطية (JE/JNE/JG/JL مع أكواد تشغيل ضارة)
- **جديد في v3.7**: أكواد تشغيل البايتات الضارة للنقل من سجل إلى سجل (بدائل MOV/XCHG)
- **جديد في v3.7**: إزالة البايتات الضارة من مؤشر إطار المكدس (بدائل PUSH/POP EBP)
- **جديد في v3.7**: إزالة البايتات الضارة من بايتات ModR/M وSIB (مجموعات سجلات بديلة)
- **جديد في v3.7**: البايتات الضارة الجزئية للقيم الفورية متعددة البايت (تحسين التدوير)
- **جديد في v3.7**: البايتات الضارة للقيم الفورية في العمليات الثنائية (AND/OR/XOR/TEST مع السجلات)
- **جديد في v3.7**: استبدال أكواد التشغيل أحادية البايت (بدائل INC/DEC/PUSH/POP)
- **جديد في v3.7**: البايتات الضارة في بادئات تعليمات السلاسل (تحويل بادئة REP إلى حلقة)
- **جديد في v3.7**: البايتات الضارة في بادئة حجم المعامل (تحويل من 16-بت إلى 32-بت)
- **جديد في v3.7**: كشف البايتات الضارة في سجلات المقاطع (كشف بادئات FS/GS)
- **جديد في v3.8**: نظام توليد SIB مدرك للملف الشخصي (يلغي بايت SIB الثابت 0x20)
- **جديد في v3.8**: إصلاحات حرجة لمعالجة القفزات الشرطية وتحسين السجلات الجزئية
 - **جديد في v3.9**: إدراج NOP متعدد الأشكال مع مكافئات NOP متعددة
 - **جديد في v3.9**: تفكيك الثوابت لإخفاء القيم الفورية
 - **جديد في v3.9**: إخفاء إعادة تسمية السجلات بأنماط XCHG
 - **جديد في v3.9**: إخفاء انسكاب المكدس للعمليات الحسابية
 - **جديد في v3.9**: إعادة ترتيب التعليمات مع إدراج NOP
 - **جديد في v3.9**: استراتيجية التعديل الذاتي وقت التشغيل (تنفيذ أساسي)
 - **جديد في v3.9**: توليد تعليمات متداخلة
  - **جديد في v4.0**: دعم متعدد البنى ARM/ARM64 مع اختيار وضع Capstone الديناميكي
  - **جديد في v4.0**: ترميز القيم الفورية لـARM مع تحويلات MVN
  - **جديد في v4.0**: استراتيجيات ARM MOV (الأصلية، تجنب الصفر القائم على MVN)
  - **جديد في v4.0**: استراتيجيات ARM الحسابية (ADD مع تحويلات SUB)
  - **جديد في v4.0**: استراتيجيات ذاكرة ARM (المرور المباشر LDR/STR)
  - **جديد في v4.0**: استراتيجيات فروع ARM (المرور المباشر B/BL)
  - **جديد في v4.1**: سلاسل تراكم الأعلام SETcc (إزالة القفزات الشرطية)
  - **جديد في v4.1**: بناء القيم الفورية متعددة الأشكال (متغيرات ترميز متعددة)
  - **جديد في v4.1**: تحسين سلسلة تبعية السجلات (أنماط متعددة التعليمات)
  - **جديد في v4.1**: تحسين العنونة النسبية إلى RIP (تحسينات x64 PIC)
  - **جديد في v4.1**: عنونة ذاكرة بإزاحة سالبة (بدائل الإزاحة)
  - **جديد في v4.1**: تداخل NOP متعدد البايت (متغيرات NOP للإخفاء)
  - **جديد في v4.1**: بناء الثوابت عبر معالجة البتات (BSWAP, BSF, POPCNT, BMI2)
  - **جديد في v4.2**: طبقة توافق استراتيجيات x86/x64 (تمكّن أكثر من 128 استراتيجية x86 على x64)
  - **جديد في v4.2**: استراتيجيات MOVABS للقيم الفورية 64-بت (REX.W MOV مع بناء XOR/ADD)
  - **جديد في v4.2**: استراتيجيات SBB مع الصفر الفوري (تحويل SBB AL/AX/EAX, 0)
  - **جديد في v4.2**: استراتيجيات TEST مع قيم فورية كبيرة (TEST EAX/RAX, imm32 مع معاملات سجلات)
  - **جديد في v4.2**: استراتيجيات عمليات ذاكرة SSE (إزالة الصفر في MOVUPS/MOVAPS/MOVDQU/MOVDQA)
  - **جديد في v4.2**: استراتيجيات LEA لإزاحات x64 (معالجة الإزاحات الكبيرة مع بادئات REX)
  - **جديد في v4.2**: دعم السجلات الموسعة (أدوات ترميز السجلات R8-R15)
 - دعم شامل لـ `MOV` و`ADD/SUB` و`XOR` و`LEA` و`CMP` و`PUSH` والمزيد

يستخدم المحرك معالجة متعددة المراحل (الإخفاء ← إزالة الأصفار) مع آليات احتياطية قوية للحالات الطرفية

**تحسينات حرجة في v3.8**: إصلاح متعدد الاستراتيجيات لملف http-whitespace الشخصي
- **المشكلة**: تسببت البايتات الضارة المثبتة برمجيًا في معدل فشل 79.1% (فشل 125 من 158 ملفًا)
- **الأسباب الجذرية المحددة**:
  - 45+ مثيلًا لبايت SIB الثابت 0x20 (مسافة) عبر 15 ملف استراتيجية
  - منطق القفزات الشرطية الأساسي يستخدم إزاحات تخطي البايتات الضارة دون تحقق
  - تحسين السجلات الجزئية يكتب البايتات الضارة مباشرة
  - بايتات ضارة ثابتة إضافية في 5 ملفات استراتيجية ذات أولوية عالية
- **الحلول المنفذة**:
  - توليد SIB مركزي مدرك للملف الشخصي مع احتياطي من ثلاث طبقات (STANDARD → DISP8 → PUSHPOP)
  - توسيد NOP ديناميكي لإزاحات تخطي القفزات الشرطية لتجنب البايتات الضارة
  - بناء ذكي للبايتات لقيم السجلات الجزئية باستخدام التحليل
  - استبدال منهجي للبايتات الثابتة ببدائل مدركة للملف الشخصي
- **الأثر**: **فشل 79.1% → فشل 35.4%** (معدل النجاح: **20.9% → 64.6%**)
- **الملفات المُصلحة**: أصبحت 102 ملفات تُعالَج بنجاح (+69 ملفًا، تحسين بمقدار 3.09x)
- **معدلات نجاح الاستراتيجيات**:
  - تحسين السجلات الجزئية: 25% → **100%** (12/12 تحويلًا)
  - mov_mem_disp_enhanced: 0% → **98.5%** (1605/1629 تحويلًا)
  - indirect_call_mem: 0% → **98.5%** (135/137 تحويلًا)
  - indirect_jmp_mem: 0% → **98.5%** (134/136 تحويلًا)
- **الأداء**: صفر حمل إضافي عبر التخزين المؤقت الذكي، متوسط زيادة في الحجم أقل من 2%

### مقاييس الأداء

بيانات أداء حقيقية من معالجة 184 عينة shellcode متنوعة:```
📊 Batch Processing Statistics:

Success Rate:            184/184             █████████████████████████   100.00%
Files Processed:         184                 █████████████████████████   100.00%
Failed:                  0                   ░░░░░░░░░░░░░░░░░░░░░░░░░   00.00%
Skipped:                 0                   ░░░░░░░░░░░░░░░░░░░░░░░░░   00.00%

قوائم الكلمات

فيما يلي مرشحون من SecLists (مفضلة، متوسطة) ومرشحون من FuzzDB (نطاق واسع، قديمة).

المستخدمون

يحتوي المستخدمون على ما يلي: %s أو @%s. اختر حرفًا مبدئيًا واحدًا فقط إما بدون @، أو مضافًا إليه @ وذلك بناءً على نقطة الحقن.``` 🧠 ML Strategy Selection Performance:

Processing Speed: Instructions/sec: 19.5 inst/sec ████████████░░░░░░░░░░░░░ Total Instructions: 20,760 Session Duration: 1,067 seconds

Null-Byte Elimination: Eliminated: 18,636/20,760 ██████████████████████░░░ 89.77% Strategies Applied: 20,129 Success Rate: 92.57% ███████████████████████░░ 92.57%

Learning Progress: Positive Feedback: 18,636 ███████████████████████░░ 92.57% Negative Feedback: 1,493 █░░░░░░░░░░░░░░░░░░░░░░░░ 07.43% Total Iterations: 40,889 Avg Confidence: 0.0015 ░░░░░░░░░░░░░░░░░░░░░░░░░ 00.15%

root@kitploit:~
### تكوين وتشغيل```
🏆 Top Performing Denullification Strategies:

Strategy                                  Attempts    Success%    Confidence
--------                                  --------    --------    ----------
ret_immediate                                  134    █████████████░░░░░░░░░░░░   50.00%
MOVZX/MOVSX Null-Byte banishment              162    █████████████░░░░░░░░░░░░   50.00%
transform_mov_reg_mem_self                     774    █████████████░░░░░░░░░░░░   50.00%
cmp_mem_reg_null                                96    ████████████░░░░░░░░░░░░░   46.88%
cmp_mem_reg                                    264    ████████████░░░░░░░░░░░░░   46.97%
lea_disp_null                                 3900    ███████████░░░░░░░░░░░░░░   45.38%
transform_add_mem_reg8                        2012    ███████████░░░░░░░░░░░░░░   43.49%
Push Optimized                                4214    ███████░░░░░░░░░░░░░░░░░░   29.31%
ModRM Byte Null Bypass                          82    ██████░░░░░░░░░░░░░░░░░░░   25.61%
conservative_arithmetic                       5172    █████░░░░░░░░░░░░░░░░░░░░   21.37%
arithmetic_addsub_enhanced                    1722    ████░░░░░░░░░░░░░░░░░░░░░   18.12%
PUSH Immediate Null-Byte banishment          3066    ████░░░░░░░░░░░░░░░░░░░░░   16.54%
SIB Addressing                                9560    ████░░░░░░░░░░░░░░░░░░░░░   16.03%
generic_mem_null_disp_enhanced               22130    ███░░░░░░░░░░░░░░░░░░░░░░   15.52%
SALC-based Zero Comparison                    1654    ███░░░░░░░░░░░░░░░░░░░░░░   12.88%

خريطة متصفحات الأمان``` ⚡ Processing Efficiency:

Learning Rate: 1.97 feedback/instruction Weight Update Avg: 0.042650 Weight Update Max: 0.100000 Total Weight Updates: 1724.68

Strategy Coverage: Total Strategies: 153+ Strategies Activated: 117 ████████████████████████░ 95.90% Zero-Attempt: 5 █░░░░░░░░░░░░░░░░░░░░░░░░ 04.10%

root@kitploit:~
### طبقة التعتيم
وضع `--biphasic` يضيف تعتيمًا مضادًا للتحليل قبل إزالة البايتات الصفرية:
- تسطيح تدفق التحكم
- أنماط الموزّع
- إعادة تعيين السجلات
- تعتيم الحالة
- إدراج الكود الميت
- زحافات NOP
- استبدال التعليمات
- العمليات المكافئة
- التلاعب بإطار المكدس
- إخفاء تحليل API
- ترميز السلاسل النصية
- ترميز الثوابت
- مضاد التصحيح
- تقنيات كشف الآلة الافتراضية

### اختيار الاستراتيجية المدعوم بالتعلم الآلي

> **النضج: Beta v2.0** — تم تدريبه على مجموعات بيانات إزالة البايتات الصفرية. يحتاج إلى إعادة تدريب لحالات استخدام البايتات السيئة العامة.

**البنية**:
- **ترميز التعليمات One-hot** (51 بُعدًا) يستبدل معرّفات التعليمات العددية
- **نافذة سياق** مع مخزن منزلق من 4 تعليمات (الحالية + 3 السابقة)
- **استخراج ميزات ثابت** بتخطيط مستقر من 84 بُعدًا لكل تعليمة
- **سجل استراتيجيات مستقر** يضمن تعيين مخرجات الشبكة العصبية بشكل متسق
- **انتشار خلفي كامل** عبر جميع الطبقات (إدخال→مخفية→إخراج)
- **حساب صحيح للتدرج** لدالة softmax + خسارة الإنتروبيا التقاطعية
- **إخفاء المخرجات** يصفّي الاستراتيجيات غير الصالحة قبل softmax
- **تهيئة He/Xavier** لتهيئة الأوزان بشكل صحيح
- شبكة عصبية تغذية أمامية من 3 طبقات (336→512→200)
- تعلم تكيفي من ملاحظات النجاح/الفشل
- يتتبع التوقعات والدقة والثقة
- تراجع سلس إلى الترتيب الحتمي

> [!WARNING]
> وضع التعلم الآلي تجريبي ويتطلب مزيدًا من التدريب/التحقق مع البنية الجديدة.

### المعالجة الدفعية
- اجتياز الدليل بشكل تكراري (`-r`)
- أنماط ملفات مخصصة (`--pattern "*.bin"`)
- الحفاظ على البنية أو تسطيحها
- أوضاع المتابعة عند الخطأ أو الوضع الصارم
- متوافق مع جميع الخيارات (biphasic, PIC, `XOR`, وغيرها)
- **مخرجات محسّنة**:
  - تحويلات حجم كل ملف مع النسب
  - تحديد تفصيلي للبايتات السيئة عند الفشل
  - نسب النجاح/الفشل في الملخص
  - قائمة الملفات الفاشلة (أول 10 معروضة في السطر)
  - تعريف صارم للنجاح: الملفات التي تحتوي على بايتات سيئة متبقية تُعتبَر فاشلة

**مثال على مخرجات المعالجة الدفعية:**```
===== BATCH PROCESSING SUMMARY =====
Total files:       8
Successfully processed: 1 (12.5%)
Failed:            7 (87.5%)
Skipped:           0

Total input size:  650 bytes
Total output size: 764 bytes
Average size ratio: 1.18x

Bad bytes:    5 configured
Configured set:    0x00, 0x09, 0x0a, 0x0d, 0x20

FAILED FILES (7):
  - shellcode1.bin
  - shellcode2.bin
  ...

[!TIP] لمعالجة مجموعات كبيرة من شِل كود (shellcode) دفعةً واحدة، استخدم --no-continue-on-error لتحديد الملفات التي بها مشاكل مبكرًا، ثم عالجها بنجاح باستخدام --pattern لاستبعاد الملفات الفاشلة. يساعد علم --verbose في تتبع التقدم وتحديد الاستراتيجيات الأفضل لمجموعة الشِل كود الخاصة بك. لا تُحتسب الملفات ناجحة إلا إذا كانت تحتوي على صفر بايتات ضارة متبقية - يُعتبر النجاح الجزئي فشلًا.

خيارات الإخراج

  • الصيغ: ثنائي خام، مصفوفة C، بايتات بايثون، سلسلة سداسية عشرية
  • ترميز XOR مع كعب مفكك (--xor-encode 0xDEADBEEF)
  • كود مستقل عن الموضع (--pic)
  • إنشاء دليل الإخراج تلقائيًا

الإحصائيات

عند استخدام علم --stats، يوفر byvalver تحليلات تفصيلية:

إحصائيات استخدام الاستراتيجيات:

  • يوضح استراتيجيات التحويل التي تم تطبيقها
  • معدلات النجاح/الفشل لكل استراتيجية
  • عدد التطبيقات ومتوسط حجم الإخراج لكل استراتيجية

تحليل تعقيد الملفات:

  • الملفات الأكثر تعقيدًا (حسب عدد التعليمات)
  • أكبر/أصغر الملفات حسب حجم الإدخال
  • الملفات ذات أكبر نسب التوسع
  • إحصائيات إزالة البايتات الضارة لكل ملف

ملخص المعالجة الدفعية:

  • نسب النجاح/الفشل
  • تكوين مفصل للبايتات الضارة
  • قائمة الملفات الفاشلة مع خيارات حفظ القائمة الكاملة

مثال على الإخراج:``` ===== BATCH PROCESSING SUMMARY ===== Total files: 162 Successfully processed: 131 (80.9%) Failed: 31 (19.1%) Skipped: 0

Total input size: 35772920 bytes Total output size: 81609 bytes Average size ratio: 0.00x

Bad bytes: 3 configured Configured set: 0x00, 0x0a, 0x0d

FAILED FILES (31):

  • ./winwin.bin
  • ./stairslide_secure.bin ...

📊 DETAILED STATISTICS

STRATEGY USAGE STATISTICS: ┌─────────────────────────────────────────┬─────────┬─────────┬──────────────┬────────────────┐ │ Strategy Name │ Success │ Failure │ Applications │ Avg Output Size│ ├─────────────────────────────────────────┼─────────┼─────────┼──────────────┼────────────────┤ │ push_immediate_strategy │ 45 │ 3 │ 48 │ 12.34 │ │ mov_reg_mem_self │ 32 │ 1 │ 33 │ 8.21 │ │ ... │ ... │ ... │ ... │ ... │ └─────────────────────────────────────────┴─────────┴─────────┴──────────────┴────────────────┘

FILE COMPLEXITY ANALYSIS: Most Complex Files (by instruction count):

  • ./complex_payload.bin: 1245 instructions, 4096 -> 5201 bytes (1.27x)

Largest Files (by input size):

  • ./large_payload.bin: 8192 bytes input, 10485 bytes output (1.28x)

Smallest Files (by input size):

  • ./tiny_shellcode.bin: 64 bytes input, 89 bytes output (1.39x)

Largest Expansion (by size ratio):

  • ./expanded.bin: 512 -> 1024 bytes (2.00x expansion)
root@kitploit:~
### حزمة التحقق
أدوات بايثون للتحقق:
- `verify_denulled.py`: يضمن عدم وجود بايتات خاطئة (يدعم `--bad-bytes` للتحقق المخصص)
- `verify_functionality.py`: يتحقق من أنماط التنفيذ
- `verify_semantic.py`: يتحقق من التكافؤ

## البنية

يستخدم `byvalver` تصميمًا نمطيًا قائمًا على نمط الاستراتيجية:
- المرحلة 1: (اختياري) التعتيم لمكافحة التحليل
- المرحلة 2: إزالة البايتات الصفرية (Denullification)
- طبقة التعلم الآلي لتحسين الاستراتيجية
- نظام دُفعات لمعالجة قابلة للتوسع

<div align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/9982/8d3a1e20481460fedecaecda6f87bc21355fbbb1f1ef58d7fef4427eda36a381.png" alt="Strategy Categories Taxonomy" width="700">
</div>

## متطلبات النظام

- **نظام التشغيل**: Linux (Ubuntu/Debian/Fedora), macOS (مع Homebrew), Windows (عبر WSL/MSYS2)
- **المعالج**: x86/x64 مع تعليمات حديثة
- **الذاكرة**: 1GB متاح
- **القرص**: 50MB متاح
- **الأدوات**: مترجم `C`، Make، Git (موصى به)

## التبعيات

- **الأساسية**: GCC/Clang, GNU Make, `Capstone` (v4.0+), `NASM` (v2.13+), xxd
- **اختيارية**: Clang-Format, Cppcheck, Valgrind
- **تدريب التعلم الآلي**: مكتبات الرياضيات (مضمنة)

### أوامر التثبيت

**Ubuntu/Debian:**```bash
sudo apt update
sudo apt install build-essential nasm xxd pkg-config libcapstone-dev clang-format cppcheck valgrind

macOS (Homebrew) — macOS Tahoe 26 (والإصدارات الأحدث):```bash

Core build deps

brew install capstone nasm pkg-config

xxd is typically already present at /usr/bin/xxd on macOS.

If it isn't available for some reason, install Vim (xxd is bundled with it):

brew install vim

root@kitploit:~
### إصلاحات البناء لنظام macOS/Homebrew (تغييرات المستودع)
تم إجراء تغييرات حديثة لتحسين التوافق مع macOS/Homebrew (خاصة على Apple silicon مع بادئة Homebrew `/opt/homebrew`):
- تم تحديث `Makefile` و`makefile` لـ**استخدام `CPPFLAGS` أثناء الترجمة** و**`LDLIBS` أثناء الربط**، بحيث يتم احترام علامات Capstone المكتشفة عبر `pkg-config`.
- تم توحيد مسار تضمين Capstone الذي يخرجه `pkg-config` الخاص بـ Homebrew من `.../include/capstone` إلى `.../include` بحيث يتم حل `#include <capstone/capstone.h>` الخاص بالمشروع بشكل صحيح.

ملخص الفروقات (مستوى عالٍ):
- `$(CC) $(CFLAGS) -c ...` → `$(CC) $(CFLAGS) $(CPPFLAGS) -c ...`
- `$(CC) $(CFLAGS) -o ... $(LDFLAGS)` → `$(CC) $(CFLAGS) $(CPPFLAGS) -o ... $(LDFLAGS) $(LDLIBS)`
- `CAPSTONE_CFLAGS := pkg-config --cflags capstone` → normalized to an include path compatible with `<capstone/capstone.h>`

### استكشاف الأخطاء وإصلاحها (macOS)```bash
# Verify xxd is available (macOS usually ships /usr/bin/xxd)
command -v xxd

# Verify Capstone is discoverable via pkg-config
pkg-config --cflags capstone
pkg-config --libs capstone

# Clean rebuild
make clean
make

ويندوز (WSL): نفس الأمر بالنسبة لأوبونتو/ديبيان.

البناء

استخدم ملف Makefile للبناء:

  • افتراضي: make (ملف تنفيذي مُحسَّن)
  • تصحيح: make debug (رموز، sanitizers)
  • إصدار نهائي: make release (-O3، كود أصلي)
  • ثابت: make static (مكتفٍ بذاته)
  • مدرب التعلم الآلي: make train (bin/train_model)
  • تنظيف: make clean أو make clean-all

التخصيص:```bash make CC=clang CFLAGS="-O3 -march=native" CPPFLAGS="$(pkg-config --cflags capstone)"

root@kitploit:~
عرض التكوين: `make info`

## التثبيت

التثبيت الشامل:```bash
sudo make install
sudo make install-man

إلغاء التثبيت:```bash sudo make uninstall

root@kitploit:~
من GitHub:```bash
curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

الاستخدام```bash

byvalver [OPTIONS] [output]

root@kitploit:~
- يمكن أن يكون الإدخال/الإخراج ملفات أو مجلدات (معالجة دفعية تلقائية)

**الخيارات الأساسية:**
- `-h, --help`: المساعدة
- `-v, --version`: الإصدار
- `-V, --verbose`: مفصّل
- `-q, --quiet`: هادئ
- `--bad-bytes BYTES`: بايتات سداسية عشرية مفصولة بفواصل للحظر (الافتراضي: "00")
- `--profile NAME`: استخدام ملف تعريف بايتات سيئة محدد مسبقًا (مثل: http-newline, sql-injection)
- `--list-profiles`: سرد جميع ملفات تعريف البايتات السيئة المتاحة
- `--biphasic`: تعتيم + إزالة النول
- `--pic`: مستقل عن الموضع
- `--ml`: اختيار استراتيجية التعلم الآلي (ML)
- `--xor-encode KEY`: `XOR` مع كعب
- `--format FORMAT`: raw|c|python|hexstring
- `-r, --recursive`: معالجة دفعية متكررة
- `--pattern PATTERN`: نمط glob للملفات
- `--no-preserve-structure`: تسوية المخرجات
- `--no-continue-on-error`: التوقف عند حدوث خطأ
- `--menu`: تشغيل قائمة TUI تفاعلية

**أمثلة:**```bash
# Default: banish null bytes only (well-tested, recommended)
byvalver shellcode.bin clean.bin

# v3.0 NEW: List available bad-byte profiles
byvalver --list-profiles

# v3.0 NEW: Use predefined profile for HTTP contexts (eliminates 0x00, 0x0A, 0x0D)
byvalver --profile http-newline shellcode.bin clean.bin

# v3.0 NEW: Use profile for SQL injection contexts
byvalver --profile sql-injection shellcode.bin clean.bin

# v3.0 NEW: Use profile for URL-safe shellcode
byvalver --profile url-safe shellcode.bin clean.bin

# v3.0 NEW: Manual bad-byte specification (experimental - not extensively tested)
byvalver --bad-bytes "00,0a,0d" shellcode.bin clean.bin

# Combined with other features
byvalver --profile http-newline --biphasic --ml input.bin output.bin

# Batch processing with profile
byvalver -r --profile http-whitespace --pattern "*.bin" shellcodes/ output/

# Launch interactive TUI mode
byvalver --menu

استراتيجيات التعتيم

ممر التعتيم في byvalver (يتم تفعيله عبر --biphasic) يطبّق تقنيات مكافحة التحليل:

تقنيات التعتيم الأساسية

  • MOV Register Exchange: أنماط XCHG/push-pop
  • MOV Immediate: تفكيك حسابي
  • Arithmetic Substitution: مكافئات معقدة
  • Memory Access: عدم المباشرة (Indirection) و LEA
  • Stack Operations: معالجة يدوية لـ ESP
  • Conditional Jumps: SETcc والتحركات (moves)
  • Unconditional Jumps: آليات غير مباشرة
  • Calls: PUSH + JMP
  • Control Flow Flattening: حالات الموزّع (dispatcher)
  • Instruction Substitution: عمليات مكافئة
  • Dead Code: إدراجات غير ضارة
  • Register Reassignment: إخفاء تدفق البيانات
  • Multiplication by One: أنماط IMUL
  • NOP Sleds: حشو متغير
  • Polymorphic NOP Insertion: مكافئات NOP متعددة (XCHG EAX,EAX، LEA، MOV)
  • Constant Unfolding: تفكيك القيم المباشرة إلى عمليات حسابية
  • Register Renaming: استبدال سجلات قائم على XCHG
  • Stack Spill Obfuscation: عمليات حسابية قائمة على المكدس
  • Instruction Reordering: خلط التعليمات عبر إدراج NOP
  • Runtime Self-Modification: توليد كود ذاتي التعديل
  • Overlapping Instructions: تسلسلات بايتات متعددة التفسير
  • Jump Decoys: أهداف زائفة
  • Relative Offsets: قفزات محسوبة
  • Switch-Based: تدفق محسوب
  • Boolean Expressions: مكافئات دي مورغان (De Morgan)
  • Variable Encoding: تحويلات عكسية
  • Timing Variations: تأخيرات
  • Register State: تلاعبات معقدة
  • Stack Frames: إدارة مخصصة
  • API Resolution: تجزئة معقدة
  • String Encoding: فك تشفير في وقت التشغيل
  • Constants: توليد تعبيرات
  • Debugger Detection: فحوصات معتّمة
  • VM Detection: طرق مخفية

الأولويات تفضّل مكافحة التحليل (عالية) على الاستبدالات البسيطة (منخفضة).

انظر OBFUSCATION_STRATS للحصول على توثيق مفصّل للاستراتيجيات.

استراتيجيات إزالة النول

يستخدم ممر إزالة النول الأساسي أكثر من 170 استراتيجية:

استراتيجيات MOV

  • التمرير الأصلي
  • تفكيك NEG, NOT, XOR, Shift, ADD/SUB

الحسابية

  • الأصلية، NEG, XOR, ADD/SUB

القفزات/التحكم

  • مؤشرات CALL/JMP غير المباشرة
  • إزاحة ذاكرة عامة
  • إزالة الإزاحة الشرطية

متقدم

  • تجاوز ModR/M
  • TEST الحافظ للعلامات
  • عنونة SIB
  • تحسينات PUSH
  • خاص بويندوز: CALL/POP، تجزئة PEB، SALC، حساب LEA، shifts، سلاسل المكدس، إلخ.

ميزات x64 الحديثة

  • تحسين النسبية إلى RIP: تفكيك الإزاحة، حساب RIP مزدوج، طرق قائمة على المكدس
  • معالجة البتات: إعادة ترتيب البايتات عبر BSWAP، إنشاء قوى العدد 2 عبر BSF/BSR، عد البتات عبر POPCNT، BMI2 PEXT/PDEP
  • تراكم العلامات: إزالة القفزات الشرطية المستندة إلى SETcc مع عمليات علامات خطية

تعزيز التعتيم

  • تداخل NOP متعدد البايتات: NOPs حسابية، تدوير السجلات، NOPs شرطية، عمليات FPU
  • سلاسل تبعية السجلات: تحسين أنماط متعددة التعليمات، إعادة ترتيب التعليمات
  • عنونة الإزاحة السالبة: تعديلات سجل القاعدة، أنماط عنونة بديلة

الذاكرة/الإزاحة

  • معالجة الإزاحة الصفرية
  • بدائل LEA

يتم تحديد الأولويات واختيار الاستراتيجيات عبر ML أو ترتيب حتمي

السجل المعياري يتيح إضافة استراتيجيات جديدة بسهولة للتعامل مع أنماط شيل كود (shellcode) الناشئة.

انظر DENULL_STRATS للحصول على توثيق مفصّل للاستراتيجيات.

تدريب ML والتحقق

التدريب

بناء المدرب: make train

تشغيل: ./bin/train_model

  • البيانات: ./shellcodes/
  • المخرجات: ./ml_models/byvalver_ml_model.bin
  • الإعداد: 10k عيّنة، 50 حقبة، 20% تحقق، معدل التعلم 0.001، حجم دفعة 32

يتم تحميل النموذج تلقائيًا في وقت التشغيل مع حل المسار.

اختبار وضع ML```bash

Smoke test

./bin/byvalver --ml shellcodes/linux_x86/execve.bin output.bin

Check registry initialization

./bin/byvalver --ml test.bin output.bin 2>&1 | grep "ML Registry"

Expected: "ML Registry] Initialized with XXX strategies"

Batch processing with learning

./bin/byvalver --ml --batch shellcodes/linux_x86/*.bin output/

View metrics

cat ml_metrics.log

root@kitploit:~
**توصية:** يحتاج وضع التعلم الآلي إلى إعادة تدريب بمجموعات بيانات متنوعة من البايتات السيئة قبل الاستخدام في الإنتاج. وهو حاليًا محسَّن فقط للقضاء على البايتات الصفرية.

## تشكيلة الوكلاء

يوفّر `byvalver` خط أنابيب وكلاء مدعومًا بالذكاء الاصطناعي (`agents/`) يمكنه بشكل مستقل اكتشاف الفجوات في سجل الاستراتيجيات، واقتراح تقنية جديدة للتخلص من البايتات السيئة، وإنشاء تنفيذ C كامل، وربطه بالمشروع — كل ذلك بأمر واحد.

خط الأنابيب مبني على إطار عمل الوكلاء متعدد المزودين [AjintK](https://github.com/umpolungfish/byvalver/blob/main/AjintK) ويدعم **Anthropic** و**DeepSeek** و**Qwen** و**Mistral** و**Google** كأنظمة خلفية لنماذج اللغة الكبيرة.

### بدء سريع```bash
# Requires API key for your chosen provider
export ANTHROPIC_API_KEY="..."   # or DEEPSEEK_API_KEY, QWEN_API_KEY, etc.

# --- Specialized Generators ---

# 1. General Technique Generator (discover → propose → generate → implement)
python3 run_technique_generator.py

# 2. Obfuscation Technique Generator (specifically for anti-analysis/evasion)
python3 run_obfuscation_generator.py

# 3. Bad-Byte Removal Generator (targeting restricted byte elimination)
python3 run_badbyte_generator.py

# 4. Profile-Specific Strategy Generator (targeting a specific bad-byte profile)
python3 run_profile_generator.py --profile alphanumeric-only

# --- Common Options ---

# Dry-run: discover and propose only, no files written
python3 run_technique_generator.py --dry-run

# Target a specific architecture
python3 run_technique_generator.py --arch x64

# Use a different provider / model
python3 run_technique_generator.py --provider deepseek --model deepseek-chat

مراحل خط الأنابيب

المرحلةالوكيلالوظيفة
1StrategyDiscoveryAgentيفحص src/، ويستخرج جميع أسماء وفئات الاستراتيجيات الـ340+، ويطلب من LLM تلخيص فجوات التغطية
2TechniqueProposalAgentبناءً على الفهرس، يقترح تقنية جديدة أصيلة مع المبرر والتعليمات المستهدفة والمنهجية
3CodeGenerationAgentيولّد تنفيذًا كاملًا .h + .c متوافقًا مع strategy_t باستخدام strategy.h/utils.h/mov_strategies.c كمرجع
4ImplementationAgentيكتب الملفات إلى src/، ويرقّع strategy_registry.c (include → forward decl → register call)، ويشغّل make

الخيارات```

--dry-run Stop after Stage 2 — print proposal, write nothing --arch x86 | x64 | both (default: both) --provider anthropic | deepseek | qwen | mistral | google (default: anthropic) --model Model ID (provider-specific default applied if omitted) --verbose Print full LLM responses at each stage

root@kitploit:~
### المتطلبات```bash
# Install Python dependencies (uses AjintK framework)
pip install anthropic tenacity httpx pyyaml

# Or with uv (faster)
uv pip install -r AjintK/requirements.txt

تم التحقق من صحة خط الأنابيب باستخدام DeepSeek (deepseek-chat) وAnthropic (claude-sonnet-4-6). في تشغيل نموذجي، يكتشف أكثر من 340 استراتيجية، ويقترح تقنية (مثل إعادة ترميز بادئة VEX لتعليمات SSE/AVX)، ويولّد حوالي 200 سطر من كود C، وينتج بناءً نظيفًا — بالكامل دون تدخّل.

انظر docs/AGENT_MENAGERIE.md للحصول على تفاصيل البنية وتوسيع خط الأنابيب بوكلاء جدد.

التطوير

  • لغة C حديثة مع نمطية
  • مجموعة الاختبارات: bash tests/run_tests.sh (انظر tests/README.md)
  • نمط الكود: Clang-Format (الإعداد: .clang-format)، شغّل make format
  • التحليل: Cppcheck، Valgrind
  • Docker: docker build -t byvalver . (انظر Dockerfile)
  • المساهمة: انظر CONTRIBUTING.md
  • خارطة الطريق: انظر ROADMAP.md

التوثيق

التوثيق الكامل متاح في دليل docs/:

المستندالوصف
docs/USAGE.mdدليل استخدام شامل مع أمثلة
docs/BUILD.mdتعليمات البناء وملاحظات خاصة بالمنصة
docs/TUI_README.mdتوثيق واجهة TUI التفاعلية
docs/DENULL_STRATS.mdكتالوج استراتيجيات إزالة القيم الصفرية
docs/OBFUSCATION_STRATS.mdتوثيق تقنيات التعتيم
docs/BAD_BYTE_PROFILES.mdمرجع ملفات البايتات الضارة
docs/BADBYTEELIM_STRATS.mdاستراتيجيات الإزالة الموسعة
docs/STRATEGY_HIERARCHY.mdتنظيم الاستراتيجيات وأولوياتها
docs/ADVANCED_STRATEGIES.mdتقنيات التحويل المتقدمة
docs/WHITEPAPER.mdورقة بيضاء تقنية
docs/AGENT_MENAGERIE.mdخط أنابيب الوكلاء: التوليد التلقائي للتقنيات

استكشاف الأخطاء وإصلاحها

  • التبعيات: تحقق من Capstone/NASM/xxd
  • البناء: تحقق من PATH_MAX والترويسات
  • تعلّم الآلة: تأكد من مسار النموذج
  • القيم الصفرية: تأكد من تنسيق الإدخال والتبعيات

للمشاكل المستمرة، استخدم الوضع المفصّل وافحص السجلات

إذا فشل إقصاء البايتات الضارة على شيفرة shellcode معيّنة، ففكّر في إضافة استراتيجيات موجّهة إلى السجل.

الترخيص

يُطلَق byvalver بحرية على الأرض بموجب UNLICENSE.

تنزيل الأداة