feat: added randomization and XOR encoding

This commit is contained in:
Andrew Rioux 2025-02-02 12:21:35 -05:00
parent 0576c4fd3b
commit d8a277e769
Signed by: andrew.rioux
GPG Key ID: 9B8BAC47C17ABB94

View File

@ -48,10 +48,10 @@ pub async fn download_beacon_installer(
State(db): State<AppState>
) -> Result<impl IntoResponse, crate::error::Error> {
use rand::{rngs::OsRng, TryRngCore};
use sparse_actions::payload_types::Parameters_t;
use sparse_actions::payload_types::{Parameters_t, XOR_KEY};
let mut parameters_buffer = vec![0u8; std::mem::size_of::<Parameters_t>()];
//let _ = OsRng.try_fill_bytes(&mut parameters_buffer);
let _ = OsRng.try_fill_bytes(&mut parameters_buffer);
let parameters: &mut Parameters_t = unsafe { std::mem::transmute(parameters_buffer.as_mut_ptr()) };
@ -135,6 +135,11 @@ pub async fn download_beacon_installer(
let installer_bytes = get_installer(&template.operating_system).await?;
let parameters_bytes = parameters_buffer
.iter()
.map(|b| b ^ (XOR_KEY as u8))
.collect::<Vec<_>>();
use axum::http::header;
Ok((
@ -157,7 +162,7 @@ pub async fn download_beacon_installer(
],
[
&installer_bytes[..],
&parameters_buffer[..]
&parameters_bytes[..]
].concat()
))
}