pattern_finder 1.3.1 copy "pattern_finder: ^1.3.1" to clipboard
pattern_finder: ^1.3.1 copied to clipboard

pattern_finder is a compact library used for signature matching and/or wildcard pattern finder in byte streams.

example/pattern_finder_example.dart

import 'dart:typed_data';
import 'package:pattern_finder/pattern_finder.dart';

main() {
  /* Search for patterns using PatternFinder.Find and PatternFinder.Find_B functions */
  var pattern = PatternFinder.Transform('456?89?B');

  var buf1 = [0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF];
  var buf2 = [0x01, 0x23, 0x45, 0x66, 0x89, 0x6B, 0xCD, 0xEF];
  var buf3 = [0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11];

  int foundOffset1 =
      PatternFinder.Find_B(buf1, 8, pattern); // foundOffset1: 2
  int foundOffset2 =
      PatternFinder.Find(buf2, 8, '456?89?B'); // foundOffset2: 2
  int foundOffset3 =
      PatternFinder.Find_B(buf3, 8, pattern); // foundOffset3: -1

  /* Search for patterns using signatures */
  var buf = [
    0x01,
    0x23,
    0x45,
    0x67,
    0x89,
    0xAB,
    0xCD,
    0xEF,
    0x45,
    0x65,
    0x67,
    0x89
  ];

  Signature sig1 = new Signature("pattern1", "456?89?B",
      func: (offset) => print('Found Pattern1!!! @ ${offset}'));
  Signature sig2 = new Signature("pattern2", "1111111111",
      func: () => print('Will I make it?'));
  Signature sig3 =
      new Signature("pattern3", "AB??EF", func: () => print('Found pattern3'));
  Signature sig4 = new Signature("pattern4", "45??67", func: (int offset) {
    // do something
    int new_offset = offset + 4;
    print('Found pattern4!!! Old Offset: ${offset}, New Offset: ${new_offset}');
  });
  List<Signature> signatures = [sig1, sig2, sig3, sig4];

  // Run `Scan` to execute founded signatures function
  SignatureFinder.Scan(buf, buf.length, signatures);

  //  Found Pattern1!!! @ 2
  //  Found pattern3
  //  Found pattern4!!! Old Offset: 8, New Offset: 12
}
0
likes
30
points
48
downloads

Publisher

unverified uploader

Weekly Downloads

pattern_finder is a compact library used for signature matching and/or wildcard pattern finder in byte streams.

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on pattern_finder