Skip to main content

enc_oneliner/
enc_oneliner.rs

1use ps_parser::PowerShellSession;
2
3fn main() {
4    let Some(path) = std::env::args().nth(1) else {
5        eprintln!("usage: cargo run --example enc_oneliner -- <script.ps1>");
6        std::process::exit(1);
7    };
8    let script = std::fs::read_to_string(path).unwrap();
9
10    println!("=== parse_command ===");
11    match PowerShellSession::new().parse_command(script.trim()) {
12        Ok(res) => println!("deob:\n{}\nout:\n{}", res.deobfuscated(), res.output()),
13        Err(e) => println!("error: {e:?}"),
14    }
15
16    println!("=== parse_script ===");
17    match PowerShellSession::new().parse_script(script.trim()) {
18        Ok(res) => println!("deob:\n{}\nout:\n{}", res.deobfuscated(), res.output()),
19        Err(e) => println!("error: {e:?}"),
20    }
21}