Packetbot für freewar

07/20/2010 12:13 Australopiticus#1
hi
ich hab mir mal das tutorial von shadow992 zum autoit botschreiben angeguckt und wollt jetzt einen packetbot für freewar.de schreiben.
Leider klappt da schonmal was beim einloggen nicht. ich bin noch ein ziehmlicher anfänger und es wär toll wenn ihr mir weiterhelfen könntet.
hier mein quellcode (hab den angegebenen account erstellt damit ihr den code selbst testen könnt)
Die funktionen GetCoockies, TCPRequest und Change sind bereits vorgefertigt und im oben erwähnten [Only registered and activated users can see links. Click Here To Register...] erklärt.


Quote:
#include<String.au3>

$name="meistermoe"
$password="1234"
$server="1"

$password=Change($password)
$name=Change($name)


TCPStartup()
$ip = TCPNameToIP("welt"&$server&".freewar.de")
TCPShutdown()

$post="name="&$name&"&password="&$password&"&submi t=Einloggen"
$source=TCPRequest($ip,'welt'&$server&'.freewar.de ','', '/freewar/internal/index.php',$post,'base_domain_640d764620ebb1d5c22c 14c72afb7ec3=freewar.de; PHPSESSID=ffe67c35ae17f5889104e37195b42e6e; fbsetting_640d764620ebb1d5c22c14c72afb7ec3=%7B%22c onnectState%22%3A3%2C%22oneLineStorySetting%22%3A3 %2C%22shortStorySetting%22%3A3%2C%22inFacebook%22% 3Afalse%7D','http://welt13.freewar.de/freewar/index.php')
MsgBox(0,"test",$source)
$cookies=GetCookies($source)




Func GetCookies($sQuellcode)
Local $sCookies, $i, $aCookies
$sCookies = ''
$aCookies = _StringBetween($sQuellcode, 'Set-Cookie: ', ';', 1)
For $i = 0 To UBound($aCookies) - 1
$sCookies &= $aCookies[$i] & ';'
Next
Return $sCookies
EndFunc ;==>GetCookies


Func TCPRequest($sIp, $sHost,$msg=0, $sSeite = "", $sPost = '', $sCookies = '', $sReferer = '', $iMaxTime = 10000)
Local $sPacket, $iSocket, $iTimer

If $sPost = '' Then
$sPacket = 'GET /' & $sSeite & ' HTTP/1.1' & @CRLF
Else
$sPacket = 'POST /' & $sSeite & ' HTTP/1.1' & @CRLF
EndIf
$sPacket &= 'Host: ' & $sHost & @CRLF & _
'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)' & @CRLF & _
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' & @CRLF & _
'Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3' & @CRLF & _
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' & @CRLF & _
'Keep-Alive: 300' & @CRLF & _
'Content-Type: application/x-www-form-urlencoded' & @CRLF & _
'Connection: keep-alive' & @CRLF
If $sReferer <> '' Then
$sPacket &= 'Referer: ' & $sReferer & @CRLF
EndIf
If $sCookies <> '' Then
$sCookies=StringStripCR($sCookies)
$sCookies=StringStripWS($sCookies,8)
$sPacket &= 'Cookie: ' & $sCookies & @CRLF
EndIf
If $sPost <> '' Then
$sPacket &= 'Content-Length: ' & StringLen($sPost) & @CRLF
EndIf
$sPacket &= @CRLF
If $sPost <> '' Then
$sPacket &= $sPost
EndIf
If $msg=1 Then
MsgBox(0,"Packet",$sPacket)
EndIf
TCPStartup()
If @error Then Return SetError(1, 0, "")
$iSocket = TCPConnect($sIp, 80)
If @error Then Return SetError(2, 0, "")
TCPSend($iSocket, $sPacket)
If @error Then Return SetError(3, 0, "")
$iTimer = TimerInit()
Do
$sRecv = TCPRecv($iSocket, 1024)
If TimerDiff($iTimer) > $iMaxTime Then Return SetError(4, 0, "")
Until $sRecv <> ""
Do
$sRecv &= TCPRecv($iSocket, 1024)
Until @error Or StringInStr($sRecv, '</html>')
TCPCloseSocket($iSocket)
TCPShutdown()
Return $sRecv
EndFunc ;==>TCPRequest


Func Change($string)
$string = StringReplace($string, "%", "%25")
$string = StringReplace($string, "†", "%E2%80%A0")
$string = StringReplace($string, "ä", "%C3%A4")
$string = StringReplace($string, "ö", "%C3%B6")
$string = StringReplace($string, "ü", "%C3%BC")
$string = StringReplace($string, "!", "%21")
$string = StringReplace($string, '"', "%22")
$string = StringReplace($string, "§", "%C2%A7")
$string = StringReplace($string, "$", "%24")
$string = StringReplace($string, "&", "%26")
$string = StringReplace($string, "/", "%2F")
$string = StringReplace($string, "+", "%2B")
$string = StringReplace($string, " ", "+")
$string = StringReplace($string, "(", "%28")
$string = StringReplace($string, ")", "%29")
$string = StringReplace($string, "=", "%3D")
$string = StringReplace($string, "?", "%3F")
$string = StringReplace($string, "[", "%5B")
$string = StringReplace($string, "]", "%5D")
$string = StringReplace($string, "{", "%7B")
$string = StringReplace($string, "}", "%7D")
$string = StringReplace($string, "ß", "%C3%9F")
$string = StringReplace($string, ",", "%2C")
$string = StringReplace($string, ":", "%3A")
$string = StringReplace($string, ";", "%3B")
$string = StringReplace($string, "#", "%23")
$string = StringReplace($string, "~", "%7E")
$string = StringReplace($string, "²", "%C2%B2")
$string = StringReplace($string, "³", "%C2%B3")
$string = StringReplace($string, "<", "%3C")
$string = StringReplace($string, ">", "%3E")
$string = StringReplace($string, "|", "%7C")
$string = StringReplace($string, "^", "%5E")
$string = StringReplace($string, "°", "%C2%B0")
$string = StringReplace($string, "´", "%C2%B4")
$string = StringReplace($string, "@", "%40")
$string = StringReplace($string, "€", "%E2%82%AC")
Return $string
EndFunc ;==>Change
07/20/2010 12:38 Algaten™#2
Danke für deinen account^^
Nimm die daten da lieber raus und änder das pw!
07/20/2010 12:44 Australopiticus#3
wie gesagt hab ich den account extra erstellt damit ihr euch das selbst anschauen könnt. auf dem spiel ich sowieso nicht^^ aber danke für die warnung
07/20/2010 18:10 Australopiticus#4
oh mann ich bin am verzweifeln irgendwie komm ich nicht weiter
bei der msgbox mit der ich überprüfe was was TCPRequest rauskommt steht nur ein endlos langer unverständlicher text und es steht nicht mahl post oder Get davor was ich mir überhaupt nicht erklären kann wenn ich mir die funktion anschau
help pls