Lingue: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
- Scheletro directory e CMake (libreria
nevercDynCode) -
ZeroRelocPass: due fasi (Prep + Stackify), impilamento automatico dei globali mutabili -
Data2TextPass: due fasi (array costanti → store a blocchi sullo stack; splitting costanti vettoriali post-SROA; ConstantFP → pattern di bit caricati con volatile) -
SyscallStubPass: whitelist guidata da tabella per Darwin BSD / Linux arm64 / Linux x86_64 / Android syscall -
AllBlrPass: riscrittura aggressiva opzionale delle chiamate indirette -
DynCodeExtractor: Mach-O.o→.binpiatto con patching delle rilocazioni intra-sezione - Opzioni CLI via
neverc/include/neverc/Invoke/Options.td.hgenerato:-fdyncode,-fdyncode-all-blr,-mdyncode-syscall,-fdyncode-keep-obj=,-fdyncode-entry= - PIC predefinito su tutte le piattaforme (
isPICDefault()restituiscetrueuniversalmente) - Impilamento ricorsivo generico (tabelle di puntatori a funzione, tabelle di puntatori a stringa, tabelle di strutture annidate, inizializzatori ConstantExpr GEP/BitCast)
-
IndirectBrPass: GCC computed-goto (&&label) → switch, inclusa condivisione tabelle multi-sito di dispatch - Inlining costanti vettoriali SIMD (
inlineVectorConstants) - Retrocessione automatica di
_Thread_locala static - Loader nativo macOS arm64 (MAP_JIT + i-cache flush)
Test: 108/108 asserzioni dyncode superate. Dimensioni binarie: add 8B, fib 64B, hello 64B, big_const 632B.
- Astrazione
TargetDesc: differenze di piattaforma guidate da tabella - Semantica
-mdyncode-syscallmultipiattaforma (sostituisce-mdyncode-libsystemsolo Darwin) - Tabelle numeri di syscall Linux / Android (Darwin BSD 100+, Linux arm64 130+, Linux x86_64 150+)
-
DynCodeExtractorrifattorizzato inMachOExtractor/ELFExtractor/COFFExtractor - Estrattore ELF (arm64:
R_AARCH64_CALL26/JUMP26/ADR_PREL_PG_HI21/etc.; x86_64:R_X86_64_PC32/PLT32) - Estrattore COFF (arm64:
IMAGE_REL_ARM64_BRANCH26/etc.; x86_64:IMAGE_REL_AMD64_REL32/etc.) - Pass di importazione PEB Windows (
WinPEBImportPass) con resolver PEB walk reale - Whitelist Win32 API multi-DLL (~210 API su kernel32/ntdll/user32/ws2_32/advapi32/shell32)
-
MemIntrinPass: memcpy/memset/memmove/memcmp/bcmp/bzero/memchr + strlen/strcpy/strcmp/etc. → helper di ciclo byte inline -
CompilerRtPass: divisione/modulo__int128→ helper di divisione lunga inline - Supporto frontend Windows
aarch64-pc-windows-msvc -
MIRPrepPass: rimozione pseudo-istruzioni multipiattaforma (CFI/EH/XRay/StackMap/SEH/FENTRY/etc.) - Interpose di offuscamento MIR + livello byte (11 interpose su livelli IR/MIR/flusso byte)
- Downgrade automatico AArch64 non-Darwin
long doublea binary64 - Header shim dyncode:
<windows.h>,<unistd.h>,<fcntl.h>,<sys/stat.h>,<sys/mman.h>,<string.h>,<stdlib.h> - Livello di compatibilità POSIX Windows (13 ponti POSIX→Win32: write→WriteFile, mmap→VirtualAlloc, etc.)
- Correzione automatica dichiarazioni implicite K&R (50+ firme POSIX canoniche)
- Purificazione guidata da tabella (codifica rigida rami architettura → zero)
-
KernelImportPass: riscrittura automatica dei callsite ring-0 con resolver - Diagnostica guidata da tabella nomi helper del kernel (
KernelHelperNames.def) -
<neverc/dyncode/kernel.h>per le convenzioni di punto d'ingresso ring-0 - Imposizione offset zero del punto d'ingresso (
placeEntryFirst) - Pipeline di finalizzazione: SDK rewriter byte proibiti + SDK encoder charset + vincoli dimensionali
- API Plugin C fuori dall'albero (
NevercPluginAPI.h): 11 interpose point dyncode (NEVERC_INTERPOSE_SC_*) - Iniezione
-mno-implicit-floatper x86_64 (previene spill del pool costanti SSE del backend) - Loader multipiattaforma (macOS/Linux/Windows)
Test: 743+ asserzioni dyncode, tutte superate su 8 triple. Suite NeverC completa: 1000+ test superati.
- Encoder dyncode stampabile ARM64 (sottoinsieme istruzioni 0x20–0x7e)
- Encoder alfanumerico x86_64
- Generazione stub auto-decodificante (decoder stub)
- Statistiche dimensione / entropia post-codifica
- Motore polimorfo: stesso sorgente → sequenze byte equivalenti diverse per compilazione
- Codice auto-modificante: decrittazione / decompressione del corpo payload a runtime
- Anti-rilevamento: evitare pattern di firma dyncode noti
- iOS arm64 (firma del codice + scenari jailbreak JIT)
- Cortex-M / Thumb
- RISC-V 64