
يأخذ البايتات الضارة في الشيل كود ويُبعدها، معيدًا شيل كود نظيفًا مع الحفاظ على وظائفه
نظرة عامة • بدء سريع • واجهة TUI التفاعلية • إزالة البايتات الضارة المستهدفة • ملفات تعريف البايتات الضارة • الميزات • البنية • متطلبات النظام • التبعيات • البناء • التثبيت • الاستخدام • استراتيجيات التعتيم • استراتيجيات إزالة النول • تدريب ML • مجموعة الوكلاء • التطوير • استكشاف الأخطاء • الترخيص
byvalver هي أداة سطر أوامر مبنية بلغة C للإزالة التلقائية (أو "طرد") للـ bad-bytes من شيلكود x86/x64/ARM/ARM64 مع الحفاظ على التكافؤ الوظيفي الكامل
الجديد في v4.0: دعم متعدد البنى
| البنية | النضج | الاستراتيجيات | ملاحظات |
|---|---|---|---|
| x86 (Intel/AMD 32-بت) | مستقر v4.2 | 150+ | مُختبَر في الإنتاج، تغطية كاملة |
| x64 (Intel/AMD 64-بت) | مستقر v4.2 | 150+ | البنية الافتراضية، مُختبَر في الإنتاج |
| ARM (32-بت) | تجريبي v0.1 | 7 أساسية | اختبار محدود، تعليمات أساسية فقط |
| ARM64 (AArch64) | تجريبي v0.1 | أساسية | الإطار جاهز، استراتيجيات قليلة |
--archإصلاحات أخطاء v4.0.1:
can_handle لاستراتيجيات ARM64 الخاصة بالاستراتيجيات الممررةالجديد في v4.2: دعم محسّن لـ x64
is_64bit_register()، is_extended_register()، build_rex_prefix()تستخدم الأداة إطار عمل التفكيك Capstone لتحليل التعليمات وتطبق أكثر من 175+ استراتيجية تحويل مرتبة لاستبدال الكود الذي يحتوي على bad-byte ببدائل مكافئة
يوفر إطار عمل طرد bad-byte العام وضعين للاستخدام:
--bad-bytes بتحديد بايتات عشوائية لطردها (مثل --bad-bytes "00,0a,0d" لشيلكود آمن ضد أسطر جديدة)--profile مجموعات بايتات ضارة مُعدة مسبقًا لسيناريوهات الاستغلال الشائعة (مثل --profile http-newline, --profile sql-injection, --profile alphanumeric-only)يدعم Windows و Linux و macOS
التقنية الأساسية:
C نقية للكفاءة والتحكم منخفض المستوىCapstone للتفكيك الدقيقNASM لتوليد دعائم فك التشفير[!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
**الخيار 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
**استخدام ملفات تعريف البايتات السيئة:**```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
byvalver --bad-bytes "00,0a,0d" input.bin output.bin
**الميزات المتقدمة:**```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
python3 verify_denulled.py --bad-bytes "00,0a,0d" output.bin
python3 verify_functionality.py input.bin output.bin
### دعم البنى المتعددة
يدعم `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
**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
**ملاحظات:**
- دعم 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، بما في ذلك:
شغّل الواجهة النصية باستخدام العلامة --menu:```bash
byvalver --menu
### الميزات الرئيسية:
توفر الواجهة النصية (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 للحصول على قالب إعدادات كامل.
تتوفر طريقتان للإدخال:
00,0a,0d)يتطلب الوضع التفاعلي تثبيت مكتبة ncurses على نظامك:```bash
sudo apt install libncurses-dev
sudo dnf install ncurses-devel
brew install ncurses
سيتحقق التطبيق تلقائيًا من توفر 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
**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
للحصول على توثيق مفصّل للملفات الشخصية، انظر [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%
### تكوين وتشغيل```
🏆 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%
### طبقة التعتيم
وضع `--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
FAILED FILES (31):
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):
Largest Files (by input size):
Smallest Files (by input size):
Largest Expansion (by size ratio):
### حزمة التحقق
أدوات بايثون للتحقق:
- `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
brew install capstone nasm pkg-config
brew install vim
### إصلاحات البناء لنظام 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)"
عرض التكوين: `make info`
## التثبيت
التثبيت الشامل:```bash
sudo make install
sudo make install-man
إلغاء التثبيت:```bash sudo make uninstall
من GitHub:```bash
curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash
byvalver [OPTIONS] [output]
- يمكن أن يكون الإدخال/الإخراج ملفات أو مجلدات (معالجة دفعية تلقائية)
**الخيارات الأساسية:**
- `-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-popMOV Immediate: تفكيك حسابيArithmetic Substitution: مكافئات معقدةMemory Access: عدم المباشرة (Indirection) و LEAStack Operations: معالجة يدوية لـ ESPConditional Jumps: SETcc والتحركات (moves)Unconditional Jumps: آليات غير مباشرةCalls: PUSH + JMPControl Flow Flattening: حالات الموزّع (dispatcher)Instruction Substitution: عمليات مكافئةDead Code: إدراجات غير ضارةRegister Reassignment: إخفاء تدفق البياناتMultiplication by One: أنماط IMULNOP Sleds: حشو متغيرPolymorphic NOP Insertion: مكافئات NOP متعددة (XCHG EAX,EAX، LEA، MOV)Constant Unfolding: تفكيك القيم المباشرة إلى عمليات حسابيةRegister Renaming: استبدال سجلات قائم على XCHGStack Spill Obfuscation: عمليات حسابية قائمة على المكدسInstruction Reordering: خلط التعليمات عبر إدراج NOPRuntime 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 استراتيجية:
MOVNEG, NOT, XOR, Shift, ADD/SUBNEG, XOR, ADD/SUBCALL/JMP غير المباشرةTEST الحافظ للعلاماتSIBPUSHCALL/POP، تجزئة PEB، SALC، حساب LEA، shifts، سلاسل المكدس، إلخ.LEAيتم تحديد الأولويات واختيار الاستراتيجيات عبر ML أو ترتيب حتمي
السجل المعياري يتيح إضافة استراتيجيات جديدة بسهولة للتعامل مع أنماط شيل كود (shellcode) الناشئة.
انظر DENULL_STRATS للحصول على توثيق مفصّل للاستراتيجيات.
بناء المدرب: make train
تشغيل: ./bin/train_model
./shellcodes/./ml_models/byvalver_ml_model.binيتم تحميل النموذج تلقائيًا في وقت التشغيل مع حل المسار.
./bin/byvalver --ml shellcodes/linux_x86/execve.bin output.bin
./bin/byvalver --ml test.bin output.bin 2>&1 | grep "ML Registry"
./bin/byvalver --ml --batch shellcodes/linux_x86/*.bin output/
cat ml_metrics.log
**توصية:** يحتاج وضع التعلم الآلي إلى إعادة تدريب بمجموعات بيانات متنوعة من البايتات السيئة قبل الاستخدام في الإنتاج. وهو حاليًا محسَّن فقط للقضاء على البايتات الصفرية.
## تشكيلة الوكلاء
يوفّر `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
| المرحلة | الوكيل | الوظيفة |
|---|---|---|
| 1 | StrategyDiscoveryAgent | يفحص src/، ويستخرج جميع أسماء وفئات الاستراتيجيات الـ340+، ويطلب من LLM تلخيص فجوات التغطية |
| 2 | TechniqueProposalAgent | بناءً على الفهرس، يقترح تقنية جديدة أصيلة مع المبرر والتعليمات المستهدفة والمنهجية |
| 3 | CodeGenerationAgent | يولّد تنفيذًا كاملًا .h + .c متوافقًا مع strategy_t باستخدام strategy.h/utils.h/mov_strategies.c كمرجع |
| 4 | ImplementationAgent | يكتب الملفات إلى 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
### المتطلبات```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)make formatdocker build -t byvalver . (انظر Dockerfile)التوثيق الكامل متاح في دليل 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للمشاكل المستمرة، استخدم الوضع المفصّل وافحص السجلات
إذا فشل إقصاء البايتات الضارة على شيفرة shellcode معيّنة، ففكّر في إضافة استراتيجيات موجّهة إلى السجل.
يُطلَق byvalver بحرية على الأرض بموجب UNLICENSE.