Sprachen: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
- Verzeichnis- & CMake-Skelett (
nevercDynCode-Bibliothek) -
ZeroRelocPass: Zwei-Phasen (Prep + Stackify), automatische Stack-Übernahme veränderlicher Globaler -
Data2TextPass: Zwei-Phasen (konstante Arrays → Stack-Chunk-Stores; Post-SROA-Vektorkonstanten-Splitting; ConstantFP → volatile-geladene Bitmuster) -
SyscallStubPass: Tabellengesteuerte Whitelist für Darwin BSD / Linux arm64 / Linux x86_64 / Android-Syscalls -
AllBlrPass: Optionales aggressives Umschreiben indirekter Aufrufe -
DynCodeExtractor: Mach-O.o→ flache.binmit Intra-Section-Relokationspatching - CLI-Optionen via generierte
neverc/include/neverc/Invoke/Options.td.h:-fdyncode,-fdyncode-all-blr,-mdyncode-syscall,-fdyncode-keep-obj=,-fdyncode-entry= - Plattformübergreifendes Standard-PIC (
isPICDefault()gibt einheitlichtruezurück) - Generische rekursive Stack-Übernahme (Funktionszeigertabellen, Stringzeigertabellen, verschachtelte Strukturtabellen, ConstantExpr GEP/BitCast-Initialisierer)
-
IndirectBrPass: GCC computed-goto (&&label) → switch, einschließlich Multi-Dispatch-Site-Tabellenfreigabe - SIMD-Vektorkonstanten-Inlining (
inlineVectorConstants) -
_Thread_localautomatische Herabstufung zu static - Nativer macOS arm64 Loader (MAP_JIT + i-cache flush)
Tests: 108/108 DynCode-Assertions bestanden. Binärgrößen: add 8B, fib 64B, hello 64B, big_const 632B.
-
TargetDesc-Abstraktion: Tabellengesteuerte Plattformunterschiede - Plattformübergreifende
-mdyncode-syscall-Semantik (ersetzt Darwin-only-mdyncode-libsystem) - Linux / Android Syscall-Nummerntabellen (Darwin BSD 100+, Linux arm64 130+, Linux x86_64 150+)
-
DynCodeExtractorrefaktoriert inMachOExtractor/ELFExtractor/COFFExtractor - ELF-Extraktor (arm64:
R_AARCH64_CALL26/JUMP26/ADR_PREL_PG_HI21/etc.; x86_64:R_X86_64_PC32/PLT32) - COFF-Extraktor (arm64:
IMAGE_REL_ARM64_BRANCH26/etc.; x86_64:IMAGE_REL_AMD64_REL32/etc.) - Windows PEB Import Pass (
WinPEBImportPass) mit echtem PEB-Walk-Resolver - Multi-DLL Win32 API Whitelist (~210 APIs über kernel32/ntdll/user32/ws2_32/advapi32/shell32)
-
MemIntrinPass: memcpy/memset/memmove/memcmp/bcmp/bzero/memchr + strlen/strcpy/strcmp/etc. → Inline-Byteschleifenhelfer -
CompilerRtPass:__int128Division/Modulo → Inline-Langdivisionshelfer - Windows
aarch64-pc-windows-msvcFrontend-Unterstützung -
MIRPrepPass: Plattformübergreifendes Pseudo-Stripping (CFI/EH/XRay/StackMap/SEH/FENTRY/etc.) - MIR + Byte-Level-Obfuskationsinterposes (11 Interposes über IR/MIR/Byte-Stream-Schichten)
- AArch64 Nicht-Darwin
long doubleautomatisches Downgrade auf binary64 - DynCode-Shim-Header:
<windows.h>,<unistd.h>,<fcntl.h>,<sys/stat.h>,<sys/mman.h>,<string.h>,<stdlib.h> - Windows POSIX-Kompatibilitätsschicht (13 POSIX→Win32-Brücken: write→WriteFile, mmap→VirtualAlloc, etc.)
- K&R implizite Deklaration Auto-Fix (50+ kanonische POSIX-Signaturen)
- Tabellengesteuerte Bereinigung (Architekturzweig-Hardcodierung → null)
-
KernelImportPass: Ring-0 automatisches resolvergestütztes Callsite-Umschreiben - Kernel-Helpername tabellengesteuerte Diagnostik (
KernelHelperNames.def) -
<neverc/dyncode/kernel.h>für Ring-0-Eintrittspunktkonventionen - Einstiegspunkt-Offset-Null-Erzwingung (
placeEntryFirst) - Finalize-Pipeline: Bad-Byte-Rewriter SDK + Charset-Encoder SDK + Größenbeschränkungen
- Out-of-Tree C Plugin-API (
NevercPluginAPI.h): 11 DynCode-Interpose-Punkte (NEVERC_INTERPOSE_SC_*) - x86_64
-mno-implicit-float-Injektion (verhindert Backend-SSE-Konstantenpoolauslagerung) - Plattformübergreifende Loader (macOS/Linux/Windows)
Tests: 743+ DynCode-Assertions, alle bestanden über 8 Triples. Gesamte NeverC-Suite: 1000+ Tests bestanden.
- ARM64 druckbarer DynCode-Encoder (0x20–0x7e Instruktionssubset)
- x86_64 alphanumerischer Encoder
- Selbstdekodierender Stub (Decoder Stub) Erzeugung
- Post-Encoding Größen- / Entropiestatistiken
- Polymorphe Engine: gleicher Quellcode → unterschiedliche äquivalente Bytefolgen pro Kompilierung
- Selbstmodifizierender Code: Laufzeitentschlüsselung / -dekompression des Payload-Bodys
- Anti-Erkennung: Vermeidung bekannter DynCode-Signaturmuster
- iOS arm64 (Code-Signierung + JIT Jailbreak-Szenarien)
- Cortex-M / Thumb
- RISC-V 64