| 365 | } |
| 366 | |
| 367 | fn prepare_args() -> (String, Vec<String>) { |
| 368 | let mut args: Vec<String> = env::args().collect(); |
| 369 | |
| 370 | if args.len() < 2 { |
| 371 | println!("[!] Usage: {} <RC4 Encrypted File> <Arguments>", args[0]); |
| 372 | println!("[!] Example: {} S-e-a-t-b-e-l-t-4.enc AntiVirus", args[0]); |
| 373 | exit(1) |
| 374 | } |
| 375 | |
| 376 | let mut command_args: Vec<String> = vec![]; |
| 377 | |
| 378 | if args.len() > 2 { |
| 379 | command_args = args.split_off(2) |
| 380 | } |
| 381 | |
| 382 | let path = args[1].clone(); |
| 383 | |
| 384 | println!("[+] Running {} with args: {:?}", path, command_args); |
| 385 | |
| 386 | return (path, command_args); |
| 387 | } |
| 388 | fn main() -> Result<(), String> { |
| 389 | println!("[+] RustPatchlessCLRLoader by C2Pain."); |
| 390 | println!("[+] Github: https://github.com/c2pain/RustPatchlessCLRLoader"); |