Added 'else' clauses instead of only 'if' statements.
Decisions would be evaluated, but they would go under eachother. This
means that pressing ctrl+shift+alt+a would write something like:
'[SHIFT-CTRL-ALT-A]A' instead of '[SHIFT-CTRL-ALT-A]' .
removed f1-f11 keys since they are not handled
moved calling the keyboard layout to FromKeys method when a key is
handled so its not being called every 10ms
Fixes two issues of the client when trying to start an invalid process.
1) Client will no longer try to use a null or empty string for the new
Process' FileName.
2) If, for any reason, the process can not start correctly, it will no
longer cause the Client to crash.
Improved a decision; checks if the length is greater than 0 before
writing instead of converting the StringBuilder to a string then
checking the string.
Used a StringBuilder instead of a normal string as the key buffer to
drastically improve the performance. Having a string as the key buffer
would mean that every single addition would be exponentially slower.
Added FrmMain instance null check to safely exit a thread in the
FrmKeylogger form in the case of client-server disconnection. The
FrmKeylogger spawns a thread that waits for the enabled button to be set
to true, after successfully receiving all the log files from the client.
If the server were to somehow not process the button being enabled it
would hang in the while loop leaving the entire process to be left in
memory due to the thread being open.
-added hookless keylogger class with unicode support
-logs on keylogger class are saved in html format
-added keylogger form using webbrowser to load the log as an html file
-added context menu keylogger option under surveillance
-started keylogger setting enable/disable on client file execution
(didn't complete this, wasn't sure how to do it properly. just added
the setting in the settings class and in program class for the logic.
only thing left is the server side stuff)
left todo:
-encryption/decryption of logs if desired
-options to enable/disable when building client, etc...