#written 20 May 2006 by DJ Grenola
#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;
}