diff --git a/fuzzPatternSearch b/fuzzPatternSearch index 6195302..4e95c7e 100644 Binary files a/fuzzPatternSearch and b/fuzzPatternSearch differ diff --git a/fuzzPatternSearch.go b/fuzzPatternSearch.go index 060bad9..36d6eb8 100644 --- a/fuzzPatternSearch.go +++ b/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