1use process_ghosting::{GhostingBuilder, parse_hex_string, init};
5
6fn main() {
7 init();
8
9 println!("[*] From Hex String Example\n");
10
11 let hex_formats = [
13 ("Continuous", "4D5A90000300000004000000FFFF0000"),
14 ("Spaced", "4D 5A 90 00 03 00 00 00"),
15 ("C-style", "0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00"),
16 ("Escaped", "\\x4D\\x5A\\x90\\x00\\x03\\x00"),
17 ];
18
19 println!("[*] Supported hex formats:\n");
20
21 for (name, hex) in &hex_formats {
22 match parse_hex_string(hex) {
23 Ok(bytes) => {
24 println!(" {}: {} -> {:02X?}", name, hex, &bytes[..bytes.len().min(4)]);
25 }
26 Err(e) => {
27 println!(" {}: Error - {}", name, e);
28 }
29 }
30 }
31
32 println!();
33
34 let sample_hex = "0x4D, 0x5A, 0x90, 0x00"; match GhostingBuilder::from_hex_string(sample_hex) {
40 Ok(builder) => {
41 println!("[+] Successfully parsed hex string");
42 println!("[*] Payload size: {} bytes", builder.build().payload.len());
43
44 }
48 Err(e) => {
49 eprintln!("[-] Failed to parse: {}", e);
50 }
51 }
52}