#include "md4.h" #include "des.h" #include #include #include #include typedef short int16; typedef int int32; typedef unsigned short uint16; typedef unsigned int uint32; typedef unsigned char uchar; #define MAX_STRING 255 #define MAX_WORD 128 #define LMPASSWDLEN 14 #define NTPASSWDLEN 128 #define CVAL(buf,pos) (((unsigned char *)(buf))[pos]) #define PVAL(buf,pos) ((unsigned)CVAL(buf,pos)) #define SVAL(buf,pos) (PVAL(buf,pos)|PVAL(buf,(pos)+1)<<8) /* #define IVAL(buf,pos) (SVAL(buf,pos)|SVAL(buf,(pos)+2)<<16) */ #define SSVALX(buf,pos,val) (CVAL(buf,pos)=(val)&0xFF,CVAL(buf,pos+1)=(val)>>8) #define SIVALX(buf,pos,val) (SSVALX(buf,pos,val&0xFFFF),SSVALX(buf,pos+2,val>>16)) #define SVALS(buf,pos) ((int16)SVAL(buf,pos)) #define IVALS(buf,pos) ((int32)IVAL(buf,pos)) #define SSVAL(buf,pos,val) SSVALX((buf),(pos),((uint16)(val))) /* #define SIVAL(buf,pos,val) SIVALX((buf),(pos),((uint32)(val))) */ #define SSVALS(buf,pos,val) SSVALX((buf),(pos),((int16)(val))) #define SIVALS(buf,pos,val) SIVALX((buf),(pos),((int32)(val))) #define IVAL(buf,pos) (*(uint32 *)((char *)(buf) + (pos))) #define SIVAL(buf,pos,val) IVAL(buf,pos)=((uint32)(val)) struct user_struct { int pwdumpval; char username[128]; char lmhash[32]; char foo[4]; /* placeholder */ char nthash[32]; char lmhashb[16]; char bar[4]; /* placeholder */ unsigned long nthashb[4]; char lmpasswd[14]; char ntpasswd[128]; char server_chall[8]; char lmresp_b[24]; char ntresp_b[24]; int under7; char first_half[7]; char second_half[7]; int lmdone; int ntdone; int already_printed; struct user_struct *previous; struct user_struct *next; };