Need Help with AutoIt script to enable agBot multi botting

01/03/2009 17:49 E-Volt#1
I'm terribly sorry folks, but the agBot developers do not approve of multib0tting. Futile or not I - as a developer - respect that opinion and have therefore taken down the script.

(Mods plz delete the thread and attachment too ty)
01/03/2009 20:14 lolrko#2
there's already a tool for this , it's not public cause rev6 team won't allow multiclient bots

i hope i made my point
01/03/2009 20:32 add3#3
Quote:
Originally Posted by lolrko View Post
there's already a tool for this , it's not public cause rev6 team won't allow multiclient bots

i hope i made my point
If you do not understand this^^ I will make it clearer. If you finish and make this and rev6 finds out about the tool they will stop making the bot. Therefore stop or buy redconnector! Dead serious!
01/05/2009 07:56 ADSŪ#4
Quote:
Originally Posted by E-Volt View Post
So I made a script to enable multibotting with agBot. I also made a thread on [Only registered and activated users can see links. Click Here To Register...]about it and I hope someone helps me and the other agBotters.

Before I get to explaining the problem I've gotta explain what exactly the script does:

So usually when using SrProxy or NuConnector they listen on port 22580 for a bot and on another port for SRO (Loader default : 15778). Well what my script does is listen on port 22580 for the bot instead of SrProxy, while SrProxy is set to listen on another port. When agBot sends a connection request to port 22580 my script establishes a connection to agBot (TCPAccept) and connects to SrProxy (TCPConnect) and SHOULD redirect all data intended for agBot from SrProxy to agBot and all data intended for SRO from agBot to SRO.

Problem:
Well I hit a brick wall on the latter. Agbot succesfully establishes a connection to SrProxy and data from SrProxy / SRO reaches agBot, but all data sent from agBot doesn't reach SRO.



Guide is on the [Only registered and activated users can see links. Click Here To Register...]. So is a package trace pic (in the bug list area).

Here's code again:
Code:
#cs -----------------------------------------------About---------------------------------------------
-Enable Agbot Multibotting
-Version 1.1
-
-By Jeronimo
-
Functions:
-bot simultaneously with 10 bots
-delete nonexistent bots from the bot / socket list (maintainList) ----------------Not yet tested !!!
-
Still to add:
-GUI
-
-
Changelog:
-
Copyright Notice:
-Fuck copyright...I break it everyday. Why should I label my stuff copyrighted ?
-Therefore this script and it's accompanying Autohotkey script are copylefted.
#ce ------------------------------------------------This-^_^--------------------------------------------
#include <Process.au3>

Opt("WinTitleMatchMode", 2)     ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
Opt("GUIOnEventMode", 1)  ; Change to OnEvent mode 

$g_IP = "127.0.0.1"

;Max Packet Size
$maxPsize = 99999

; Start The TCP Services
;==============================================
TCPStartUp()

; Listen for the bot
;==============================================
$MainSocket = TCPListen($g_IP, 22580,100)

If $MainSocket = -1 Then Exit

#cs Bot/SrProxy List
Make a list of bots and SrProxies
Visualized:
Nr (Max defined by user $botsToRun)	|	Accepted Socket Nr	(defined by AutoIT) |	Send Port Nr (Defined by user in SrProxy)	|	Process # of SrProxy
#ce
$botsToRun = 10
$bots = 0
$portInc = 0
Dim $runningBots[$botsToRun][3]


#cs  look for client connection
When a bot connects it's added to the running bots list
with the socket and the port it sends it's data to
#ce
While 1
	$ConnectedSocket = TCPAccept( $MainSocket)
	
	;Check the bot connections
	checkBotConnections($ConnectedSocket)
	;Check or listen for outgoing data from the bots and send it to corresponding SRO
	checkOutgoing()
	;Check or listen for incoming data from SRO and send it to the corresponding bot
	checkIncoming()
	;Check if a bot or SrProxy died
	maintainList()
Wend

;Checks if the socket is being used
;If so the reference # will be returned
Func isSocketInUse($botSocket)
	$inUse = -1
	;Runs through the list of running bots
	For $i = 0 To $botsToRun-1
		If $runningBots[$i][0] == $botSocket Then
			$inUse = $i
		EndIf
	Next
	Return $inUse
EndFunc	

;Checks if the socket is really in use by the bot
Func maintainList()
	;Runs through the list of bots
	For $i = 0 To $botsToRun-1
		;PID of SrProxy
		$PID = $runningBots[$i][2]
		;Name of the SrProxy Process if it exists (String)
		$name = _ProcessGetName($PID)
		$exists = IsString($name)
		
		;Check if the bot and SrProxy are still running
		;If not the item is deleted from the list and the items in the list
		;are moved one place down in the list
		If $exists == 0 Then
			
			For $i = 0 To $botsToRun-2
				$runningBots[$i][0] = $runningBots[$i+1][0]
				$runningBots[$i][1] = $runningBots[$i+1][1]
				$runningBots[$i][2] = $runningBots[$i+1][2]
			Next
			$i = $i +1
			
			;Delete the last item in the list
			$runningBots[$i][0] = ""
			$runningBots[$i][1] = ""
			$runningBots[$i][2] = ""
			
			;Decrement the number of items on the list
			$bots = $bots -1
			
		EndIf
	Next
