C++ Pack — Enterprise · Vendor Lock · Anti-RE
แพ็กส่งลูกค้า Protocol v2 — โหลดจาก Portal หลัง Login (Developer+) · ใช้ได้แค่ LibreAuth · LibreAuth Protect L1/L2 พร้อม SecureLoader L3
/sdk/ ต้อง login Panel ด้วยแผน Developer / Pro / Enterprise (หรือ admin). Guest และ Free ได้ 403.LibreAuth Protect Levels
| Level | What ships | Notes |
|---|---|---|
| L1 | shield.hpp + hardening.hpp + vendor lock + Protocol v2 crypto |
พร้อมใช้ทันทีใน example-pack |
| L2 | LA1 serial (sdk/protect/LA1.md · protect-license) |
Ed25519 offline serial — mint ด้วย vendor tool |
| L3 | SecureLoader — sealed payload + license gate + CreateProcess | sdk/cpp/secure-loader — ไม่พึ่ง third-party packer |
SDK Portal Download Gate
Portal /sdk/ บังคับฝั่ง server:
?dl=และ?view=(รวม rewrite ตรง path) → ต้อง login +EffectivePlan >= developer- ไม่ login / แผน Free → HTTP 403
- Developer · Pro · Enterprise (และ admin) → View / Download ได้
- หน้า catalog ยังมองรายการได้ — ปุ่ม View/Download ล็อกจนกว่าจะ login + แผนจ่าย
Login: Panel · อัปเกรด: Billing Plans
Vendor Lock — LibreAuth only
SDK Protocol v2 ไม่ใช่ drop-in ของค่ายอื่น — ชี้ URL ไป auth SaaS อื่นแล้ว fail closed:
| ชั้น | กลไก |
|---|---|
| Host pin | default: libreauth.nutexe.dev, nutexe.dev, localhost |
| Denylist | hostname ของค่าย auth อื่นที่รู้จัก → reject |
| Headers | บังคับ X-LA-Protocol: 2.0 + X-LA-Vendor: libreauth |
| Body | vendor=libreauth · stack=libreauth-v2 |
| Init policy | protocol=2.0 + AEAD AES-256-GCM |
ไฟล์: sdk/cpp/bind.hpp · trust.hpp · server: core/ApiV2.php
Dev escape (อันตราย): LA_ALLOW_FOREIGN=1
L1 — Hardening / Anti-RE
sdk/cpp/shield.hpp ถูกเรียกผ่าน la_guard::RunChecks / RunChecksWithUrl:
- PEB BeingDebugged / NtGlobalFlag
- NtQueryInformationProcess — DebugPort / DebugObject / DebugFlags (resolve ด้วย FNV hash)
- ThreadHideFromDebugger
- Hardware breakpoints (DR0–DR3)
- RDTSCP timing trap
- DbgBreakPoint / DbgUiRemoteBreakin patch detect
- .text sample integrity
- SystemKernelDebuggerInformation (NtQSI 0x23)
- Heap ForceFlags
- Blacklisted analysis window classes
คู่กับ heuristics ใน hardening.hpp และ Hardening Guide
Static .lib — สิ่งที่ compile เข้าไป
ใน LibreAuth_x64_*_MD/MT.lib | นอก lib (exe ลูกค้า) |
|---|---|
Protocol v2 client · vendor lock · shield/hardening · ops (PollOps) · บังคับ Guard ก่อน Init/Login/License/PollOps · protect markers |
xorstr ของแอป · เรียก API · SecureLoader seal (L3) |
Public header: LibreAuthLib.h — ไม่ดึง curl/openssl/sodium เข้า TU ของลูกค้า
สร้างใหม่: sdk/cpp/lib/build-lib.ps1
L3 — SecureLoader
Native ship: sdk/cpp/secure-loader/
| ส่วน | บทบาท |
|---|---|
| Sealed payload | AES-256-CBC .lasl |
| License gate | LA1 serial + HTTPS |
| Launch | CreateProcessW — ไม่ inject |
| Markers | la_protect_markers.hpp |
Hub ทุกภาษา: sdk/protect/README.md · LA1: sdk/protect/LA1.md
- Build SecureLoader lib:
sdk/cpp/secure-loader/lib/build-lib.ps1 - Pack customer zip:
sdk/cpp/secure-loader/pack.ps1 - Mint LA1:
sdk/csharp/protect-license· smoke:sdk/protect/verify-all.ps1
Quick Start — example-pack
cd sdk/cpp/example-pack
.\setup.ps1 -ApiRoot "https://your-host"
# แก้ LA_APP_NAME / LA_OWNER_ID ใน local.env.ps1
msbuild LibreAuth-CPP-x64-Example.vcxproj /p:Configuration=Release /p:Platform=x64
.\run.ps1
# L3 SecureLoader — แยก pack ใน secure-loader/
Docs ในแพ็ก: QUICKSTART.md · PROTECTION.md · WHY_LIBREAUTH.md · PACK.md
Zip ส่งลูกค้า: sdk/cpp/example-pack/zip-pack.ps1 → sdk/dist/LibreAuth-CPP-Example.zip
vs typical auth packs
| จุดขายทั่วไป | ค่ายทั่วไป | LibreAuth |
|---|---|---|
| C++ x64 .lib | มี | MD + MT + header-only |
| Anti-tamper | library / packer | L1 shield + L3 SecureLoader |
| Encryption | มัก AES | Ed25519 + HMAC + AEAD iv16 |
| ภาษาอื่น | มัก C++ only | 17 SDKs — sdk/protect/MATRIX.md |
| Remote ops | ไม่เน้น | Operations ใน check loop |
| กันค่ายอื่น | ไม่มี | vendor lock |
| ดาวน์โหลด SDK | ใน panel | Login + Developer/Pro/Enterprise fail-closed ที่ /sdk/ |
ตารางละเอียดในแพ็ก: WHY_LIBREAUTH.md
Environment
| Env | ความหมาย |
|---|---|
LA_SIGN_PUBKEY | Ed25519 จาก /health — setup.ps1 ดึงให้อัตโนมัติ |
LA_APP_NAME / LA_OWNER_ID / LA_API_URL | หรือ xorstr ใน LibreAuth.h |
LA_LICENSE หรือ LA_USER+LA_PASS | optional — Init-only ก็ขึ้น Operations ได้ |
LA_SERIAL / LA_LICENSE_PUBKEY | LA1 serial (L2) |
LA_ALLOW_VM=1 | ปิด VM block ตอน dev |
LA_TRUSTED_HOSTS | แทน default host pin |
LA_ALLOW_FOREIGN=1 | ปิด vendor bind (dev เท่านั้น) |
LA_LICENSE_MODE | SecureLoader: serial / server / both |