Skip to content

Latest commit

 

History

History
115 lines (82 loc) · 7.39 KB

File metadata and controls

115 lines (82 loc) · 7.39 KB

اللغات: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية

← التوثيق · ← مشروع NeverC

أمثلة NeverC

أمثلة قابلة للبناء توضح قدرات التجميع المتقاطع في NeverC. جميعها تُجمَّع متقاطعاً من macOS / Linux — بدون بيئة Windows.


الأمثلة المتاحة

Windows

المثال الوصف الميزات الرئيسية
برنامج تشغيل نواة Windows برنامج WDM أدنى تجميع متقاطع .sys من macOS/Linux، LTO تلقائي، مُرابط مدمج
برنامج تشغيل Windows + CET برنامج مع Intel CET Shadow Stack كود نواة متوافق مع CET، /guard:ehcont
برنامج تشغيل Windows + عائم برنامج مع فاصلة عائمة/SIMD فاصلة عائمة آمنة في وضع النواة
Windows Ring3 EXE تطبيق وحدة تحكم وضع المستخدم GetSystemInfo، تعداد العمليات، VirtualAlloc
Windows Ring3 DLL DLL وضع المستخدم ReadProcessMemory، VirtualAllocEx، تعداد الوحدات

Linux

مثال الوصف الميزات الرئيسية
Linux Hello World برنامج C بسيط ترجمة تبادلية من macOS/Windows
Linux POSIX برمجة أنظمة POSIX pthreads، mmap، pipe، إشارات
Linux ثابت ثنائي ثابت بالكامل ربط -static
Linux شبكة عرض مقبس TCP عميل/خادم
Linux رياضيات + zlib رياضيات + ضغط حساب مثلثات، zlib، CRC32

macOS

مثال الوصف الميزات الرئيسية
تطبيق macOS ملف تنفيذي أصلي Mach-O sysctl، uname، Mach host_info/task_info، فحص العمليات
مكتبة macOS الديناميكية مكتبة .dylib أصلية Mach vm_read/vm_write، vm_alloc/vm_dealloc، task_info، XOR

Android

مثال الوصف الميزات الرئيسية
Android ELF ملف ARM64 أصلي لأجهزة مروّتة ترجمة تبادلية لـ Android، dlopen/liblog، معلومات /proc، اكتشاف root
مكتبة مشتركة Android مكتبة .so أصلية ARM64 مكتبة مشتركة، mmap RWX، تشفير XOR

وحدات نواة Android (.ko)

لا حاجة لشجرة مصدر النواة — يقوم NeverC بالترجمة مقابل runtime المدمج الأدنى. ملف مصدر واحد يغطي GKI 5.10–6.12.

مثال الوصف الميزات الرئيسية
Kernel Hello وحدة .ko أدنى تمهيد kallsyms عبر kprobe، أبسط تحقق insmod
قالب تعريف النواة قالب حل الرموز الديناميكي kallsyms_lookup_name، ABI مستقر GKI، 5.10–6.12
Kernel Inline Interpose Interpose مضمّن على do_faccessat تصحيح آمن BTI/PAC، وضع context interpose، إعادة تموضع PC-نسبي
Kernel Syscall Interpose جدول syscall / inline / context interpose استبدال sys_call_table، interpose مضمّن، context interpose
Kernel Lowvis إدارة رؤية الوحدة رؤية list/sysfs/proc، أغلفة بيانات الاعتماد، حالة إنفاذ SELinux
Kernel Full SDK تكامل SDK كامل Netlink IPC، interposes، أغلفة بيانات الاعتماد، رؤية الوحدة، التحكم في سياسة SELinux، VMA، ملفات
Kernel Chardev جهاز حرفي + ioctl misc_register، إرسال ioctl، /proc seq_file
Kernel Netlink IPC netlink ثنائي الاتجاه أوامر PING/VERSION/ECHO، nvk_nl_open/nvk_nl_reply
Kernel Probe فحص تعليمة عشوائية neverc_krt_probe_register، سياق كامل للمسجلات، تسلسل حسب الأولوية، تخطٍّ/إعادة توجيه
Kernel Multi-File وحدة نواة متعددة الملفات استدعاء واحد لـ NEVERC_KRT_BOOTSTRAP()، حالة مشتركة weak_odr، تقسيم init/interpose/الأدوات

بدء سريع

كل مثال يتبع النمط نفسه:

cd examples/اسم-المثال
neverc make

تجاوز مسار المترجم عند الحاجة:

neverc make NEVERC=/path/to/neverc

أمثلة Linux تدعم اختيار البنية:

neverc make TARGET=aarch64-linux-gnu   # Build for ARM64
neverc make TARGET=x86_64-linux-gnu    # Build for x86_64 (default)

أمثلة macOS تدعم اختيار البنية:

neverc make TARGET=arm64-apple-macos     # Build for Apple Silicon (default)
neverc make TARGET=x86_64-apple-macos    # Build for Intel

أمثلة Android تستهدف ARM64 افتراضيًا:

cd examples/android-elf
neverc make            # Build
neverc make run        # Build + push to device + run via adb

أبرز ميزات تعدد المنصات

  • سلسلة أدوات واحدة: يتولى NeverC المعالجة المسبقة والترجمة والتحسين (LTO تلقائي) والربط في استدعاء واحد
  • SDK مضمَّن: Windows SDK/WDK وLinux sysroot (Ubuntu 22.04) وmacOS sysroot (macOS 14) وAndroid sysroot (NDK r26c, API 21+) مضمَّنة في runtime/ — صفر تبعيات خارجية
  • مستقل عن المضيف: البناء من macOS (arm64/x86_64) أو Linux (x86_64/aarch64) أو Windows بأوامر متطابقة
  • متعدد الأهداف: ترجمة متقاطعة إلى Windows PE (.sys/.exe/.dll) وLinux ELF وmacOS Mach-O (.dylib) وAndroid ELF من أي مضيف
  • دعم التصحيح: مرّر -g لمعلومات تصحيح DWARF؛ افحص باستخدام llvm-dwarfdump