Mahzeit,
ich sitze grad an einem Projekt für die Uni. Unter anderem ist es auch Aufgabe, einen Keylogger zu implementieren.
Nun habe ich bereits einen Keylogger gebastelt, der jedoch von der Performance her... sagen wir mal... etwas dürftig ist.
Herzstück ist folgendes Codefragment:
Dabei durchlaufe ich alle Tasten, die ich loggen will und schaue dann, ob dazu ein Tastendruck anliegt. Anschließend logge ich die Taste.
Das Problem ist hier eindeutig die hohe Prozessorlast, sobald ich das Programm starte geht diese von 2% auf etwa 50% hoch.
Daher suche ich nach einer Möglichkeit, das Ganze effizienter zu gestalten, ich hatte da an eine Funktion gedacht, die angibt, ob überhaupt eine Taste gedrückt wurde, so dass ich erst dann checken muss, welche Taste dies denn ist. Allerdings habe ich bis jetzt in der MSDN und per Google irgendwie nichts wirklich Verwertbares finden können. Falls also jemand eine Idee hat, ich würde mich freuen
Für die Zweifler:
Es handelt sich um ein Projekt für die Uni im Rahmen eines "Hacker"praktikums:
http://www.nds.rub.de/lehre/praktika/hackerprakt/index.html
ich sitze grad an einem Projekt für die Uni. Unter anderem ist es auch Aufgabe, einen Keylogger zu implementieren.
Nun habe ich bereits einen Keylogger gebastelt, der jedoch von der Performance her... sagen wir mal... etwas dürftig ist.
Herzstück ist folgendes Codefragment:
Code:
while(1)
{
for(i=8;i<=190;i++)
{
if (GetAsyncKeyState(i) == -32767)
{
logkey(i,key_file);
}
}
}
Dabei durchlaufe ich alle Tasten, die ich loggen will und schaue dann, ob dazu ein Tastendruck anliegt. Anschließend logge ich die Taste.
Das Problem ist hier eindeutig die hohe Prozessorlast, sobald ich das Programm starte geht diese von 2% auf etwa 50% hoch.
Daher suche ich nach einer Möglichkeit, das Ganze effizienter zu gestalten, ich hatte da an eine Funktion gedacht, die angibt, ob überhaupt eine Taste gedrückt wurde, so dass ich erst dann checken muss, welche Taste dies denn ist. Allerdings habe ich bis jetzt in der MSDN und per Google irgendwie nichts wirklich Verwertbares finden können. Falls also jemand eine Idee hat, ich würde mich freuen

Für die Zweifler:
Es handelt sich um ein Projekt für die Uni im Rahmen eines "Hacker"praktikums:
http://www.nds.rub.de/lehre/praktika/hackerprakt/index.html