اللغات: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
- هيكل الأدلة و CMake (مكتبة
nevercDynCode) -
ZeroRelocPass: مرحلتان (Prep + Stackify)، نقل المتغيرات العامة القابلة للتعديل إلى المكدس تلقائيًا -
Data2TextPass: مرحلتان (مصفوفات ثابتة → تخزين مقطعي على المكدس؛ تقسيم ثوابت المتجهات بعد SROA؛ ConstantFP → أنماط بتات محمّلة بـ volatile) -
SyscallStubPass: قائمة بيضاء مدفوعة بجدول تغطي Darwin BSD / Linux arm64 / Linux x86_64 / Android syscalls -
AllBlrPass: إعادة كتابة عدوانية اختيارية للاستدعاءات غير المباشرة -
DynCodeExtractor: Mach-O.o→.binمسطح مع ترقيع عمليات النقل داخل القسم - خيارات CLI عبر
neverc/include/neverc/Invoke/Options.td.hالمُولَّد:-fdyncode،-fdyncode-all-blr،-mdyncode-syscall،-fdyncode-keep-obj=،-fdyncode-entry= - PIC افتراضي على جميع المنصات (
isPICDefault()تعيدtrueعالميًا) - نقل تكراري عام إلى المكدس (جداول مؤشرات الدوال، جداول مؤشرات السلاسل، جداول الهياكل المتداخلة، مُهيئات ConstantExpr GEP/BitCast)
-
IndirectBrPass: GCC computed-goto (&&label) → switch، مع مشاركة جداول مواقع إرسال متعددة - تضمين ثوابت المتجهات SIMD (
inlineVectorConstants) - تخفيض تلقائي لـ
_Thread_localإلى static - محمّل macOS arm64 أصلي (MAP_JIT + تنظيف i-cache)
الاختبارات: 108/108 تأكيدات dyncode ناجحة. أحجام الثنائيات: add 8B، fib 64B، hello 64B، big_const 632B.
- تجريد
TargetDesc: اختلافات المنصات مدفوعة بجدول - دلالات
-mdyncode-syscallعبر المنصات (تحل محل-mdyncode-libsystemالخاص بـ Darwin) - جداول أرقام syscall لـ Linux / Android (Darwin BSD 100+، Linux arm64 130+، Linux x86_64 150+)
- إعادة هيكلة
DynCodeExtractorإلىMachOExtractor/ELFExtractor/COFFExtractor - مستخرج ELF (arm64:
R_AARCH64_CALL26/JUMP26/ADR_PREL_PG_HI21/إلخ؛ x86_64:R_X86_64_PC32/PLT32) - مستخرج COFF (arm64:
IMAGE_REL_ARM64_BRANCH26/إلخ؛ x86_64:IMAGE_REL_AMD64_REL32/إلخ) - مرور استيراد PEB لـ Windows (
WinPEBImportPass) مع محلل PEB walk حقيقي - قائمة بيضاء Win32 API متعددة DLL (~210 API عبر kernel32/ntdll/user32/ws2_32/advapi32/shell32)
-
MemIntrinPass: memcpy/memset/memmove/memcmp/bcmp/bzero/memchr + strlen/strcpy/strcmp/إلخ → مساعدات حلقة بايت مضمّنة -
CompilerRtPass: قسمة/باقي__int128→ مساعدات قسمة طويلة مضمّنة - دعم واجهة Windows
aarch64-pc-windows-msvc -
MIRPrepPass: إزالة تعليمات زائفة عبر المنصات (CFI/EH/XRay/StackMap/SEH/FENTRY/إلخ) - خطافات تشويش MIR + مستوى البايت (11 خطافًا عبر طبقات IR/MIR/تدفق البايت)
- تخفيض تلقائي لـ AArch64 غير Darwin
long doubleإلى binary64 - ملفات رأس وسيطة dyncode:
<windows.h>،<unistd.h>،<fcntl.h>،<sys/stat.h>،<sys/mman.h>،<string.h>،<stdlib.h> - طبقة توافق POSIX لـ Windows (13 جسرًا POSIX→Win32: write→WriteFile، mmap→VirtualAlloc، إلخ)
- إصلاح تلقائي للإعلانات الضمنية K&R (50+ توقيع POSIX قياسي)
- تنقية مدفوعة بجدول (ترميز ثابت لفروع العمارة → صفر)
-
KernelImportPass: إعادة كتابة تلقائية لمواقع الاستدعاء ring-0 مدعومة بمحلل - تشخيصات مدفوعة بجدول أسماء مساعدات النواة (
KernelHelperNames.def) -
<neverc/dyncode/kernel.h>لاتفاقيات نقطة الدخول ring-0 - فرض إزاحة صفر لنقطة الدخول (
placeEntryFirst) - خط أنابيب الإنهاء: SDK مُعيد كتابة البايتات المحظورة + SDK مشفّر مجموعة الأحرف + قيود الحجم
- واجهة الإضافات C خارج الشجرة (
NevercPluginAPI.h): 11 نقطة ربط dyncode (NEVERC_INTERPOSE_SC_*) - حقن
-mno-implicit-floatلـ x86_64 (يمنع تسرب مجمع ثوابت SSE للخلفية) - محمّلات عبر المنصات (macOS/Linux/Windows)
الاختبارات: 743+ تأكيدات dyncode، جميعها ناجحة عبر 8 أهداف ثلاثية. مجموعة اختبارات NeverC الكاملة: 1000+ اختبار ناجح.
- مشفّر dyncode قابل للطباعة ARM64 (مجموعة تعليمات فرعية 0x20–0x7e)
- مشفّر أبجدي رقمي x86_64
- توليد بذرة فك التشفير الذاتي (decoder stub)
- إحصائيات الحجم / الإنتروبيا بعد التشفير
- محرك متعدد الأشكال: نفس المصدر → تسلسلات بايت مكافئة مختلفة لكل عملية تجميع
- كود ذاتي التعديل: فك تشفير / فك ضغط جسم الحمولة في وقت التشغيل
- مكافحة الاكتشاف: تجنب أنماط توقيع dyncode المعروفة
- iOS arm64 (توقيع الكود + سيناريوهات كسر حماية JIT)
- Cortex-M / Thumb
- RISC-V 64