Key logger Software Requirements Specifications
The key logging activity should be as undetected as possible and with high performance.
• Key logger for each key pressed on any open application.
• All languages should be supported.
User Classes and Characteristics
• Windows XP 32 bits.
• Windows Vista 32 bits and 64 bits.
• Windows 7 32 bits and 64 bits.
Design and Implementation Constraints
• Key logger should be delivered as a .NET assembly DLL.
• .NET framework 2.0 and up can be used as long as the DLL can be referenced via a .NET framework 2.0 projects
• The key logger should listen to every key logged and send it using a windows message to a given handle.
• The message parameter should contain the char logged.
• Copy – pasted text should also be logged, in this case, the windows message type sent should be different and the parameter should contain the text copied.
• The key logger should be case sensitive.
• For high performance issues, we advise using low level keyboard hook.
• A test solution should be included with a simple interface: buttons for install and uninstall hook, textbook to present the key pressed.
• DLL interface should be:
InstallHook( HWND hw)
o Installs the key logging hook, and sends the keys logged to the input Window handle.
o Removes the logging hook and stops the key logging.
o Returns a Boolean indicating if the hook is installed or not.
o Turn on logging.
o Turn off logging.
The documentation should include:
• Usage instructions.
• Limitations and known issues.
• Debugging instructions.
• Project properties details (Compilation used libraries, compilation command line parameters, special definitions, etc.)
Assumptions and Dependencies
The key logger DLL is planned to be loaded to a hidden window (using C# win form), the window wndproc method will be overridden and will listen to all messages sent to it by the key logger.