言語: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
- ディレクトリ& CMake スケルトン(
nevercDynCodeライブラリ) -
ZeroRelocPass:2 フェーズ(Prep + Stackify)、可変グローバルの自動スタック化 -
Data2TextPass:2 フェーズ(定数配列 → スタックチャンクストア、SROA 後ベクタ定数分割、ConstantFP → volatile ロードビットパターン) -
SyscallStubPass:テーブル駆動ホワイトリスト、Darwin BSD / Linux arm64 / Linux x86_64 / Android syscall をカバー -
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 flush)
テスト:108/108 dyncode アサーション合格。バイナリサイズ:add 8B、fib 64B、hello 64B、big_const 632B。
-
TargetDesc抽象化:テーブル駆動のプラットフォーム差異 - クロスプラットフォーム
-mdyncode-syscallセマンティクス(Darwin 専用の-mdyncode-libsystemを置き換え) - Linux / Android syscall 番号テーブル(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/等) - Windows PEB インポートパス(
WinPEBImportPass)、リアル PEB walk リゾルバ付き - マルチ DLL Win32 API ホワイトリスト(kernel32/ntdll/user32/ws2_32/advapi32/shell32 にわたる約 210 API)
-
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 + バイトレベル難読化フック(IR/MIR/バイトストリーム 3 層で計 11 フック)
- AArch64 非 Darwin
long doublebinary64 への自動ダウングレード - DynCode シムヘッダー:
<windows.h>、<unistd.h>、<fcntl.h>、<sys/stat.h>、<sys/mman.h>、<string.h>、<stdlib.h> - Windows POSIX 互換レイヤー(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 プラグイン API(
NevercPluginAPI.h):11 dyncode フックポイント(NEVERC_INTERPOSE_SC_*) - x86_64
-mno-implicit-floatインジェクション(バックエンド SSE 定数プールスピル防止) - クロスプラットフォームローダー(macOS/Linux/Windows)
テスト:743+ dyncode アサーション、8 トリプルすべてで合格。NeverC 全体のテストスイート:1000+ テスト合格。
- ARM64 印字可能 dyncode エンコーダー(0x20–0x7e 命令サブセット)
- x86_64 英数字エンコーダー
- 自己デコードスタブ(decoder stub)生成
- エンコード後サイズ / エントロピー統計
- ポリモーフィックエンジン:同一ソース → コンパイルごとに異なる等価バイト列
- 自己書き換えコード:実行時ペイロード本体の復号 / 解凍
- 検出回避:既知の dyncode シグネチャパターンの回避
- iOS arm64(コード署名 + JIT ジェイルブレイクシナリオ)
- Cortex-M / Thumb
- RISC-V 64