Mitglieder: 9183 | Themen: 3223 | Beiträge: 24478 | Hits: 1170940 | Visits: 1175320
Wir begrüssen unser neuestes Mitglied: MuhViothetuff
Info
» Sie sind nicht angemeldet, Anmelden oder RegistrierenOnline: Keine Mitglieder und 9 Gäste
SetWindowHookEx
toBoard    Developer Network    Programmierung
Neuer Beitrag Neuer Beitrag   Thema abonnieren Thema abonnieren
13 Beiträge gefunden.Seite: 1 2
 SetWindowHookEx
Senior Mitglied
 
 
 
Beiträge: 165
Registriert: 07.09.2000
Also weiter unten wurde gefragt wie ein Keylogger geschrieben werden kann. Und nun meine Frage: Billy meinte mit der Function SetWindowHookEx. Nur kann mir jemand sagen wie ich die verwenden muss? Ich versteh das noch nicht ganz...
 
cpp
Profil   Private Nachricht   E-Mail   Web
Erstellt: 11.11.2006 19:03
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Moderator
toNet Dev.Team
 
 
' Coding Mod '
 
Beiträge: 454
Registriert: 19.05.2000
Der Hook muss in einer DLL stattfinden.
 
Beim Laden der DLL Hook festlegen:
 
Code[In neuem Fenster öffnen]
g_hhk = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, hInstance, NULL);

 
Beim Entladen der DLL Hook entfernen:
 
Code[In neuem Fenster öffnen]
UnhookWindowsHookEx(g_hhk);

 
Die KeyboardProc-Funktion, welche bei jedem Tastatur-Ereignis aufgerufen wird:
 
Code[In neuem Fenster öffnen]
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0 &#0124;&#0124; nCode == HC_NOREMOVE)
return CallNextHookEx(g_hhk, nCode, wParam, lParam);
 
if (!(lParam & KF_UP))
{
// Es wurde eine Taste mit dem virtuellen Key-Code wParam gedrückt. Loggen wo auch immer man will
}
}

 
Hab den Code nicht ausprobiert, also bei Problemen melden.
 

------------------
Billy's Site
Computing - Produkte - Services - http://billy.bitron.ch
Profil   Private Nachricht   Web
Erstellt: 11.11.2006 23:56
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Senior Mitglied
 
 
 
Beiträge: 165
Registriert: 07.09.2000
Ok soweit verstanden, aber was bedeutet: g_hhk Was ist das, eine Variable, aber von wem, der Dll???
 
cpp...
Profil   Private Nachricht   E-Mail   Web
Erstellt: 24.11.2006 17:47
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Moderator
toNet Dev.Team
 
 
' Coding Mod '
 
Beiträge: 454
Registriert: 19.05.2000
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von C++:
Ok soweit verstanden, aber was bedeutet: g_hhk Was ist das, eine Variable, aber von wem, der Dll???<HR></BLOCKQUOTE>
 
g_hhk ist die Variable, die die Zugriffsnummer auf den eingestellten Hook speichert, sie sollte einfach global als HHOOK in der DLL deklariert werden.
 
------------------
Billy's Site
Computing - Produkte - Services - http://billy.bitron.ch
 
[Dieser Beitrag wurde von Billy am 25. November 2000 um 12:43 Uhr editiert.]
Profil   Private Nachricht   Web
Erstellt: 24.11.2006 23:42
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Junior Mitglied
 
 
 
Beiträge: 9
Registriert: 21.10.2000
Kann irgendjemand wenn er einen fertigen "logger" hat mir diesen Mailen oder die Source irgendwo posten? (Ich verzweifle beim versuch Beispiele zum laufen zu bringen...)
 
mfg SiSt
Simon.Stoye@gmx.net
Profil   Private Nachricht   E-Mail
Erstellt: 26.11.2006 18:50
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Senior Mitglied
 
 
 
Beiträge: 1085
Registriert: 02.06.2000
Jo, ich wär auch interessiert, am besten hier posten.
 
------------------
=> Hier könnte Ihre Werbung stehen! <=
 
cu in hell...
The 900 08/15
Profil   Private Nachricht   E-Mail
Erstellt: 26.11.2006 21:50
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Junior Mitglied
 
 
 
