|
|
1.1 ! root 1: #define VERSION 4 ! 2: #define REMOTE_SERVER 1 ! 3: #define REMOTE_CLIENT 2 ! 4: ! 5: #define SERVER_READ_PIPE "\\\\%s\\PIPE\\%sIN" //Client Writes and Server Reads ! 6: #define SERVER_WRITE_PIPE "\\\\%s\\PIPE\\%sOUT" //Server Reads and Client Writes ! 7: ! 8: #define COMMANDCHAR '@' //Commands intended for remote begins with this ! 9: #define CTRLC 3 ! 10: ! 11: #define CLIENT_ATTR FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_RED|BACKGROUND_BLUE ! 12: #define SERVER_ATTR FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE|BACKGROUND_RED ! 13: ! 14: // ! 15: //Some General purpose Macros ! 16: // ! 17: #define MINIMUM(x,y) ((x)>(y)?(y):(x)) ! 18: #define MAXIMUM(x,y) ((x)>(y)?(x):(y)) ! 19: ! 20: #define ERRORMSSG(str) printf("Error %d - %s [%s %d]\n",GetLastError(),str,__FILE__,__LINE__) ! 21: #define SAFECLOSEHANDLE(x) {if (x!=INVALID_HANDLE_VALUE) {CloseHandle(x);x=INVALID_HANDLE_VALUE;}} ! 22: ! 23: ! 24: // All because printf does not work ! 25: // with NT IO redirection ! 26: // ! 27: ! 28: #define WRITEF(VArgs) { \ ! 29: HANDLE xh=GetStdHandle(STD_OUTPUT_HANDLE); \ ! 30: char VBuff[256]; \ ! 31: DWORD tmp; \ ! 32: sprintf VArgs; \ ! 33: WriteFile(xh,VBuff,strlen(VBuff),&tmp,NULL); \ ! 34: } \ ! 35: ! 36: #define HOSTNAMELEN 16 ! 37: ! 38: #define CHARS_PER_LINE 45 ! 39: ! 40: #define MAGICNUMBER 0x31109000 ! 41: #define BEGINMARK '\xfe' ! 42: #define ENDMARK '\xff' ! 43: #define LINESTOSEND 200 ! 44: ! 45: #define MAX_SESSION 10 ! 46: ! 47: typedef struct ! 48: { ! 49: DWORD Size; ! 50: DWORD Version; ! 51: char ClientName[15]; ! 52: DWORD LinesToSend; ! 53: DWORD Flag; ! 54: } SESSION_STARTUPINFO; ! 55: ! 56: typedef struct ! 57: { ! 58: DWORD MagicNumber; //New Remote ! 59: DWORD Size; //Size of structure ! 60: DWORD FileSize; //Num bytes sent ! 61: } SESSION_STARTREPLY; ! 62: ! 63: typedef struct ! 64: { ! 65: char Name[HOSTNAMELEN]; //Name of client Machine; ! 66: BOOL Active; //Client at the other end connected ! 67: BOOL CommandRcvd; //True if a command recieved ! 68: BOOL SendOutput; //True if Sendoutput output ! 69: HANDLE PipeReadH; //Client sends its StdIn through this ! 70: HANDLE PipeWriteH; //Client gets its StdOut through this ! 71: HANDLE rSaveFile; //Sessions read handle to SaveFile ! 72: HANDLE hThread; //Session Thread ! 73: HANDLE MoreData; //Event handle set if data available to be read ! 74: } SESSION_TYPE; ! 75: ! 76: ! 77: ! 78: VOID ! 79: Server( ! 80: char* ChildCmd, ! 81: char* PipeName ! 82: ); ! 83: ! 84: ! 85: VOID ! 86: Client( ! 87: char* ServerName, ! 88: char* PipeName ! 89: ); ! 90: ! 91: VOID ! 92: ErrorExit( ! 93: char* str ! 94: ); ! 95: ! 96: VOID ! 97: DisplayClientHlp( ! 98: ); ! 99: ! 100: VOID ! 101: DisplayServerHlp( ! 102: ); ! 103: ! 104: ULONG ! 105: DbgPrint( ! 106: PCH Format, ! 107: ... ! 108: ); ! 109: ! 110: DWORD ! 111: ReadFixBytes( ! 112: HANDLE hRead, ! 113: char *Buffer, ! 114: DWORD ToRead, ! 115: DWORD TimeOut //ignore for timebeing ! 116: ); ! 117: ! 118: VOID ! 119: Errormsg( ! 120: char* str ! 121: ); ! 122: ! 123: ! 124: extern char HostName[HOSTNAMELEN]; ! 125: extern char* ChildCmd; ! 126: extern char* PipeName; ! 127: extern char* ServerName; ! 128: extern HANDLE MyOutHandle; ! 129: extern DWORD LinesToSend; ! 130: extern BOOL IsAdvertise; ! 131: extern DWORD ClientToServerFlag;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.