Skip to content

Latest commit

 

History

History
130 lines (94 loc) · 9.98 KB

File metadata and controls

130 lines (94 loc) · 9.98 KB

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

← Документация · ← Проект NeverC

Примеры NeverC

Полные собираемые примеры, демонстрирующие кроссплатформенную компиляцию NeverC. Все кросс-компилируются с macOS / Linux — среда Windows не требуется.


Доступные примеры

Серверные бэкенды

Пример Описание Ключевые возможности
Авторитетный игровой сервер Кроссплатформенный игровой бэкенд Фиксированный tick 60 Гц, TCP-сессии, ввод UDP/QUIC, защита от replay
Сборщик античита Усиленный сбор телеметрии mTLS, потоковый NRPC, HMAC-телеметрия, ограниченный конвейер аудита

Windows

Пример Описание Ключевые возможности
Драйвер ядра Windows Минимальный WDM-драйвер ядра Кросс-компиляция .sys для x64 (по умолчанию) и ARM64, авто-LTO, встроенный линкер
Драйвер Windows + CET Драйвер с Intel CET Shadow Stack CET-совместимый код ядра (только x64), /guard:ehcont
Драйвер Windows + плавающая точка Драйвер с плавающей точкой/SIMD Безопасная плавающая точка в режиме ядра на x64 и ARM64
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 Math + 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 Нативная ARM64 .so библиотека Разделяемая библиотека, mmap RWX, XOR-шифрование

Модули ядра Android (.ko)

Исходный код ядра не требуется — NeverC компилирует против встроенного минимального рантайма. Один файл поддерживает GKI 5.10–6.12.

Пример Описание Ключевые особенности
Kernel Hello Минимальный .ko модуль Бутстрап kallsyms через kprobe, простейшая проверка insmod
Шаблон драйвера Шаблон динамического разрешения символов kallsyms_lookup_name, стабильный ABI GKI, 5.10–6.12
Kernel Inline Interpose Инлайн-хук на do_faccessat BTI/PAC-безопасный патч, контекстный хук, PC-относительная релокация
Kernel Syscall Interpose Таблица syscall / inline / context interpose Замена sys_call_table, инлайн-хук, контекстный хук
Kernel Lowvis Управление видимостью модуля Видимость list/sysfs/proc, обёртки учётных данных, состояние enforcement SELinux
Kernel Full SDK Полная интеграция SDK Netlink IPC, interpose, обёртки учётных данных, видимость модуля, управление политикой SELinux, VMA, файловый I/O
Kernel Chardev Символьное устройство + ioctl misc_register, диспетчеризация ioctl, /proc seq_file
Kernel Netlink Двунаправленный netlink IPC Команды 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/example-name
neverc make

О самом драйвере Makefile см. neverc build / make →.

При необходимости переопределите путь к компилятору:

neverc make NEVERC=/path/to/neverc

Примеры драйверов Windows выбирают архитектуру через ARCH (по умолчанию x64). Пример CET — только x64: CET — это функция x86:

neverc make ARCH=x64        # Build for x64 (default)
neverc make ARCH=arm64      # Build for ARM64
neverc make all-arch        # Build every architecture the example supports
neverc make TESTSIGN=1      # Attach an Authenticode test signature

Примеры 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