Anri-chan/Source/natematch.c

From SDA Knowledge Base

< Anri-chan‎ | Source
Revision as of 18:25, 7 October 2008 by Njahnke (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
#include <stdio.h>
#include <strings.h>

#define NEEDLELEN 16

int main (void) {
  unsigned int i;
  unsigned char match;
  unsigned int offset=0;
  int j;
  char needle[] = { 0x00, 0x00, 0x01, 0xba,
                    0x44, 0x00, 0x04, 0x00,
                    0x04, 0x01, 0x01, 0x89,
                    0xc3, 0xf8, 0x00, 0x00 };
  char buf[NEEDLELEN];
  bzero(buf,NEEDLELEN);
  while ((j=getchar())!=EOF) {
    for (i=0;i<NEEDLELEN-1;i++)
      buf[i]=buf[i+1];
    buf[i]=j;
    match=1;
    for (i=0;i<NEEDLELEN;i++) {
      if (needle[i] != buf[i])
        match=0;
    }
    if (match)
      printf ("Matched byte string at offset 0x%0x (%u).\n", offset, offset);
      offset++
  }
  return 0;
}
Personal tools