(Broken) Work on new dynamic runtime config system

This commit is contained in:
Michael Mikovsky
2025-11-12 17:39:11 -07:00
parent 258599c9c7
commit 920a0f78e9
14 changed files with 319 additions and 93 deletions
+28 -7
View File
@@ -341,6 +341,12 @@ version = "1.70.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
[[package]]
name = "itoa"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
[[package]]
name = "jiff"
version = "0.2.15"
@@ -498,6 +504,12 @@ version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
[[package]]
name = "ryu"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
[[package]]
name = "serde"
version = "1.0.228"
@@ -505,6 +517,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
@@ -527,6 +540,19 @@ dependencies = [
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.145"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
"serde_core",
]
[[package]]
name = "sha2"
version = "0.10.9"
@@ -585,16 +611,11 @@ dependencies = [
name = "unshell-lib"
version = "0.0.0"
dependencies = [
"aes",
"bincode",
"block-padding 0.4.1",
"cbc",
"chrono",
"getrandom",
"hex",
"hex-literal",
"libloading",
"sha2",
"serde",
"serde_json",
"unshell-obfuscate",
]
+1
View File
@@ -7,6 +7,7 @@ edition = "2024"
[features]
obfuscate = ["unshell-obfuscate/obfuscate"]
log_debug = ["unshell-lib/log_debug"]
# default = ["obfuscate"]
[dependencies]
env_logger = "0.11.8"
+24 -6
View File
@@ -1,11 +1,28 @@
use unshell_lib::{
ModuleError,
config::{PayloadConfig, RuntimeConfig},
module::{Manager, Module},
};
use unshell_obfuscate::symbol;
#[macro_use]
extern crate unshell_lib;
static PAYLOAD_CONFIG: PayloadConfig = PayloadConfig {
id: symbol!("Test ID"),
components: unshell_lib::get_components(),
runtime_config: vec![
RuntimeConfig {
"client"
}
],
};
// static RUNTIME_CONFIG: PayloadConfig = PayloadConfig {
// id: symbol!("Test ID"),
// components: Vec::new(),
// };
fn main() {
#[cfg(not(feature = "obfuscate"))]
unshell_lib::logger::PrettyLogger::init();
@@ -15,12 +32,13 @@ fn main() {
match || -> Result<(), ModuleError> {
let args = std::env::args();
let mut modules = Vec::new();
for arg in args.skip(1) {
debug!("Loading module: {}", arg);
modules.push(Module::new(&arg)?)
}
Manager::run(modules);
// let mut modules = Vec::new();
// for arg in args.skip(1) {
// debug!("Loading module: {}", arg);
// modules.push(Module::new(&arg)?)
// }
Manager::run(&PAYLOAD_CONFIG, Vec::new());
Ok(())
}() {