-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.go
56 lines (45 loc) · 1.82 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package main
import (
"fmt"
"os"
"Ebyte-VBS-Obf/obfuscation"
"Ebyte-VBS-Obf/utils"
)
func main() {
if len(os.Args) != 3 {
fmt.Println("[+] Usage: go run obfuscator.go inFile.vbs outFile.vbs")
os.Exit(1)
}
utils.SeedRandom()
splitter := "*"
numOfChars := utils.RandomInt(5, 60)
pld := utils.RandomString(numOfChars)
array := utils.RandomString(numOfChars)
temp := utils.RandomString(numOfChars)
x := utils.RandomString(numOfChars)
subOne := utils.RandomString(numOfChars)
subTwo := utils.RandomString(numOfChars)
inputFile, err := os.ReadFile(os.Args[1])
if err != nil {
fmt.Println("[-] Error reading input file:", err)
os.Exit(1)
}
outputFile, err := os.Create(os.Args[2])
if err != nil {
fmt.Println("[-] Error creating output file:", err)
os.Exit(1)
}
defer outputFile.Close()
fmt.Fprintln(outputFile, obfuscation.RandCapitalization("Dim "+pld+", "+array+", "+temp))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization("Sub "+subOne))
fmt.Fprintf(outputFile, "%s = \"%s\"\n", obfuscation.RandCapitalization(pld), obfuscation.Obfu(string(inputFile)))
fmt.Fprintf(outputFile, "%s = Split(%s, chr(eval(%s)))\n", obfuscation.RandCapitalization(array), pld, obfuscation.Obfu(splitter))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization("for each "+x+" in "+array))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization(temp+" = "+temp+" & chr(eval("+x+"))"))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization("next"))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization(subTwo))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization("eval(execute("+temp+"))"))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization("End Sub"))
fmt.Fprintln(outputFile, obfuscation.RandCapitalization(subOne))
fmt.Println("[+] EByte Obf Done!")
}