Idiomas: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
- Esqueleto de directorio y CMake (biblioteca
nevercDynCode) -
ZeroRelocPass: dos fases (Prep + Stackify), apilamiento automático de globales mutables -
Data2TextPass: dos fases (arrays constantes → almacenamiento en pila por fragmentos; división de constantes vectoriales post-SROA; ConstantFP → patrones de bits cargados con volatile) -
SyscallStubPass: whitelist basada en tabla para Darwin BSD / Linux arm64 / Linux x86_64 / Android syscalls -
AllBlrPass: reescritura agresiva opcional de llamadas indirectas -
DynCodeExtractor: Mach-O.o→.binplano con parcheo de reubicaciones intra-sección - Opciones CLI via
neverc/include/neverc/Invoke/Options.td.hgenerado:-fdyncode,-fdyncode-all-blr,-mdyncode-syscall,-fdyncode-keep-obj=,-fdyncode-entry= - PIC por defecto en todas las plataformas (
isPICDefault()retornatrueuniversalmente) - Apilamiento recursivo genérico (tablas de punteros a función, tablas de punteros a cadena, tablas de estructuras anidadas, inicializadores ConstantExpr GEP/BitCast)
-
IndirectBrPass: GCC computed-goto (&&label) → switch, incluyendo compartición de tablas de múltiples sitios de despacho - Inlining de constantes vectoriales SIMD (
inlineVectorConstants) - Degradación automática de
_Thread_locala static - Cargador nativo macOS arm64 (MAP_JIT + i-cache flush)
Tests: 108/108 aserciones de dyncode pasadas. Tamaños binarios: add 8B, fib 64B, hello 64B, big_const 632B.
- Abstracción
TargetDesc: diferencias de plataforma basadas en tabla - Semántica
-mdyncode-syscallmultiplataforma (reemplaza-mdyncode-libsystemexclusivo de Darwin) - Tablas de números de syscall Linux / Android (Darwin BSD 100+, Linux arm64 130+, Linux x86_64 150+)
-
DynCodeExtractorrefactorizado enMachOExtractor/ELFExtractor/COFFExtractor - Extractor ELF (arm64:
R_AARCH64_CALL26/JUMP26/ADR_PREL_PG_HI21/etc.; x86_64:R_X86_64_PC32/PLT32) - Extractor COFF (arm64:
IMAGE_REL_ARM64_BRANCH26/etc.; x86_64:IMAGE_REL_AMD64_REL32/etc.) - Paso de importación PEB de Windows (
WinPEBImportPass) con resolver PEB walk real - Whitelist Win32 API multi-DLL (~210 APIs en kernel32/ntdll/user32/ws2_32/advapi32/shell32)
-
MemIntrinPass: memcpy/memset/memmove/memcmp/bcmp/bzero/memchr + strlen/strcpy/strcmp/etc. → helpers de bucle de bytes inline -
CompilerRtPass: división/módulo__int128→ helpers de división larga inline - Soporte frontend Windows
aarch64-pc-windows-msvc -
MIRPrepPass: eliminación de pseudo-instrucciones multiplataforma (CFI/EH/XRay/StackMap/SEH/FENTRY/etc.) - Interposes de ofuscación MIR + nivel de byte (11 interposes en capas IR/MIR/flujo de bytes)
- Degradación automática de AArch64 no-Darwin
long doublea binary64 - Cabeceras shim de dyncode:
<windows.h>,<unistd.h>,<fcntl.h>,<sys/stat.h>,<sys/mman.h>,<string.h>,<stdlib.h> - Capa de compatibilidad POSIX de Windows (13 puentes POSIX→Win32: write→WriteFile, mmap→VirtualAlloc, etc.)
- Corrección automática de declaración implícita K&R (50+ firmas POSIX canónicas)
- Purificación basada en tabla (codificación rígida de ramas de arquitectura → cero)
-
KernelImportPass: reescritura automática de sitios de llamada respaldada por resolver ring-0 - Diagnósticos basados en tabla de nombres de helpers del kernel (
KernelHelperNames.def) -
<neverc/dyncode/kernel.h>para convenciones de punto de entrada ring-0 - Imposición de offset cero del punto de entrada (
placeEntryFirst) - Pipeline de finalización: SDK de reescritor de bytes prohibidos + SDK de codificador de charset + restricciones de tamaño
- API de Plugins C fuera del árbol (
NevercPluginAPI.h): 11 puntos de enganche dyncode (NEVERC_INTERPOSE_SC_*) - Inyección de
-mno-implicit-floatpara x86_64 (previene desbordamiento de pool de constantes SSE del backend) - Cargadores multiplataforma (macOS/Linux/Windows)
Tests: 743+ aserciones de dyncode, todas pasadas en 8 triples. Suite NeverC completa: 1000+ tests pasados.
- Codificador de dyncode imprimible ARM64 (subconjunto de instrucciones 0x20–0x7e)
- Codificador alfanumérico x86_64
- Generación de stub autodescodificante (decoder stub)
- Estadísticas de tamaño / entropía post-codificación
- Motor polimórfico: mismo código fuente → secuencias de bytes equivalentes diferentes por compilación
- Código automodificante: descifrado / descompresión del cuerpo del payload en tiempo de ejecución
- Anti-detección: evitar patrones de firma de dyncode conocidos
- iOS arm64 (firma de código + escenarios de jailbreak JIT)
- Cortex-M / Thumb
- RISC-V 64