diff --git a/README.md b/README.md index 1582b1d..299e1b9 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,3 @@ 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/fuzzPattern/fuzzPatternSearch b/fuzzPattern/fuzzPatternSearch index 6195302..4e95c7e 100755 Binary files a/fuzzPattern/fuzzPatternSearch and b/fuzzPattern/fuzzPatternSearch differ diff --git a/fuzzPattern/fuzzPatternSearch.go b/fuzzPattern/fuzzPatternSearch.go index 060bad9..36d6eb8 100644 --- a/fuzzPattern/fuzzPatternSearch.go +++ b/fuzzPattern/fuzzPatternSearch.go @@ -11,6 +11,8 @@ import ( func main() { patternPointer:= kingpin.Arg("search", "Hex(eg '0x42424242') or String to be search").Required().String() + littleEndianPointer:= kingpin.Flag("little-endian", "Assumes the string to be little endian (default)").Default("true").Bool() + bigEndianPointer:= kingpin.Flag("big-endian", "Assumes the string to be big endian").Default("false").Bool() pattLengthPointer:= kingpin.Flag("length", "Pattern length").Short(rune('l')).Int() kingpin.Parse() @@ -23,12 +25,14 @@ func main() { charsetSmall := "abcdefgjijklmnopqrustuvwxyz" charsetNum := "0123456789" pattLength := *pattLengthPointer + littleEndian := *littleEndianPointer + bigEndian := *bigEndianPointer finalPos := 0 var startPos int if len(*patternPointer)<4 { fmt.Println("Input must have at least 4 bytes") - os.Exit(0) + os.Exit(1) } if (*patternPointer)[:2] == "0x" { @@ -36,23 +40,34 @@ func main() { fmt.Println("Assumed litle endian") fullBytes, _ := hex.DecodeString((*patternPointer)[2:]) fullPattern = string(fullBytes) - fullPattern = strReverse(fullPattern) } else { fullPattern = *patternPointer } if len(fullPattern)<4 { fmt.Println("Input must have at least 4 bytes") - os.Exit(0) + os.Exit(1) + } + + //change if little endian + if !bigEndian && littleEndian { + fullPattern = strReverse(fullPattern) } pattern = fullPattern[:4] + //check if combi is valid + bigCheck:=0 for i:=0; i