• Sixteen-source hardware fingerprint
  • Patch it and the key breaks
  • Two virtual machines, nested
  • A new key on every request
  • Code re-keys itself every call
  • Nothing readable to dump, ever
  • A debugger derives the wrong key
  • Built to outlast cracking tools
  • One ban covers key, IP and PC
  • Message, disconnect or kill a session live
  • Two threads watch each other for tampering
  • Checked for tampering every few seconds
  • Catches hardware breakpoints mid-session
  • Catches injected code mid-session
  • No readable strings in the file
  • Never fully decrypted, even paused
  • Roll out an update to 10% first
  • A fake server can’t fake the reply
  • Every packet checked, no timing leaks
  • Login floods stopped before they start
  • Credits and features on one license
  • Block by country, VPN or device count
  • No hookable system calls
  • No function names to find in the file
  • Invisible to debugger thread lists
  • A patched login token still fails
  • Session id stays encrypted in memory
  • Out-of-bounds reads crash, not leak

What it enforces

Six layers. A request that fails one fails the whole login. Every request runs the same stack in the same order, cheapest check first.

  1. 01

    Transport

    Every packet carries a fresh nonce and a keyed tag, every request derives its own keys from the machine and the build, and a proof-of-work gate runs before any license logic. A replayed request has no window to land in.

    Beats
    Interception, replay, floods
  2. 02

    Identity

    Sixteen hardware sources, each kept on its own, so changing one never clears a ban on the rest.

    Beats
    Spoofing one component
  3. 03

    Session

    The session id is kept encrypted in memory. The auth token is derived from the live session and the machine, then split across four separate fragments that all have to be right at once. Flip one value and nothing opens.

    Beats
    Cheat Engine, boolean patching
  4. 04

    Client integrity

    Debugger, hook, injection and hardware-breakpoint detection, import-table and code checks, threads hidden from debuggers, two threads watching each other. All of it runs for the life of the process, not only at login.

    Beats
    x64dbg, WinDbg, IDA, Frida
  5. 05

    Server proof

    Every approval is signed over the client’s own nonce, the license and the session. A fake server cannot say yes, and the client exits on a missing signature, with no fallback and no retry.

    Beats
    Nulled and cracked servers
  6. 06

    Server rules

    Executable-hash whitelist, VPN and proxy checks, per-IP rate limits and session caps, served from an in-memory cache the dashboard invalidates the instant you change anything.

    Beats
    Patched builds, abuse, sharing

Hardware identity

Spoof one. We catch the rest. A fingerprint is sixteen values, each kept on its own. Change one component and the fingerprint shifts, but every other component is still on the ban list.

Illustration / one machine's hardware fingerprintSample data
HWIDAtlas-Kq3vT9mXw2LpR7dYcN8zUa
16 / 16components still match the banned machine

Banned machine recognized.

Choose any component to change it. Values here are placeholders.

One ban covers the license, the hardware, the IP and, for accounts, the email address.

Rules engine

Banned machines, patched builds and VPNs never reach the license check. Cheapest checks first, and the first one that trips ends the request. Country rules, seat caps and hardware locks follow.

Dashboard / Meridian / Request logsSample data

Every denial is logged with the rule that caused it.

01Cracked builds die at the door
The server checks the SHA-256 of the connecting executable against your whitelist before a session exists. A patched, repacked or cracked copy has a different hash and never gets one.
02Rules that act on their own
A rule trips and Atlas bans the license, the hardware and the IP together, and can queue an email or post to your Discord. Nobody has to be watching.
03A leaked key stops being shared
Cap how many machines can run one license at once. The second copy is refused the moment it connects.
04Datacenter and VPN traffic refused
Each address is checked for proxy and VPN use and the verdict is cached for up to six hours, so real users pay nothing for it.
05Limits you set per app
Hardware and address binding, tight or loose, and country allow and block lists.

Server-side secrets

Secrets stay on the server. Keep anything valuable in server variables and files. They are served only to a live, verified session, so a cracked client still has nothing to read.

main.cpp
std::string url = Atlas::Variables::Fetch("update_url");
auto blob = Atlas::Network::Download(2);
Variables
Named values you set per app in the dashboard, fetched with one call after sign-in.
Files
Upload to a slot, download at runtime. The bytes go only to a signed-in session.
Tied to the session
A copy of your client with no valid session gets nothing back, however it was patched.

Updates

Ship a patch. Everyone runs it. Builds you have not authorized cannot sign in, so an old or modified copy stops working when you promote the next one.

  1. 01

    Upload

    Add the new build in the dashboard. Atlas computes its SHA-256.

  2. 02

    Promote

    Make it the current version, or pause one that should stop reaching users.

  3. 03

    Clients update

    Running clients fetch it at Startup, verify the SHA-256, swap the executable and relaunch.

  4. 04

    The library updates too

    The Atlas library can swap its own DLL under a live JavaScript or Python host, so a fix to the library reaches running apps without a manual step.

Defense suites

Six suites, each aimed at one class of tool. Pick a suite to see the tools it is built against, what it does to them and why it holds.

Suite 016 techniques

Opened in a decompiler, it yields nothing usable.

  • Built against
  • IDA Pro / Hex-Rays
  • Ghidra
  • Binary Ninja
  • radare2
  • Tigress
  • Triton
