
Одноголовочный SDK защиты программного обеспечения на C++20 с полиморфной виртуализацией кода на основе VM, MBA и обфускацией строк на этапе компиляции, более 25 криптографических примитивов, защитой от отладки и дампа, а также лицензированием по HWID.
aegis_protection.hpp)Одноголовочный SDK для виртуализации кода, обфускации, криптографии и защиты от взлома на C++20
Промышленный SDK для защиты программного обеспечения на C++20 в виде одного заголовочного файла без зависимостей (10 145+ строк кода в одном файле .hpp): гибридная стеково-регистровая виртуальная машина с полиморфным байткодом, компилятор скриптов C-подобного языка в V-ISA, 25+ криптографических примитивов, обфускация на этапе компиляции, антиотладка, сторожевой механизм целостности памяти во время выполнения, зашифрованная VFS и лицензирование, привязанное к оборудованию.
Никаких внешних зависимостей, сложных сборочных скриптов или лишнего — строго одноголовочный SDK и его набор проверочных тестов:
├── 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)
Подключите aegis_protection.hpp напрямую в ваш проект на 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
| Категория | Пространство имён | Ключевые классы и возможности |
|---|---|---|
| Виртуализация кода (VM) | aegis::vm | VirtualMachine, BytecodeBuilder, BytecodeChunk, VMContext, NativeBridge, PolymorphicOpcodeMap (перестановка 256 опкодов Фишера-Йетса на этапе компиляции), расширенный V-ISA (OP_BSWAP, OP_POPCNT, OP_VMEMCPY, OP_VMEMSET, OP_REKEY, OP_JUNK) |
| Компилятор VM и инструментарий | aegis::vm::* | AegisScriptCompiler (компилирует C-подобные скрипты в байткод V-ISA), VmTextAssembler (текстовый ассемблер с метками), BytecodeDisassembler (+ построитель CFG), BytecodeDecompiler (поднимает байткод до C-псевдокода), BytecodeObfuscationPipeline, SsaLifter (SSA + аллокатор с линейным сканированием), BytecodeAbstractInterpreter, VMProfiler, VMDebugger |
| Обфускация на этапе компиляции | aegis::obf | Mba (смешанная булева арифметика), AEGIS_STR / AEGIS_STR_OBJ (constexpr-шифрование строк с автоматическим затиранием стека), AEGIS_INT / ObfuscatedInt, непрозрачные предикаты Opaque, FlatteningMachine (уплощение потока управления), EncryptedDispatchTable |
| Симметричные шифры и AEAD | aegis::crypto | Aes256 (ECB/CBC/CTR + PKCS#7), ChaCha20, ChaCha20Poly1305 (AEAD по RFC 8439), XChaCha20 (192-битный nonce), Salsa20, Camellia256 (RFC 3713), Serpent256 (32-раундовый SPN), Threefish512 (72 раунда), Blowfish, Rc6_256, Speck128, Simon128, Sm4, XTea |
| Криптографические хеши и 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) |
| Асимметричная криптография, разделение секрета и ECC | aegis::crypto / aegis::math | X25519 (ECDH на Curve25519 по RFC 7748), Uint256 (mod_add, mod_mul, mod_pow), ShamirSecretSharing (пороговая схема $(K, N)$ в $GF(2^8)$), SelfHealingBuffer (код Хэмминга SEC-DED + восстановление по чётности XOR в RAM), MerkleTree (доказательства включения), WhiteBoxByteNetwork |
| Антиотладка и защита памяти | aegis::anti / aegis::veh / aegis::watchdog / aegis::syscall | AntiDebug (PEB, NtGlobalFlag, Dr0–Dr7, RDTSC, ThreadHideFromDebugger, ProcessDebugPort), AntiVm (вендор гипервизора по CPUID, MAC, реестр), EmulatorDetector (точность полезной нагрузки NaN по IEEE-754), AntiDump (erase_pe_headers), IntegrityScanner, CodePatchGuard, ApiResolver (без IAT через AEGIS_API), SyscallResolver (извлечение SSN из ntdll.dll и детектор хуков), VehGuard (очистка аппаратных точек останова), IntegrityWatchdog (фоновый поток мониторинга) |
| Лицензирование, VFS и водяные знаки | aegis::license / aegis::archive / aegis::watermark | LicenseManager (ключи AEGIS-XXXX-... с привязкой к HWID и ChaCha20-Poly1305), AegisVfsArchive (зашифрованная виртуальная файловая система со сжатием LZSS), BytecodeWatermarker (стеганографические водяные знаки клиента), HardwareId (TPM 2.0 EKPub + CPUID), PeImageAnalyzer, UniversalBinaryInspector (PE/ELF64/Mach-O), SecurePacketChannel, EncryptedRingLogger, JsonParser |
aegis_protection.hpp на 100% состоит только из заголовочного файла. В Windows необходимые системные библиотеки (ncrypt.lib, crypt32.lib, advapi32.lib, psapi.lib, iphlpapi.lib) подключаются автоматически через #pragma comment(lib, ...).
Visual Studio (.vcxproj):
aegis_protection.hpp в каталог вашего проекта.ISO C++20 Standard (/std:c++20).#include "aegis_protection.hpp" в ваш .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)