Beiträge: 1
Registriert: 27.11.2000
Die c't hatte mal so ein Programm, die URL der Source ist ftp://ftp.heise.de/pub/ct/listings/9905-272.zip
 
Es geht dabei darum, dass alle Kommas, die über den Tastaturblock eingegeben werden, in Punkte umgewandelt werden (weil Programme oft den Punkt als Trennzeichen bei Kommazahlen brauchen).
Dazu werden alle Tastaturcodes mittels Hook abgefangen ...zu finden in c't 5/99 S. 272.
 
HTH
 
------------------
Zoppo
auch sehr nett ist es auf dem XelleX Board!
 

[Dieser Beitrag wurde von Zoppo am 28. November 2000 um 22:22 Uhr editiert.]
Profil   Private Nachricht   E-Mail
Erstellt: 28.11.2006 21:18
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Senior Mitglied
 
 
 
Beiträge: 1085
Registriert: 02.06.2000
Hey, dass sieht ja gar nicht so schlecht aus!
 
THX für den Link/Tip!
 
------------------
=> Hier könnte Ihre Werbung stehen! <=
 
cu in hell...
The 900 08/15
Profil   Private Nachricht   E-Mail
Erstellt: 29.11.2006 14:40
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Senior Mitglied
 
 
 
Beiträge: 165
Registriert: 07.09.2000
OK, also ich habe jetzt geschafft das es die Threads abfragt, aber es klappt nur bei sich selbst, ich poste mal den Code:
 
Code[In neuem Fenster öffnen]
#include "windows.h"
#include "winuser.h"
#include <stdio.h>
#define WIN32_LEAN_AND_MEAN
#define AppName "Main"
 
//CALLBACK Functions
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK KeyboardProc(int,WPARAM,LPARAM);
 
//Initialisations
HWND hwnd;
HWND hwnd2;
HWND btnEnd;
HINSTANCE hIn;
 

HDC hdc;
PAINTSTRUCT ps;
 

//WinMain-Fucntion
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance, LPSTR lpCmdLine,
int iCmdShow)
{
MSG msg;
WNDCLASS wc;
 
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = AppName;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;
 
RegisterClass(&wc);
char WinDir[MAX_PATH];
char* DllName;
 
char DllDir[255];

DllName = "\system32\kbdgr.dll";

GetWindowsDirectory(WinDir,MAX_PATH);
 
_snprintf(DllDir,sizeof(DllDir),"%s%s",WinDir,DllName);

 
hwnd = CreateWindowEx(NULL,
AppName,
AppName,
WS_POPUPWINDOW,
50,
50,
150,
100,
NULL,
NULL,
hInstance,
NULL);
 
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
 

HANDLE hand = GetCurrentThread();
hIn = LoadLibrary(DllDir);
if ( hIn != NULL )
SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,hIn,GetCurrentThreadId());
else
MessageBox(hwnd,DllDir,"Error",NULL);
 

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
 
FreeLibrary(hIn);
 
return msg.wParam;
}
 
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
MessageBox(NULL,"KeyDown",NULL,NULL);
return 0;
}
 
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
LPTSTR Text;
int MaxChar = 2;
 
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CREATE:
return 0;
case WM_SIZE:
break;
}
 
return DefWindowProc(hwnd,message,wParam,lParam);
}

 
Aber wie bekomme ich hin das es den aktuellen Thread abfragt?
 
Vielen Dank im voraus!
 
cpp
PS: Das board war heute ca 3 h nicht erreichbar!
 

 
[Dieser Beitrag wurde von C++ am 02. Dezember 2000 um 16:56 Uhr editiert.]
Profil   Private Nachricht   E-Mail   Web
Erstellt: 02.12.2006 15:52
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
 Re: SetWindowHookEx
Senior Mitglied
 
 
 
Beiträge: 165
Registriert: 07.09.2000
Up!
^
|
|
|
 
Billy !!!! HILFE!!!!!
 
cpp
 
Edit: Bitte Billy!
cpp
 
[Dieser Beitrag wurde von C++ am 11. Dezember 2000 editiert.]
Profil   Private Nachricht   E-Mail   Web
Erstellt: 03.12.2006 12:08
Markierten Text hervorheben   Bearbeiten   Löschen   Zitatantwort
Dieses Thema enthält weitere Beiträge. Weiter
Seite: 1 2
Thema abonnieren Thema abonnieren