WinDbg · u rip - encrypted .text under a static viewCaptured
cc6512844F???// invalid opcode
cc651285F3 DC 7E 78rep fdivr qword ptr [rsi+78h]
cc6512893B 16cmp edx, dword ptr [rsi]
cc65128b2A 53 C8sub dl, byte ptr [rbx-38h]
cc65128eE0 90loopne triage_code_encrypt+0x1220
cc6512900B 54 32 C5or edx, dword ptr [rdx+rsi-3Bh]
cc651294F1???// invalid opcode
  • What it stops

    IDA Pro / Ghidra initial autoanalysis - the pass that recovers functions and cross-references the instant a binary is loaded.

    How it works

    The file is seeded with tens of thousands of look-alike function starts that lead nowhere, so the analyzer’s work queue grows faster than it can clear.

    Why it holds

    Disabling autoanalysis means analyzing by hand - the work the tool exists to remove. The cost is paid by the analyst, every time.

Evidence

Real captures, not mockups. Four WinDbg sessions of protected builds, verbatim from the debugger.

A real protected build, stopped at its own entry point under WinDbg. The byte at RIP is 4F - an invalid opcode (???). The .text section is AES-128-CTR ciphertext until the instant it executes, so there is no valid instruction stream to disassemble, and the return chain past BaseThreadInitThunk dissolves into non-symbolic noise.

(7904.8330): Access violation - code c0000005 (!!! second chance !!!)
triage_code_encrypt+0x1284

???
The debugger found no valid instruction at that address.
noise
A stack frame that resolves to no module and no symbol.
WinDbg / triage_code_encrypt.exe / entry point
cc6512844f???
cc651285f3 dc 7e 78rep fdivr qword ptr [rsi+78h]
cc6512893b 16cmp edx, dword ptr [rsi]
cc65128b2a 53 c8sub dl, byte ptr [rbx-38h]
cc65128ee0 90loopne triage_code_encrypt+0x1220
cc6512900b 54 32 c5or edx, dword ptr [rdx+rsi-3Bh]
cc651294f1???
cc6512950c 88or al, 88h
WinDbg / triage_code_encrypt.exe / call stack under a debugger
frametriage_code_encrypt+0x1284
frameKERNEL32!BaseThreadInitThunk+0x14
noise0x02301fa3`cabf7af4
noise0x91efe278`56a755c5
noise0x5960872f`5b50988c
noise0xd28367a8`436c85d0

Integration

Two calls to integrate. Full control after. Set the API key, call Startup, call Login. The SDK runs the handshake, the hardware fingerprint and a signed heartbeat on its own threads.

Licenses or accounts
License keys, or usernames and passwords locked to the machine. Sellers choose per app.
Hardware binding
The first login binds to hardware: sixteen identifiers, each kept separately.
Emailed codes
Emailed 8-digit sign-in codes on the policy you pick, from never to every sign-in.

One SDK in three languages for Windows x64. C++ static library and header, @atlassecurity/auth on npm, atlas-auth on PyPI.

main.cpp
Atlas::API_KEY = "YOUR_API_KEY";
Atlas::Startup();
if (!Atlas::License::Login(key)) return 1;
 
// a signed heartbeat now runs in the background
Atlas::Network::CheckAuthentication();
Link Atlas Auth.lib and include Atlas.h

And this is what you watch it from.

Dashboard / Meridian / Session MonitorSample data
Live
Session Monitor
4 active sessions · refreshing live
User / LicenseLast seenActions
maya.ktrusted
[email protected]
1s agoKill
ATLAS-7F2C-91B8-E04D
3s agoKill
noah.r
2s agoKill
ATLAS-2B90-C5E1-7A36
4s agoKill
Each client sends a signed heartbeat every few seconds.

Pricing

Start free. Scale when you ship. Both products have a free tier. Premium lifts the volume limits and unlocks no features.

Free

Both products, to build and ship with.

$0

Upgrade when you reach a ceiling

  • 3 applications
  • 300 users per app
  • Obfuscator: every option under a 20-point budget per build, 50 MB files, 20 builds a day
  • Resellers and the auto-updater included
  • Community support
Start free

Authenticator

Licensing without the ceilings.

$99.99/ yr
$155.88save $55.89

One-time · 12 months of Premium · no auto-renew

  • Unlimited applications and licenses
  • Unlimited encrypted delivery per app
  • Unlimited log retention and dashboard seats
  • Priority support, reply inside 24 hours
Choose Authenticator

Obfuscator

Every option, every strength.

$249.99/ yr
$359.88save $109.89

One-time · 12 months of Premium · no auto-renew

  • Every option at Maximum in one build, no point budget
  • 250 MB files, 3 builds at once
  • Unlimited daily builds and templates
  • Priority build queue
Choose Obfuscator

Complete

BEST VALUE

Both Premiums on one bill.

$279.99/ yr
$349.98Save $69.99

One-time · 12 months of both Premiums · no auto-renew

  • Authenticator and Obfuscator Premium
  • One bill, one term, both active at once
  • Priority support and direct team access across both
Choose Complete

Swipe to compare plans

Pay with PayPal, or BTC, ETH, LTC, BNB, USDT and USDC. The price shown is the price charged.

Compare every feature

Questions

What buyers ask before they ship.

  • Windows x64 and the Authenticator SDK in C++, JavaScript or Python. C++ links a static library and a header. JavaScript loads the DLL through @atlassecurity/auth on npm, and Python through atlas-auth on PyPI. Create an app in the dashboard, copy its API key, then call Startup and Login.

Not answered here?

The docs cover every call and status code. For anything else, write to the team or ask in the Discord.

Join the Atlas Discord

Ask questions, get help setting up your app, and see every update first.

931 members70 online

Join the Discord

Ship software that stays yours.

Free to start: three applications, 300 users per app, and the full protection engine. Create an app, copy its API key and call Startup.

  • Free to start, no card
  • SDK for C++, JavaScript and Python
  • Windows x64