273 lines
7.2 KiB
Plaintext
273 lines
7.2 KiB
Plaintext
Index: Makefile.in
|
|
===================================================================
|
|
RCS file: /usr/local/CVS/ssldump/Makefile.in,v
|
|
retrieving revision 1.4
|
|
diff -c -r1.4 Makefile.in
|
|
*** Makefile.in 2000/11/03 06:38:04 1.4
|
|
--- Makefile.in 2000/11/13 06:01:40
|
|
***************
|
|
*** 83,88 ****
|
|
--- 83,89 ----
|
|
$(INSTALL) -m 444 ssldump.1 $(MANDIR)/man1/ssldump.1
|
|
|
|
dist:
|
|
+ perl "./version-check.pl"
|
|
- name=ssldump-`cat VERSION`; \
|
|
rm -rf ../$$name; \
|
|
mkdir ../$$name; \
|
|
***************
|
|
*** 104,106 ****
|
|
--- 105,109 ----
|
|
rm -f ssl/a.out all; \
|
|
cd ..; \
|
|
tar cf - $$name | gzip > $$name.tar.gz
|
|
+
|
|
+
|
|
Index: configure.in
|
|
===================================================================
|
|
RCS file: /usr/local/CVS/ssldump/configure.in,v
|
|
retrieving revision 1.3
|
|
diff -c -r1.3 configure.in
|
|
*** configure.in 2000/11/03 06:38:05 1.3
|
|
--- configure.in 2000/11/13 15:51:10
|
|
***************
|
|
*** 62,68 ****
|
|
AC_ARG_WITH(pcap-inc,[--with-pcap-inc PCAP include files],
|
|
ac_pcap_inc_dir=$withval
|
|
)
|
|
! AC_ARG_WITH(pcap-lib,[--with-openssl-lib PCAP library files],
|
|
ac_pcap_lib_dir=$withval
|
|
)
|
|
|
|
--- 62,68 ----
|
|
AC_ARG_WITH(pcap-inc,[--with-pcap-inc PCAP include files],
|
|
ac_pcap_inc_dir=$withval
|
|
)
|
|
! AC_ARG_WITH(pcap-lib,[--with-pcap-lib PCAP library files],
|
|
ac_pcap_lib_dir=$withval
|
|
)
|
|
|
|
Index: base/pcap-snoop.c
|
|
===================================================================
|
|
RCS file: /usr/local/CVS/ssldump/base/pcap-snoop.c,v
|
|
retrieving revision 1.4
|
|
diff -c -r1.4 pcap-snoop.c
|
|
*** base/pcap-snoop.c 2000/11/09 18:52:23 1.4
|
|
--- base/pcap-snoop.c 2000/12/21 03:03:45
|
|
***************
|
|
*** 76,92 ****
|
|
|
|
int usage()
|
|
{
|
|
! fprintf(stderr,"Usage: ssldump [-f dumpfile] [-i interface] \n");
|
|
! fprintf(stderr," [-k keyfile] [-p password] [-vtaTnsAxVNd]\n");
|
|
fprintf(stderr," [filter]\n");
|
|
exit(0);
|
|
}
|
|
|
|
int print_version()
|
|
{
|
|
! printf("ssldump 0.9a1\n");
|
|
printf("Copyright (C) 1998-2000 RTFM, Inc.\n");
|
|
printf("All rights reserved.\n");
|
|
exit(0);
|
|
}
|
|
|
|
--- 76,95 ----
|
|
|
|
int usage()
|
|
{
|
|
! fprintf(stderr,"Usage: ssldump [-r dumpfile] [-i interface] \n");
|
|
! fprintf(stderr," [-k keyfile] [-p password] [-vtaTnsAxVNde]\n");
|
|
fprintf(stderr," [filter]\n");
|
|
exit(0);
|
|
}
|
|
|
|
int print_version()
|
|
{
|
|
! printf("ssldump 0.9b1 patchlevel 1\n");
|
|
printf("Copyright (C) 1998-2000 RTFM, Inc.\n");
|
|
printf("All rights reserved.\n");
|
|
+ #ifdef OPENSSL
|
|
+ printf("Compiled with OpenSSL: decryption enabled\n");
|
|
+ #endif
|
|
exit(0);
|
|
}
|
|
|
|
***************
|
|
*** 150,156 ****
|
|
|
|
signal(SIGINT,sig_handler);
|
|
|
|
! while((c=getopt(argc,argv,"vr:f:S:Ttai:k:p:nsAxXhHVNdq"))!=EOF){
|
|
switch(c){
|
|
case 'v':
|
|
print_version();
|
|
--- 153,159 ----
|
|
|
|
signal(SIGINT,sig_handler);
|
|
|
|
! while((c=getopt(argc,argv,"vr:f:S:Ttai:k:p:nsAxXhHVNdqe"))!=EOF){
|
|
switch(c){
|
|
case 'v':
|
|
print_version();
|
|
Index: base/tcpconn.h
|
|
===================================================================
|
|
RCS file: /usr/local/CVS/ssldump/base/tcpconn.h,v
|
|
retrieving revision 1.2
|
|
diff -c -r1.2 tcpconn.h
|
|
*** base/tcpconn.h 2000/10/17 16:09:58 1.2
|
|
--- base/tcpconn.h 2000/12/06 07:40:49
|
|
***************
|
|
*** 49,55 ****
|
|
|
|
typedef struct segment_ {
|
|
u_char *data;
|
|
! int len;
|
|
tcp_seq s_seq;
|
|
packet *p;
|
|
struct segment_ *next;
|
|
--- 49,55 ----
|
|
|
|
typedef struct segment_ {
|
|
u_char *data;
|
|
! u_int len;
|
|
tcp_seq s_seq;
|
|
packet *p;
|
|
struct segment_ *next;
|
|
Index: base/tcppack.c
|
|
===================================================================
|
|
RCS file: /usr/local/CVS/ssldump/base/tcppack.c,v
|
|
retrieving revision 1.3
|
|
diff -c -r1.3 tcppack.c
|
|
*** base/tcppack.c 2000/11/03 06:38:06 1.3
|
|
--- base/tcppack.c 2000/12/21 02:16:51
|
|
***************
|
|
*** 49,54 ****
|
|
--- 49,55 ----
|
|
#include "network.h"
|
|
#include <sys/socket.h>
|
|
#include <arpa/inet.h>
|
|
+ #include <netinet/tcp_seq.h>
|
|
#include <ctype.h>
|
|
#include "debug.h"
|
|
#include "tcpconn.h"
|
|
***************
|
|
*** 90,96 ****
|
|
DBG((0,"SYN1\n"));
|
|
if(r=new_connection(handler,p,&conn))
|
|
ABORT(r);
|
|
! conn->i2r.seq=ntohl(p->tcp->th_seq);
|
|
return(0);
|
|
}
|
|
|
|
--- 91,97 ----
|
|
DBG((0,"SYN1\n"));
|
|
if(r=new_connection(handler,p,&conn))
|
|
ABORT(r);
|
|
! conn->i2r.seq=ntohl(p->tcp->th_seq)+1;
|
|
return(0);
|
|
}
|
|
|
|
***************
|
|
*** 102,109 ****
|
|
break;
|
|
if(p->tcp->th_flags != (TH_SYN | TH_ACK))
|
|
break;
|
|
! conn->r2i.seq=ntohl(p->tcp->th_seq);
|
|
! conn->r2i.ack=ntohl(p->tcp->th_ack);
|
|
conn->state=TCP_STATE_SYN2;
|
|
DBG((0,"SYN2\n"));
|
|
break;
|
|
--- 103,110 ----
|
|
break;
|
|
if(p->tcp->th_flags != (TH_SYN | TH_ACK))
|
|
break;
|
|
! conn->r2i.seq=ntohl(p->tcp->th_seq)+1;
|
|
! conn->r2i.ack=ntohl(p->tcp->th_ack)+1;
|
|
conn->state=TCP_STATE_SYN2;
|
|
DBG((0,"SYN2\n"));
|
|
break;
|
|
***************
|
|
*** 113,119 ****
|
|
if(direction != DIR_I2R)
|
|
break;
|
|
DBG((0,"ACK\n"));
|
|
! conn->i2r.ack=ntohl(p->tcp->th_ack);
|
|
lookuphostname(&conn->i_addr,&sn);
|
|
lookuphostname(&conn->r_addr,&dn);
|
|
if(NET_print_flags & NET_PRINT_TYPESET)
|
|
--- 114,120 ----
|
|
if(direction != DIR_I2R)
|
|
break;
|
|
DBG((0,"ACK\n"));
|
|
! conn->i2r.ack=ntohl(p->tcp->th_ack)+1;
|
|
lookuphostname(&conn->i_addr,&sn);
|
|
lookuphostname(&conn->r_addr,&dn);
|
|
if(NET_print_flags & NET_PRINT_TYPESET)
|
|
***************
|
|
*** 180,188 ****
|
|
|
|
#define STRIM(_seq,s) { \
|
|
int l;\
|
|
! l=(s)->s_seq - _seq; \
|
|
! (s)->data=(s)->p->data + ((s)->p->tcp->th_off*4) + (l-1) ; \
|
|
! (s)->len=(s)->p->len - (((s)->p->tcp->th_off * 4) + (l-1)); \
|
|
(s)->s_seq += (l-1); \
|
|
if((s)->next) { \
|
|
if((s)->s_seq >= (s)->next->s_seq) {\
|
|
--- 181,192 ----
|
|
|
|
#define STRIM(_seq,s) { \
|
|
int l;\
|
|
! int off;\
|
|
! l=(s)->s_seq - _seq + 1; \
|
|
! off=(s)->p->tcp->th_off*4; \
|
|
! if(l>((s)->p->len-off)) ERETURN(R_BAD_DATA);\
|
|
! (s)->data=(s)->p->data + off + (l-1) ; \
|
|
! (s)->len=(s)->p->len - off + (l-1); \
|
|
(s)->s_seq += (l-1); \
|
|
if((s)->next) { \
|
|
if((s)->s_seq >= (s)->next->s_seq) {\
|
|
***************
|
|
*** 250,259 ****
|
|
DBG((0,"Stream Seq %u ",stream->seq));
|
|
|
|
/* Check to see if this packet has been processed already */
|
|
! if(!(p->tcp->th_flags & (TH_FIN | TH_RST)) &&(seq+l)<=(stream->seq+1))
|
|
return(0);
|
|
|
|
! if((stream->seq + 1) < seq){
|
|
tcp_seq left_edge;
|
|
|
|
for(seg=0;seg;seg=seg?seg->next:stream->oo_queue){
|
|
--- 254,264 ----
|
|
DBG((0,"Stream Seq %u ",stream->seq));
|
|
|
|
/* Check to see if this packet has been processed already */
|
|
! if(!(p->tcp->th_flags & (TH_FIN | TH_RST)) && SEQ_LT(seq,stream->seq))
|
|
return(0);
|
|
|
|
! if(SEQ_LT(stream->seq,seq)){
|
|
! /* Out of order segment */
|
|
tcp_seq left_edge;
|
|
|
|
for(seg=0;seg;seg=seg?seg->next:stream->oo_queue){
|
|
***************
|
|
*** 318,324 ****
|
|
|
|
stream->oo_queue=seg->next;
|
|
seg->next=0;
|
|
! stream->seq=seg->s_seq + seg->len - 1;
|
|
|
|
#if 0
|
|
for(seg=&_seg;seg;seg=seg->next){
|
|
--- 323,329 ----
|
|
|
|
stream->oo_queue=seg->next;
|
|
seg->next=0;
|
|
! stream->seq=seg->s_seq + seg->len;
|
|
|
|
#if 0
|
|
for(seg=&_seg;seg;seg=seg->next){
|