error_handling/
error_handling.rs1use process_ghosting::{GhostingBuilder, init, parse_hex_string};
5
6fn main() {
7 init();
8
9 println!("[*] Error Handling Example\n");
10
11 println!("[Test 1] Loading non-existent file:");
13 match GhostingBuilder::from_file("nonexistent.exe") {
14 Ok(_) => println!(" Unexpected success"),
15 Err(e) => println!(" Expected error: {}", e),
16 }
17 println!();
18
19 println!("[Test 2] Parsing invalid hex:");
21 match parse_hex_string("ZZZZ") {
22 Ok(_) => println!(" Unexpected success"),
23 Err(e) => println!(" Expected error: {}", e),
24 }
25 println!();
26
27 println!("[Test 3] Executing invalid PE:");
29 let invalid_pe = vec![0x00, 0x00, 0x00, 0x00]; match GhostingBuilder::new(&invalid_pe).x64().execute() {
31 Ok(_) => println!(" Unexpected success"),
32 Err(e) => println!(" Expected error: {}", e),
33 }
34 println!();
35
36 println!("[Test 4] Empty payload:");
38 match GhostingBuilder::new(&[]).x64().execute() {
39 Ok(_) => println!(" Unexpected success"),
40 Err(e) => println!(" Expected error: {}", e),
41 }
42 println!();
43
44 println!("[Test 5] Truncated PE (only MZ header):");
46 let truncated_pe = vec![0x4D, 0x5A]; match GhostingBuilder::new(&truncated_pe).x64().execute() {
48 Ok(_) => println!(" Unexpected success"),
49 Err(e) => println!(" Expected error: {}", e),
50 }
51 println!();
52
53 println!("[*] Error handling tests complete.");
54}