
SDK de protection logicielle C++20 à en-tête unique avec virtualisation de code par VM polymorphe, obfuscation MBA et de chaînes à la compilation, plus de 25 primitives cryptographiques, anti-débogage/anti-dump et licence HWID.
aegis_protection.hpp)SDK de virtualisation de code, d'obfuscation, de cryptographie et d'anti-falsification C++20 en un seul en-tête
SDK de protection logicielle C++20 en un seul en-tête, sans dépendances, de qualité industrielle (plus de 10 145 lignes de code dans un unique fichier .hpp) : machine virtuelle hybride pile-registres à bytecode polymorphe, compilateur de script de type C vers V-ISA, plus de 25 primitives cryptographiques, obfuscation à la compilation, anti-débogage, chien de garde d'intégrité mémoire à l'exécution, VFS chiffré et licence liée au matériel.
Aucune dépendance externe, aucun script de compilation complexe, aucun encombrement — strictement le SDK en un seul en-tête et sa suite de tests de vérification :
├── aegis_protection.hpp # Single-header C++20 SDK (10,145 LOC, 67 integrated subsystems)
├── test_all_in_one.cpp # Complete verification suite (20 test suites + 12 crypto KAT checks)
└── README.md # Bilingual documentation & developer manual (EN / RU)
Incluez aegis_protection.hpp directement dans votre projet C++20 :
#include "aegis_protection.hpp"
cl /std:c++20 /EHsc /W4 /O2 test_all_in_one.cpp /Fe:test_all_in_one.exe
.\test_all_in_one.exe
clang++ -std=c++20 -O2 -Wall -Wextra test_all_in_one.cpp -o test_all_in_one
./test_all_in_one
flowchart LR
A["Source Logic / Script"] --> B["AegisScript / BytecodeBuilder"]
B --> C["IR Obfuscation Passes<br/>(Constant Blinding, MBA, Junk)"]
C --> D["Polymorphic Opcode Map<br/>(Compile-Time Shuffle)"]
D --> E["Rolling-Key Cipher<br/>+ BytecodeEnvelope"]
E --> F["Aegis Virtual Machine<br/>(MBA Dispatch + Ephemeral Wipe)"]
G["IntegrityWatchdog + VEH Guard"] --> F
| Catégorie | Espace de noms | Classes clés et capacités |
|---|---|---|
| Virtualisation de code (VM) | aegis::vm | VirtualMachine, BytecodeBuilder, BytecodeChunk, VMContext, NativeBridge, PolymorphicOpcodeMap (permutation de 256 opcodes Fisher-Yates à la compilation), V-ISA étendu (OP_BSWAP, OP_POPCNT, OP_VMEMCPY, OP_VMEMSET, OP_REKEY, OP_JUNK) |
| Compilateur VM et chaîne d'outils | aegis::vm::* | AegisScriptCompiler (compile des scripts de type C en bytecode V-ISA), VmTextAssembler (assembleur textuel avec étiquettes), BytecodeDisassembler (+ constructeur de CFG), BytecodeDecompiler (élève le bytecode en pseudocode C), BytecodeObfuscationPipeline, SsaLifter (SSA + allocateur à balayage linéaire), BytecodeAbstractInterpreter, VMProfiler, VMDebugger |
| Obfuscation à la compilation | aegis::obf | Mba (Mixed Boolean Arithmetic), AEGIS_STR / AEGIS_STR_OBJ (chiffrement de chaînes constexpr avec remise à zéro automatique de la pile), AEGIS_INT / ObfuscatedInt, prédicats Opaque, FlatteningMachine (aplatissement du flux de contrôle), EncryptedDispatchTable |
| Chiffrements symétriques et AEAD | aegis::crypto | Aes256 (ECB/CBC/CTR + PKCS#7), ChaCha20, ChaCha20Poly1305 (AEAD RFC 8439), XChaCha20 (nonce de 192 bits), Salsa20, Camellia256 (RFC 3713), Serpent256 (SPN à 32 tours), Threefish512 (72 tours), Blowfish, Rc6_256, Speck128, Simon128, Sm4, XTea |
| Hachages cryptographiques et KDF | aegis::crypto | Sha256 (FIPS 180-4 + HMAC), Sha512 / Sha384 (+ HMAC), Keccak1600 (sha3_256, sha3_512, shake256), Blake2b, Blake2s, Ascon320 (NIST SP 800-232), Sm3, Poly1305, SipHash24, KdfEngine (pbkdf2_hmac_sha256, hkdf_extract/expand, memory_hard_derive), ChaCha20Drbg (CSPRNG + UUIDv4) |
| Clé publique, partage de secret et ECC | aegis::crypto / aegis::math | X25519 (ECDH Curve25519 RFC 7748), Uint256 (mod_add, mod_mul, mod_pow), ShamirSecretSharing (seuil $(K, N)$ dans $GF(2^8)$), SelfHealingBuffer (Hamming SEC-DED + récupération par parité XOR en RAM), MerkleTree (preuves d'inclusion), WhiteBoxByteNetwork |
| Anti-débogage et défense mémoire | aegis::anti / aegis::veh / aegis::watchdog / aegis::syscall | AntiDebug (PEB, NtGlobalFlag, Dr0–Dr7, RDTSC, ThreadHideFromDebugger, ProcessDebugPort), AntiVm (fournisseur d'hyperviseur CPUID, MAC, registre), EmulatorDetector (fidélité de la charge utile NaN IEEE-754), AntiDump (erase_pe_headers), IntegrityScanner, CodePatchGuard, ApiResolver (AEGIS_API sans IAT), SyscallResolver (extraction des SSN de ntdll.dll et détecteur de hooks), VehGuard (nettoyeur de points d'arrêt matériels), IntegrityWatchdog (thread de surveillance en arrière-plan) |
| Licences, VFS et filigrane | aegis::license / aegis::archive / aegis::watermark | LicenseManager (clés AEGIS-XXXX-... avec liaison HWID et ChaCha20-Poly1305), AegisVfsArchive (système de fichiers virtuel chiffré avec compression LZSS), BytecodeWatermarker (filigranes stéganographiques par client), HardwareId (TPM 2.0 EKPub + CPUID), PeImageAnalyzer, UniversalBinaryInspector (PE/ELF64/Mach-O), SecurePacketChannel, EncryptedRingLogger, JsonParser |
aegis_protection.hpp est 100 % header-only. Sous Windows, les bibliothèques système requises (ncrypt.lib, crypt32.lib, advapi32.lib, psapi.lib, iphlpapi.lib) sont liées automatiquement via #pragma comment(lib, ...).
Visual Studio (.vcxproj) :
aegis_protection.hpp dans le répertoire de votre projet.ISO C++20 Standard (/std:c++20).#include "aegis_protection.hpp" à votre fichier .cpp.CMake (CMakeLists.txt) :
cmake_minimum_required(VERSION 3.20)
project(ProtectedApp LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(ProtectedApp main.cpp aegis_protection.hpp)