EndFunc

#cs
Check if t
he bot is receiving something from SrPoxy
To do that all ports/sockets in the list will be checked for received data,
which will be sent to the bot
#ce
Func checkIncoming()
	$dataArrived = False
	;If $runningBots[0][0] <> "" Then
		;MsgBox(0,"Size = ",$runningBots[0][0])
		For $i = 0 to $botsToRun -1
			;Data from SrProxy / SRO
			$in = TCPRecv($runningBots[$i][1],$maxPsize)
			
			If $in <> "" Then
				;MsgBox(0,"Data incoming !",$in)
				;Send to corresponding bot
				$sent = TCPSend($runningBots[$i][0],$in)	
				;MsgBox(0,"Bytes sent",$sent)
				$dataArrived = True
			EndIf
		Next
	;EndIf
	Return $dataArrived
EndFunc

;Searches a new SrProxy in the process list
Func newProxyPID()
	$processList = ProcessList("SrProxy")
	
	;Run through the process list
	For $i = 0 To $processList[0][0]
		$PID = $processList[$i][1]
		;The process doesn't exist yet
		$exists = False
		
		;Run through the bot / socket list 
		For $j = 0 To $botsToRun-1
			;and check if the process is already listed
			If $runningBots[$j][2] == $PID Then
				$exists = True ;Process exists
			EndIf
		Next	
		
		;If process doesn't exist that means we can now add it 2 the list
		If $exists == False Then
			Return $PID
			ExitLoop
		EndIf
	Next
EndFunc


;Check if the bot is sending something to SrProxy
Func checkOutgoing()
		$dataSent = False
		
		For $i = 0 To $botsToRun -1
			;Data from bot
			$out = TCPRecv($runningBots[$i][0],$maxPsize)
			
			If $out <> "" Then
				;MsgBox(0,"Data outgoing",$out)
				;Send to corresponding SrProxy-port
				$sent = TCPSend($runningBots[$i][1],$out)
				;MsgBox(0,"Bytes sent",$sent)
				$dataSent = True
			EndIf
		Next
		
		Return $dataSent
EndFunc

Func checkBotConnections($theSocket)
	;Has a connection been established
	;First check if the socket has already been connected
	;If not then increment the bots#, write the accepted socket # and the send port nr
	;If so just redirect the data package
	If $theSocket >= 0 Then
		
		;Accepted Socket
		$socket = $theSocket
		
		;Check if the socket is already in use
		$inUse = isSocketInUse($socket)
		
		$portNr = $inUse
		;MsgBox(0,"Port Nr",$portNr)
		
		If($inUse == -1) Then ;Socket not in use
			;MsgBox(0,"Socket not in use",$socket)
			$portNr = $bots
			;Store the bot's socket
			$runningBots[$bots][0] = $socket
			;Store SrProxy's socket
			$runningBots[$bots][1] = TCPConnect($g_IP,$portInc + 20000)
			;Increment the port numbers
			$portInc = $portInc + 1
			;Store the PID
			;Need 2 run through the list of processess first and find the new SrProxy
			$runningBots[$bots][2] = newProxyPID()
			
			$bots = $bots + 1
		EndIf
		;Msgbox(0,"Connected on socket",'"' & $connectedSocket & '" and sent "' & $sent & '"bytes of data "' & $data & '" to  "' + $runningBots[$bots][1] &'"')
	EndIf
EndFunc
I want to be nice because all the ppl that make an effort to make a app in autoit have a ":handsdown:" for me, but in this case, Nedra already told us to keep multibotting outside of the public eye, so pm me and we can discuss about this:D

bye:bandit:
01/05/2009 18:47 Vegetta91#5
lol i think WeeMan posted this on his forums claiming that's his multi agbot =))
01/05/2009 19:30 andypockett92#6
but weemans app never worked
01/05/2009 20:26 ADSŪ#7
Quote:
Originally Posted by andypockett92 View Post
but weemans app never worked
like always
01/06/2009 13:53 Vegetta91#8
Quote:
Originally Posted by andypockett92 View Post
but weemans app never worked
Never said they did since i never thrusted him enough to test them. I just said that i think he stole the source and he gave no credits
01/06/2009 22:05 E-Volt#9
Quote:
Originally Posted by Vegetta91 View Post
Never said they did since i never thrusted him enough to test them. I just said that i think he stole the source and he gave no credits
Wtf ?
That dumb pr1ck ! I stated I wanted ppl 2 at least write I was the author...oh well I know something like that would happen on the interwebz.

Quote:
Originally Posted by add3 View Post
If you do not understand this^^ I will make it clearer. If you finish and make this and rev6 finds out about the tool they will stop making the bot. Therefore stop or buy redconnector! Dead serious!
Gonna ask nihplod about this. I sincerely hope you r wrong.