einfacher Spambot hört nicht auf

11/20/2010 22:58 MyKnoppers#1
Hay ich habe hier einen einfachen Spambot fürn anfang geschrieben aber der hört einfach nicht auf zu spammen ;)

Quote:
HotKeySet("{F11}", "_Start")
HotKeySet("{F12}", "_1")



#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("sYnetic.Gaming", 602, 286, 192, 124)
$Label1 = GUICtrlCreateLabel("Nachricht:", 16, 8, 53, 17)
$Label2 = GUICtrlCreateLabel("Zeile 1:", 56, 24, 39, 17)
$Label3 = GUICtrlCreateLabel("Zeile 2:", 56, 88, 39, 17)
$Label4 = GUICtrlCreateLabel("Zeile 3:", 56, 152, 39, 17)
$Edit1 = GUICtrlCreateEdit("", 104, 24, 473, 57)
GUICtrlSetData(-1, "Nachricht 1")
$Edit2 = GUICtrlCreateEdit("", 104, 88, 473, 57)
GUICtrlSetData(-1, "Nachricht 2")
$Edit3 = GUICtrlCreateEdit("", 104, 152, 473, 57)
GUICtrlSetData(-1, "Nachricht 3")
$Label5 = GUICtrlCreateLabel("Zeit in ms:", 16, 232, 52, 17)
$Input1 = GUICtrlCreateInput("Zein in ms", 104, 232, 89, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

EndSwitch
WEnd


Func _Start()
While 1
Sleep(10000)
Send("{t}")
Sleep(100)
Send(GUICtrlRead($Edit1))
Sleep(100)
Send("{Enter}")
Sleep(3000)
Send("{t}")
Sleep(100)
Send(GUICtrlRead($Edit2))
Sleep(100)
Send("{Enter}")
Sleep(3000)
Send("{t}")
Sleep(100)
Send(GUICtrlRead($Edit3))
Sleep(100)
Send("{Enter}")
Sleep(GUICtrlRead($Input1))
WEnd
EndFunc

Func _1()
while 1
Exit
WEnd
EndFunc
weis jemand woran das liegt?
11/20/2010 23:10 Al Kappaccino#2
AutoIt ist nicht multithreading fähig(Diese komische UDF ist für mich kein Multithreading...<.<). Von daher kannst du auch nicht einfach 2 Schleifen laufen lassen, zu mal die erste ja läuft und den Hotkey gar nicht erkennt ;o
11/20/2010 23:12 MyKnoppers#3
danke für die antwort
ich habe die schleife bei der Funktion Exit reingemacht weil es vorher nicht funktioniert hat und da habe ich des mal so ausprobiert. Weißt du wie man des so coden kann damit er den Hotkey erkennt ?

mfg
11/20/2010 23:33 ZaZiZu#4
Quote:
Func _Start()
While 1
Sleep(10000)
Send("{t}")
Sleep(100)
Send(GUICtrlRead($Edit1))
Sleep(100)
Send("{Enter}")
Sleep(3000)
Send("{t}")
Sleep(100)
Send(GUICtrlRead($Edit2))
Sleep(100)
Send("{Enter}")
Sleep(3000)
Send("{t}")
Sleep(100)
Send(GUICtrlRead($Edit3))
Sleep(100)
Send("{Enter}")
Sleep(GUICtrlRead($Input1))
WEnd
EndFunc
pack da vor WEnd mal ein ExitLoop zwischen. damit hört die schleife auf
dann müsstest du jedoch jedes mal zum starten f11 drücken^^

außerdem gibt es schon haufenweise andere spammbots, die sogar funktionieren :D
hier mal ein grundgerüst(hatte ich früher aus einem GuildWars-bot geklaut :D find ich ist ziemlich nützlich):
11/21/2010 00:26 ZeraPain#5
@JakeFrost77 mit multithreading hat das nichts zu tun.
es laufen keine 2 schleifen gleichzeitig.

autoit kennt als hotkeys nur F1 - F11.
nimm eine anderen hotkey für _1 und es funktioniert.
11/21/2010 01:01 lolkop#6
sobald du auch nur ein sleep von mehr als etwa 300ms verwendest, wird dein gui nichtmehr funktionieren.

ein sleep sieht logisch etwa so aus:
Code:
func Sleep($sleeptime)
    local $start = gettime()
    do
        nop
    until gettime()-$start >= $sleeptime
endfunc
dh es wird solange nichts (nop) gemacht, bis die sleepzeit erreicht wurde.
das heist der gesamte restliche code kann in dieser zeit nicht aufgerufen werden. somit wird auch nicht guigetmsg aufgerufen, um zu schauen, ob etwas im gui gemacht wird.

um das zu vermeiden, musst du auf timer umsteigen.
selbes gilt natürlich für deine zweite schleife.
sobald func1 aufgerufen wird, startet eine neue schleife. solange du dich in dieser schleife befindest, wird der rest vom code nicht mehr aufgerufen. dh auch hier wird das gui nichtmehr gecheckt.

und deine func _1 is absolut sinnlos. der Exit befehl beendet sofort dein script.
wieso sollte man so etwas in eine schleife setzen? sobald der befehl einmalig ausgeführt wird, ist dein script und somit auch die schleife beendet.
11/21/2010 14:49 Al Kappaccino#7
Quote:
Originally Posted by ZeraPain View Post
@JakeFrost77 mit multithreading hat das nichts zu tun.
es laufen keine 2 schleifen gleichzeitig.

autoit kennt als hotkeys nur F1 - F11.
nimm eine anderen hotkey für _1 und es funktioniert.
Les doch mal genauer :facepalm:
Er will ja eine 2te Schleife Starten während die 1te noch läuft wenn er auf Beenden drückt...
Und nein, AutoIt erkennt ganz sicher nicht nur F1-F11 ôo
Naja ein gutes Script wurde ja gepostet...sollte von daher jetzt klappen ;o
11/21/2010 15:21 PenGuin :O#8
Quote:
Originally Posted by lolkop View Post
sobald du auch nur ein sleep von mehr als etwa 300ms verwendest, wird dein gui nichtmehr funktionieren.

ein sleep sieht logisch etwa so aus:
Code:
func Sleep($sleeptime)
    local $start = gettime()
    do
        nop
    until gettime()-$start >= $sleeptime
endfunc
dh es wird solange nichts (nop) gemacht, bis die sleepzeit erreicht wurde.
das heist der gesamte restliche code kann in dieser zeit nicht aufgerufen werden. somit wird auch nicht guigetmsg aufgerufen, um zu schauen, ob etwas im gui gemacht wird.

um das zu vermeiden, musst du auf timer umsteigen.
selbes gilt natürlich für deine zweite schleife.
sobald func1 aufgerufen wird, startet eine neue schleife. solange du dich in dieser schleife befindest, wird der rest vom code nicht mehr aufgerufen. dh auch hier wird das gui nichtmehr gecheckt.

und deine func _1 is absolut sinnlos. der Exit befehl beendet sofort dein script.
wieso sollte man so etwas in eine schleife setzen? sobald der befehl einmalig ausgeführt wird, ist dein script und somit auch die schleife beendet.
Gut, dass es in asm nur Timer gibt :)
11/21/2010 15:58 lolkop#9
Quote:
Originally Posted by pinguin94 View Post
Gut, dass es in asm nur Timer gibt :)
sah das aus wie asm? :O
hab eig nur ein nop eingesetzt, weil es keine idle funktion in autoit gibt, mit der man sleep näher beschreiben könnte :P und da nop für no operation steht, fand ich das ganz gut passend =)
11/21/2010 16:21 PenGuin :O#10
Quote:
Originally Posted by lolkop View Post
sah das aus wie asm? :O
hab eig nur ein nop eingesetzt, weil es keine idle funktion in autoit gibt, mit der man sleep näher beschreiben könnte :P und da nop für no operation steht, fand ich das ganz gut passend =)
Mach doch einfach nichts dahin :D
Wobei man dnan gar kein Takt verbraucht.
Hmm, naja egal.
Mit meinem Post wollt ich sagen, dass man das Problem in asm nicht hat :D
11/21/2010 16:45 ZeraPain#11
Quote:
Originally Posted by JakeFrost77 View Post
Les doch mal genauer :facepalm:
Er will ja eine 2te Schleife Starten während die 1te noch läuft wenn er auf Beenden drückt...
Und nein, AutoIt erkennt ganz sicher nicht nur F1-F11 ôo
Naja ein gutes Script wurde ja gepostet...sollte von daher jetzt klappen ;o
naja.. die erste schleife wird bei seiner logik einfach abgebrochen und die zweite schleife läuft an. (kann man machen, muss man aber nicht)
und ich habe nicht gesagt, dass autoit nur F1-F11 kennt sondern autoit kennt nur F1-11 als HOTKEYS.
man kann F12 nicht so als hotkey deklarieren.
11/21/2010 17:24 ZaZiZu#12
Quote:
Originally Posted by ZeraPain View Post
naja.. die erste schleife wird bei seiner logik einfach abgebrochen und die zweite schleife läuft an. (kann man machen, muss man aber nicht)
und ich habe nicht gesagt, dass autoit nur F1-F11 kennt sondern autoit kennt nur F1-11 als HOTKEYS.
man kann F12 nicht so als hotkey deklarieren.
wie jetzt, was genau willst du da betonen ^^, dass es nur bis 11 geht, oder dass es nur mit den F(unction)-tasten geht?
hotkey geht soweit ich weiß fast mit allen tasten, außer denen, die von windows benötigt werden oder nicht freigegeben werden (u.a. F12)
glaube irgendwo in der hilfsdatei steht sogar eine aufzählung dieser tasten
11/21/2010 18:07 ZeraPain#13
ja naja, "normalerweise" setzt man hotkeys auf die F-Tasten und soweit ich das beurteilen kann funktioniert das mit F12 nicht.

natürlich kann man auch auf normale tasten hotkeys setzen :)

wenn man F12 benutzen will muss man das mit ispressed und der taste als hex machen.

[Only registered and activated users can see links. Click Here To Register...]
->The following hotkeys cannot be set:
F12 It is also reserved by Windows, according to its API.