CrossHair icon indicating copy to clipboard operation
CrossHair copied to clipboard

Symbolic Regex Support

Open pschanely opened this issue 4 years ago • 0 comments

This is a growing list of regex capabilities that CrossHair supports with symbolic execution.

Like Z3, CrossHair won't do much with analysis over a symbolic regex pattern - only symbolic strings tested against a concrete pattern.

  • [x] Literal character matching
  • [x] Repetitions + * {n, m}
  • [x] Unions ( ... | ... )
  • [x] Builtin character classes: \w \W \s \S \d \D
  • [x] Explicit character classes [...]
  • [x] Negated character classes [^...]
  • [x] Groups
  • [x] Named groups
  • [ ] Regex over symbolic bytes (as opposed to symbolic strings)
  • [x] Flag: re.IGNORECASE
  • [x] Flag: re.ASCII
  • [x] Flag: re.DOTALL
  • [ ] Flag: re.LOCALE (deprecated Python feature, likely won't bother)
  • [X] Zero-width matchers (\A ^ \b \B $ \Z)
  • [X] Non-greedy matching (+? *? ?? {n, m}?)
  • [X] Backreferences to capture groups
  • [X] negative/positive lookahead
  • [X] negative/positive lookbehind

pschanely avatar Oct 07 '21 12:10 pschanely