API reference

Public surfaces.

Start with frontera.hpp for C++ apps. Drop to frontera_at.h for a single C bring-up call.

Headers

HeaderUse
frontera.hppUmbrella C++ API, FRONTERA_INIT, protect macros
frontera_at.hC antitamper: integrity, VM guard, stamp helpers
frontera_mba.h / .hppMixed Boolean Arithmetic obfuscation
frontera_rkvm.h / .hppRolling-key bytecode VM
phomo_at.heBPF ptrace attach/seize/poketext watcher

C++ umbrella

app.cppC++ · GNU/Linux
#include "frontera.hpp"
FRONTERA_INIT();

[[frontera::protect]]
int sensitive() {
    return 42;
}

int main() {
    // First protected entry triggers frontera_at_start()
    return sensitive();
}

Antitamper — frontera_at.h

SymbolMeaning
FRONTERA_AT_OKSuccess (0)
FRONTERA_AT_TAMPERIntegrity failure (1)
FRONTERA_AT_ERR_ARG / _IO / _ERRArgument, I/O, or general error
frontera_at_start()Self-integrity + VM guard + phomo (soft-fail)
frontera_check_self_integrity()Digest + memory baseline only
frontera_vm_detect() / frontera_vm_guard()Hypervisor detection / abort path
frontera_at_last_error()Last error string
frontera_at_digest_slotEmbedded slot from libfrontera — do not redefine

There is no frontera_report API. Reactions are return codes, optional stderr, hard process exit, or phomo SIGKILL after an optional callback.

MBA

Obfuscate arithmetic expressions. Prefer the C++ header helpers for antitamper-oriented use; plain C string rewrite APIs can leave plaintext in the binary.

mba.cppC++ · GNU/Linux
#define FRONTERA_MBA_OPAQUE 1
#include "frontera_mba.hpp"

int license_generator() {
  return MBA_FN()([&]() { return 2 * 4; });
}

int main(void) {
  return MBA(license_generator() ^ 2);
}

RKVM

frontera_rkvm_run executes rolling-key encrypted blobs.[[frontera::protect]] emits these stubs for you. Optional flags bind execution to AT state (FRONTERA_RKVM_FLAG_BIND_AT,FRONTERA_RKVM_FLAG_REQUIRE_GUARD).

phomo

SymbolMeaning
phomo_at_start()Start watcher for the current process
phomo_at_set_callback()Optional tamper callback before SIGKILL
phomo_at_stop()Tear down
phomo_at_last_error()Last error string