Assembler Keyloger gesucht



  • Hallo,

    ich suche grade grade einen in Assembler geschriebenen Keylogger, der unter Win2k/WinXP läuft. Hab da mal etwas in c++ geschrieben, aber leider sind die Programme etwa 150kb groß, was etwas zu groß ist.



  • Hi!
    Schreib halt selbst einen, oder kannst du kein ASSEMBLER? Einfach so wirst du hier ganz bestimmt keinen kriegen.
    Für was brauchst du den überhaupt?



  • Mit Assembler habe ich vor ca. 7 Jahren etwas gemacht. Damals waren das die Dos Zeiten. Ich habe heute morgen mal wieder etwas mit Assembler probiert und hatte leider unter Windows XP ein paar Probleme. Als erstes hat mich Windows angemeckert, dass das Proggy im 16 Bit modus geschrieben ist. Dann hatte ich die lustige Widnows Fehlermeldung wegen Zugriffsverletzung. Liegt wahrscheinlich daran, dass man über die Windows API gehen muss.

    Das Programm ist für einen ABI Scherz meines Sohns gedacht. Es soll auf allen Rechnern der Schule verteilt werden. Sobald ein bestimmtes Wort über die Tastatur eingetippt wird, soll das Wort mit Backspace gelöscht und dafür ein anderes eingegeben werden.



  • Du kannst auch mit C ziemlich kleine Programme machen, wenn du die dynamische Runtime vom VC++ verwendest.



  • Wenns nun doch AMS sein soll, dann würde ich einfach die gedrückten Tasten mit INT 16h auslesen, einen Array im Speicher anlegen und mit einem vorgegebenen String(also das "bestimmte Wort") vergleichen. Wenn es übereinstimmt, die Zeichen löschen, wenn nicht, dann nicht.

    Also das nur mal als Grundidee.
    Aber einfach wird das eher nicht, da (wie du schon gesagt hast) Windows ja fast alles verbietet.

    Aber versuchen kann mans ja.

    Gruß Red!



  • Problem bei der Benutzung von von VC++ Runtime libs ist leider, dass die auf dem Rechner vorhanden sein müssen. Und das kann man nicht immer garantieren.

    Ja, das ist genau das Problem. INT 16h ist leider nicht möglich, genau da kommt die Zugriffsverletzung. Ausserdem wird mit INT 16h nur die Eingabe eines am PS2 Port angeschlossenen Keyboards ausgelesen. Die Zeiten haben sich aber deutlich verändert. Heute gibts auch USB Keyboards.



  • Hi,
    ok, das mit den USB Tastaturen ist wohl ein Argument.
    Wie siehts mit Port 60h aus? Geht das auch nur bei PS2 Tastaturen?

    Gruß Red!



  • Ich glaub, man kanns vergessen über die 0815 Ports gehen zu können. h60 geht da leider auch nicht, da hier Assembler zu tief auf die Hardwareplattform zugreift.

    Ich vermute mal, dass der einzige Weg über die Win32 API ist. Doch leider hab ich da keine Ahnung.... Mit Windows APIs hab ich bisher noch nichts gemacht, zusätzlich kommt noch das Problem, dass die Programmiersprache Assembler ist.



  • Jup,

    Wie schon im FAQ-Beitrag zum Unterschied zwischen DOS und Win32-Konsole steht, ist unter Windows weder Zugriff auf BIOS-/ DOS- o.Ae. Funktionen moeglich, noch auf saemtliche Hardwareports, es sei denn, man schreibt einen Treiber...
    Bei Win9x und aelter ist der Zugriff auf Hardwareports jedoch teilweise auch so moeglich... 😃
    Und ein DOS-Programm kann nicht die gewuenschte Funktionalitaet unter Windows bieten.

    Ich weiss zwar nicht, inwiefern man die RuntimeLibrary rausschmeissen kann, aber ansonsten bist du um einen Ueberblick zur Herangehensweise und den zu verwendenden Funktionen zu bekommen, mit deiner Anfrage erstmal bei den WinAPI-Leuten besser aufgehoben.

    Zum Assemblerprogrammieren unter Windows gibt's in den FAQ noch einige Tutorials:
    C/C++ Forum :: FAQ - Assembler :: ASM TUTORIALS



  • jo, mir war ja schon lange klar, dass es nicht über die Bios Schnittstellen gehen kann, da Windows so böse ist und alles blockt. Die Einzige Möglichkeit ist es über die Windows API KeyboardProc zu gehen. Nur wie geht das?

    Also wenn ich das richtig verstanden habe, dann gehts irgendwie mit

    extrn KeyboardProc



  • Ich hab gedacht, du hast es schon in C++ geschrieben. Wieso weißt du dann jetzt plötzlich nicht, wie es geht?



  • myLord schrieb:

    jo, mir war ja schon lange klar, dass es nicht über die Bios Schnittstellen gehen kann, da Windows so böse ist und alles blockt. Die Einzige Möglichkeit ist es über die Windows API KeyboardProc zu gehen. Nur wie geht das?

    Also wenn ich das richtig verstanden habe, dann gehts irgendwie mit

    extrn KeyboardProc

    Ich kann dir einen schreiben, habe sogar fast fertig, läuft unter
    XP/2000/NT. Ist komplett in ASM (masm32).

    Grüß
    Peter



  • Hi,

    was verlangst du dafür? Leider kann ich dir kein Geld anbieten...



  • myLord schrieb:

    Hi,

    was verlangst du dafür? Leider kann ich dir kein Geld anbieten...

    Muss auch nicht sein, wie gesagt das Project ist fast fertig, es fehlt nur noch e-mail-routiene zum versenden von gesnifften Daten an einen email.

    Also maile mir einfach an skipy666[at]freenet[dot]de


Anmelden zum Antworten