diff --git a/README.md b/README.md index ff3ef63..b32e429 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,6 @@ Author: Samuel Pua (kahkin@gmail.com) ##Todos - Tab completion > Seriously out of my league for now. Easy to way to it seems to be using external library argcomplete. But I prefer not to use external libraries +- Add no search scenario for fuzzPatternSearch +> For longer than 4 bytes +> For really cannot find diff --git a/clearextralines.desktop b/clearextralines.desktop deleted file mode 100755 index a821ac5..0000000 --- a/clearextralines.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Name=ClearExtraLines -Encoding=UTF-8 -Exec=/usr/bin/clearExtraLines.py -StartupNotify=false -Terminal=false -Type=Application diff --git a/fuzzPattern/fuzzPatternCreate b/fuzzPattern/fuzzPatternCreate new file mode 100755 index 0000000..ef2f210 Binary files /dev/null and b/fuzzPattern/fuzzPatternCreate differ diff --git a/fuzzPattern/fuzzPatternCreate.go b/fuzzPattern/fuzzPatternCreate.go new file mode 100644 index 0000000..74c5a46 --- /dev/null +++ b/fuzzPattern/fuzzPatternCreate.go @@ -0,0 +1,50 @@ +package main + +import ( + "fmt" + "gopkg.in/alecthomas/kingpin.v2" + "bytes" +) + +func main() { + charCountPointer:= kingpin.Arg("char-count", "Number of characters to generate").Required().Int() + kingpin.Parse() + + var charCount int=*charCountPointer + var ans bytes.Buffer + var tempCombi string + var combiArr [4]int + charsetCaps := "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + charsetSmall := "abcdefgjijklmnopqrustuvwxyz" + charsetNum := "0123456789" + + for ans.Len()0; i-- { + if combiArr[i] >= combiMax[i] { + combiArr[i] = 0 + combiArr[i-1] += 1 + } + } + + if combiArr[0] >= combiMax[0] { + combiArr[0] = 0 + } +} diff --git a/fuzzPattern/fuzzPatternSearch b/fuzzPattern/fuzzPatternSearch new file mode 100755 index 0000000..7b7a220 Binary files /dev/null and b/fuzzPattern/fuzzPatternSearch differ diff --git a/fuzzPattern/fuzzPatternSearch.go b/fuzzPattern/fuzzPatternSearch.go new file mode 100644 index 0000000..d9c0042 --- /dev/null +++ b/fuzzPattern/fuzzPatternSearch.go @@ -0,0 +1,100 @@ +package main + +import ( + "fmt" + "gopkg.in/alecthomas/kingpin.v2" + "encoding/hex" + "strings" +) + +func main() { + patternPointer:= kingpin.Arg("search", "Hex(eg '0x42424242') or String to be search").Required().String() + pattLengthPointer:= kingpin.Flag("length", "Pattern length").Short(rune('l')).Int() + kingpin.Parse() + + var fullPattern string + var pattern string + var combiArr []int = []int{0,0,0,0} + combiMax := []int{26, 26, 26, 10} + var fullCombi int + charsetCaps := "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + charsetSmall := "abcdefgjijklmnopqrustuvwxyz" + charsetNum := "0123456789" + pattLength := *pattLengthPointer + finalPos := 0 + var startPos int + + if len(*patternPointer)<4 { + fmt.Println("Input must have at least 4 bytes") + } + + if (*patternPointer)[:2] == "0x" { + fmt.Println("Hex detected") + fullBytes, _ := hex.DecodeString((*patternPointer)[2:]) + fullPattern = string(fullBytes) + } else { + fullPattern = *patternPointer + } + + if len(fullPattern)<4 { + fmt.Println("Input must have at least 4 bytes") + } + + pattern = fullPattern[:4] + + for i:=0; i 0 { + combiArr[len(combiArr)-1]+=1 + + for i:= len(combiArr)-1; i>0; i-- { + if (combiArr[i] >= combiMax[i]) && (i >= (len(combiArr)-startPos)) { + combiArr[i] = 0 + if (i-1 >= (len(combiArr)-startPos)) { + combiArr[i-1] += 1 + } + } + } + } + + for i:=0; i