Skip to content

Latest commit

 

History

History
111 lines (80 loc) · 7.34 KB

File metadata and controls

111 lines (80 loc) · 7.34 KB

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

← ドキュメント索引 · ← NeverC プロジェクト

NeverC サンプル

NeverC のクロスプラットフォームコンパイル機能を示すビルド可能なサンプル集。すべて macOS / Linux からクロスコンパイル可能 — Windows ビルド環境不要。


サンプル一覧

Windows

サンプル 説明 主要機能
Windows カーネルドライバ 最小 WDM カーネルドライバ macOS/Linux から .sys をクロスコンパイル、自動 LTO、内蔵リンカ
Windows ドライバ + CET Intel CET シャドウスタック付きカーネルドライバ 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 root 端末向けネイティブ ARM64 バイナリ Android クロスコンパイル、dlopen/liblog、/proc 情報、root 検出
Android 共有ライブラリ ネイティブ ARM64 .so ライブラリ 共有ライブラリ、mmap RWX、XOR 暗号化

Android カーネルモジュール (.ko)

カーネルソースツリー不要 — NeverC は組み込みの最小ランタイムに対してコンパイルします。単一ソースで GKI 5.10–6.12 をカバー。

サンプル 説明 主要機能
カーネル Hello 最小 .ko モジュール kprobe 経由の kallsyms ブートストラップ、最小限の insmod 検証
カーネルドライバテンプレート 動的シンボル解決テンプレート kallsyms_lookup_name、GKI 安定 ABI、5.10–6.12
カーネルインラインフック do_faccessat のインラインフック BTI/PAC セーフパッチ、コンテキストフックモード、PC 相対リロケーション
カーネル Syscall フック syscall テーブル / inline / context interpose sys_call_table 置換、インラインフック、コンテキストフック
カーネル低可視性 モジュール可視性管理 list/sysfs/proc 可視性、資格情報ラッパー、SELinux 強制状態
カーネル Full SDK 完全 SDK 統合 Netlink IPC、interpose、資格情報ラッパー、モジュール可視性、SELinux ポリシー制御、VMA、ファイル I/O
カーネル Chardev キャラクタデバイス + ioctl misc_register、ioctl ディスパッチ、/proc seq_file
カーネル Netlink 双方向 netlink IPC PING/VERSION/ECHO コマンド、nvk_nl_open/nvk_nl_reply
カーネル Probe 任意の命令をプローブ neverc_krt_probe_register、全レジスタコンテキスト、優先度チェーン、スキップ/リダイレクト
カーネル複数ファイルモジュール 複数ファイルのカーネルモジュール NEVERC_KRT_BOOTSTRAP() は一度だけ、weak_odr 共有状態、init/interpose/helper の分割

クイックスタート

すべての例は同じパターンに従います:

cd examples/example-name
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)、リンクを 1 回の呼び出しで処理します
  • バンドル 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 で検査可能