diff --git a/.gitattributes b/.gitattributes
index bda48985edef3cb2e0f1309acb36dfba0682a9c8..168ddec164c76edd503d0595c2c47a0f6352df29 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -23,6 +23,8 @@ datashadow/datashadow.h -text
 datashadow/datashadow_callbacks.c -text
 datashadow/datashadow_callbacks.c.sav -text
 datashadow/test_datashadow.cpp -text
+dsn/Makefile.in -text
+dsn/dsn.c -text
 example/Makefile.in -text
 example/callback.c -text
 hello/Makefile.in -text
diff --git a/configure b/configure
index cf908f444543f8d6429fb375191af45575eb6a02..bf4b972e1c3f58ab772f9762ddb6dad70274fe31 100755
--- a/configure
+++ b/configure
@@ -619,6 +619,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -694,6 +695,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -946,6 +948,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1083,7 +1094,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1236,6 +1247,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -6106,6 +6118,7 @@ enable_dir rss
 enable_dir hookdynamic
 enable_dir canaries
 enable_dir mixr
+enable_dir dsn
 enable_dir hello
 enable_dir cookbook
 enable_dir buffrecv
diff --git a/configure.in b/configure.in
index 401b4d387bc3372ec0d25e4eba9441af890e54e9..7f1bd695137d47961024be794c403748f93aef5a 100644
--- a/configure.in
+++ b/configure.in
@@ -73,6 +73,7 @@ enable_dir rss
 enable_dir hookdynamic
 enable_dir canaries
 enable_dir mixr
+enable_dir dsn
 enable_dir hello
 enable_dir cookbook
 enable_dir buffrecv
diff --git a/dsn/Makefile.in b/dsn/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..ddc954e45bfbe0b931e62f89f0b3ef28b86aeb65
--- /dev/null
+++ b/dsn/Makefile.in
@@ -0,0 +1,28 @@
+
+
+CC=@CC@
+EXTRA_INCLUDES=
+CFLAGS=-fno-omit-frame-pointer @CFLAGS@ -O0 $(EXTRA_INCLUDES)
+LIB=@LIB@
+AR=@AR@
+AS=@AS@
+ASFLAGS=@ASFLAGS@
+
+OBJS=dsn.o
+SRCS=dsn.c
+
+.SUFFIXES: .o .s .c
+
+.c.o:
+	$(CC) $(CFLAGS) $(INCLUDE) -D__$(ARCH) -c $<
+
+.s.o:
+	$(AS) $(ASFLAGS) $<
+
+
+all: 	$(OBJS)
+	$(AR) -r $(LIB) $(OBJS)
+clean:
+	rm *.o
+	
+
diff --git a/dsn/dsn.c b/dsn/dsn.c
new file mode 100644
index 0000000000000000000000000000000000000000..c3e42e8d1b73460aa52510e1b217fd56a6984a17
--- /dev/null
+++ b/dsn/dsn.c
@@ -0,0 +1,15 @@
+int syscall(int number, ...);
+#include <stdlib.h>
+#include <malloc.h>
+#include <stdint.h>
+#include <strlen.h>
+#include <itox.h>
+
+void print_str(char *s)
+{
+	write(1,s,strlen(s));
+}
+void zipr_hook_start(unsigned int id, unsigned long long rax, unsigned long long rsp)
+{
+	print_str("This is boring. What time is it?\n");
+}