We need a keystroke and clipboard buffer monitoring application.
The application should be written in C++ and be as straightforward as possible. Upon finalization of the project development, the source code must be provided. The application should be able to compile using MS VisualStudio C++.
Functions and requirements for main application:
• runs without any window or system tray visibility.
• works on 32 & 64 bit Windows XP and Windows 7.
• will run as a portable executable and not require traditional “installation” on target machine.
• must not adversely affect processor utilization or cause system instability.
• must not require administrative privileges and does not trigger UAC prompts in Windows 7.
• captures all keystrokes, foreground window title, any text copied into the clipboard buffer. Option to apply backspace keystrokes to log file.
• records logged information to an ascii or binary file.
• encrypt or encode log file contents so that information is obfuscated. Key or string used for encryption / encoding is configurable.
• send log files as attachment using SMTP on configurable port number. SMTP authentication should support SSL / TLS for compatibility with common email servers in addition to option for no authentication required.
• log file transmission interval configurable in days at time of compile.
• must account for server unreachable condition and only attempt resending log at transmission interval. If server remains unreachable for <100 days or log file size exceeds 50MB, purge / flush log file and continue logging.
• application may store settings/flags as needed to the HKCU\Software\XXXXX\ registry hive. For example to maintain how many days since last successful log send or other settings that need to survive reboot or application close and restart.
• application must be designed to account for as many error conditions as possible so as not to produce any exceptions or unexpected crashing.
• option to have application set itself to auto run at startup.
• only one instance of the application should be allowed to run at a time.
Functions and requirement for log decryption application:
• must be able to run in batch mode from a command line with input and output folder/filename.