%TEMP%\
and executes it. Use packer wraps the beacon (chacha20 + rc4 string encrypt +
section obfuscation). Sign signs both the beacon and goopdate.dll via Azure.{variable16} alnum · {variable10num} digits ·
{variable8alpha} letters · {variable8hex} hex.
e.g. {variable16}.exe → random 16-char filename.
.bin (shellcode) or a full .exe and it gets packed
(ChaCha20 encrypt + RC4 string encryption + section obfuscation + entropy normalization) into a
standalone .exe loader. .bin → in-process (mem) or drop-and-run (disk).
.exe → drop-and-run wrapper (auto-detected). Output is always .exe.
.bin beacon or a decoy .pdf) and it's saved to your library. Then attach it from the Build tab.iso/<timestamped-name>.iso.| Key | Size | Last modified |
|---|---|---|
| {{ f.key }} | {{ fmtBytes(f.size) }} | {{ f.last_modified ? f.last_modified.replace('T',' ').slice(0,19) : '' }} |
{{ apiToken || 'loading…' }}
X-API-Token header, a ?token= query param, or in the JSON request body.
| Method | Path | Purpose |
|---|---|---|
| GET | /api/iso/api/ping | verify token (returns ok:true) |
| POST | /api/iso/api/build | build a saved template by name/id |
| GET | /api/iso/api/status?config=… | read build status (no build) |
| GET | /api/iso/api/download/:file | download a built ISO |
| POST | /api/iso/api/upload | upload a built ISO to R2 |
curl -X POST https://iso.deployhub.pro/api/iso/api/build \
-H "Authorization: Bearer {{ apiToken || 'YOUR_TOKEN' }}" \
-H "Content-Type: application/json" \
-d '{"config":"beacon_v2","upload_r2":true}'
POST /api/iso/api/build returns, by outcome.| Status | HTTP | Body (key fields) | Meaning |
|---|---|---|---|
| success | 200 | { ok: true, status: "success", config, file, size, signed, packed, download_url, upload } | Build finished; ISO saved + download URL returned. |
| cached | 200 | { ok: true, status: "success", cached: true, ... } | Fresh result already exists (within TTL) — no rebuild. |
| waited | 200 | { ok: true, status: "success", waited: true, ... } | Joined an already-running build and waited for its result. |
| in progress | 504 | { ok: false, error: "build still in progress (timeout waiting)" } | Build still running after the wait window — poll /api/iso/api/status. |
| failed (sign) | 502 | { ok: false, error, sign_failed: true } | Build reached signing but the code-signer failed. |
| failed (build) | 500 | { ok: false, error, sign_failed: false } | Build failed before signing (packer / other stage). |
| unauthorized | 401 | { ok: false, error: "invalid or missing token" } | Bad / missing bearer token. |
| bad request | 404 | { ok: false, error: "config not found: |
Template name/id doesn't match a saved config. |
| {{ st.name }} | {{ st.time }} | {{ st.label }} |