diff --git a/README.md b/README.md index 299e1b9..7de331c 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,10 @@ Author: Samuel Pua (kahkin@gmail.com) * urldecode.py * Decodes url encoding back to ascii +* file2var + * Converts a file into Go variable + * Useful for embedding a file to a binary + ## Todos - Tab completion diff --git a/file2brl.temp b/file2brl.temp new file mode 100644 index 0000000..e69de29 diff --git a/file2var/file2var b/file2var/file2var new file mode 100755 index 0000000..f23baf1 Binary files /dev/null and b/file2var/file2var differ diff --git a/file2var/main.go b/file2var/main.go new file mode 100644 index 0000000..773be54 --- /dev/null +++ b/file2var/main.go @@ -0,0 +1,59 @@ +package main + +import ( + "gopkg.in/alecthomas/kingpin.v2" + "io/ioutil" + "fmt" + "strings" + "log" +) + +func main() { + outFilePt := kingpin.Flag("outfile", "File to output the variable").Short('o').String() + fileNamePt := kingpin.Arg("filename", "File to be converted into variable").Required().String() + kingpin.Parse() + + outFile := *outFilePt + fileName := *fileNamePt + + outputBytes, err := ioutil.ReadFile(fileName) + if err!= nil { + log.Fatal("Error: Cannot read file") + } + convertedStr := convertSanitize(outputBytes) + + if outFile == "" { + fmt.Println(convertedStr) + } else { + ioutil.WriteFile(outFile, []byte(convertedStr), 0660) + } +} + +func convertSanitize(inByte []byte) string { + var sb strings.Builder + + sb.WriteString("fileVar := \"") + + for i:=0;i 32 && inByte[i] < 126{ + sb.WriteByte(inByte[i]) + } else { + sb.WriteString(fmt.Sprintf("\\x%2x",inByte[i])) + } + if i%50 ==0 { + sb.WriteString("\"\nfileVar += \"") + } + } + sb.WriteString("\"\n") + return sb.String() +} diff --git a/install.sh b/install.sh index 8cdee03..7b4463a 100755 --- a/install.sh +++ b/install.sh @@ -4,23 +4,23 @@ sudo cp ./urlencode/urlencode.py /usr/local/bin/ echo "Installing urldecode.py..." sudo cp ./urldecode/urldecode.py /usr/local/bin/ -echo "Installing clearExtraLines.py..." -sudo cp ./clearExtraLines/clearExtraLines.py /usr/local/bin/ - echo "Installing ascii2img..." sudo cp ./ascii2img/ascii2img /usr/local/bin/ echo "Installing allieration-gen..." -sudo cp ./alliteration-gen/bin/alliteration-gen /usr/local/bin +sudo cp ./alliteration-gen/bin/alliteration-gen /usr/local/bin/ echo "Installing ratio..." -sudo cp ./ratio/ratio /usr/local/bin +sudo cp ./ratio/ratio /usr/local/bin/ echo "Installing fuzzPatternCreate..." -sudo cp ./fuzzPattern/fuzzPatternCreate /usr/local/bin +sudo cp ./fuzzPattern/fuzzPatternCreate /usr/local/bin/ echo "Installing fuzzPatternSearch..." -sudo cp ./fuzzPattern/fuzzPatternSearch /usr/local/bin +sudo cp ./fuzzPattern/fuzzPatternSearch /usr/local/bin/ echo "Installing permutateText.py" -sudo cp ./permutateText/permutateText.py /usr/local/bin +sudo cp ./permutateText/permutateText.py /usr/local/bin/ + +echo "Installing file2var" +sudo cp ./file2var/file2var /usr/local/bin/ diff --git a/uninstall.sh b/uninstall.sh index 348b0e7..218d5f4 100755 --- a/uninstall.sh +++ b/uninstall.sh @@ -4,10 +4,6 @@ sudo rm /usr/local/bin/urlencode.py echo "Deleting urldecode.py..." sudo rm /usr/local/bin/urldecode.py -echo "Deleting clearExtraLines.py..." -sudo rm /usr/local/bin/clearExtraLines.py -rm ~/Desktop/Clear\ Burp\ Lines.desktop - echo "Deleting ascii2img.py..." sudo rm /usr/local/bin/ascii2img @@ -25,3 +21,6 @@ sudo rm /usr/local/bin/fuzzPatternSearch echo "Deleting permutateText.py" sudo rm /usr/local/bin/permutateText.py + +echo "Deleting file2var" +sudo rm /usr/local/bin/file2var