Register for your free account! | Forgot your password?

You last visited: Today at 03:41

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Source]Tserver 1.06b

Discussion on [Source]Tserver 1.06b within the SRO Coding Corner forum part of the Silkroad Online category.

Reply
 
Old   #1
 
InvincibleNoOB's Avatar
 
elite*gold: 20
Join Date: Mar 2007
Posts: 4,277
Received Thanks: 2,990
[Source]Tserver 1.06b

The true source...
Compare it to the one posted at PH and you'll see the difference...

Header
Code:
#NoTrayIcon
#RequireAdmin
#region
#AutoIt3Wrapper_icon=F:UsersAdministratorDocumentsfavicon.ico
#AutoIt3Wrapper_outfile=..TBotSro1106TServer1106b.exe
#AutoIt3Wrapper_compression=4
#AutoIt3Wrapper_useansi=y
#endregion

Source
Code:
If _SINGLETON("tservertserver", 1) = 0 Then
	Exit
EndIf
Opt("TrayMenuMode", 1)
HotKeySet("{F8}", "run_tbot")
($)CONNECTEDSOCKET = -1
($)PACKETS = "6B4C8194B597BA3306408D1D59EC103E36ED5DD5C5231CDDB2D85E6F621EB540F6C210AD7EDABE887B0EED4B914A3A52627DA737AD1A8D2E313A2CCC08FF8DD9963966949A17E939030F1CE2BEE6F043012C6BC4D397EC0CB82001544B3B8D53C759B873A00304982F599D738B90BE693221CAACBFD11AEF20214C71EFD49C94"
($)VAR_1 = RegRead("HKEY_LOCAL_MACHINESOFTWARE218studioSilkRoadGamePath", "GamePath")
($)VAR_2 = RegRead("HKEY_LOCAL_MACHINESOFTWARE218studioSilkRoadUser", "User")
($)START = 0
($)HIDE = 0
Local ($)SOCKET
Local ($)TRAY_MSG
Global ($)TBOT_ID = "COGITATOR"
Global ($)TBOT_ADD
Global ($)PROGRESS
Global ($)PATCHER
Global ($)SLOW
Global ($)NORMAL
Global ($)FAST
Global ($)SEARCH = 0
Global ($)PATCH = 0
($)STATUSITEM = TrayCreateItem("Show")
($)ABOUTITEM = TrayCreateItem("About")
($)EXITITEM = TrayCreateItem("Exit")
If FileExists("TbotSro.exe") = 0 Then
	MsgBox(16, "Error", "Cannot locate TbotSro.exe!" & @CRLF & "Place this file in your Tbot Folder.")
	Exit
EndIf
($)MAIN = GUICreate("TServer", 200, 70, @DesktopWidth / 2 - 100, 5)
GUISetState()
GUICtrlCreateGroup("", 0, 0, 200, 35)
GUICtrlCreateLabel("SRO Username:", 5, 13, 100, 20)
GUICtrlSetFont(-1, 8.5, 800)
($)USERNAME = GUICtrlCreateInput("", 100, 10, 96, 20)
Global ($)SRO_ID = StringUpper(GUICtrlRead(($)USERNAME))
GUICtrlCreateGroup("", 0, 30, 200, 35)
($)LOAD_SRO = GUICtrlCreateButton("Load SRO Client", 5, 40, 93, 20)
($)LAUNCH_TBOT = GUICtrlCreateButton("Run Tbot [F8]", 100, 40, 95, 20)
If ($)VAR_1 = "" Then
	GUICtrlSetState(($)LAUNCH_TBOT, ($)GUI_DISABLE)
Else
	GUICtrlSetState(($)LAUNCH_TBOT, ($)GUI_ENABLE)
EndIf
If ($)VAR_2 <> "" Then
	GUICtrlSetData(($)USERNAME, ($)VAR_2)
EndIf
While 1
	($)DATA = TCPRecv(($)CONNECTEDSOCKET, 512)
	($)GUI_MSG = GUIGetMsg()
	($)TRAY_MSG = TrayGetMsg()
	Select
		Case ($)GUI_MSG = ($)GUI_EVENT_MINIMIZE
			TraySetState()
			GUISetState(@SW_HIDE)
		Case ($)GUI_MSG = ($)GUI_EVENT_CLOSE
			Exit
		Case ($)TRAY_MSG = ($)EXITITEM
			Exit
		Case ($)TRAY_MSG = ($)ABOUTITEM
			MsgBox(0, "TServer", "TServer by: MandarK")
		Case ($)TRAY_MSG = ($)STATUSITEM
			TraySetState(2)
			GUISetState(@SW_SHOW)
			GUISetState(@SW_RESTORE)
			WinActivate("TServer")
		Case ($)GUI_MSG = ($)LOAD_SRO
			($)SRO_DIR = FileOpenDialog("sro_client.exe", @WorkingDir, "(sro_client.exe)")
			If @error Then
				ContinueLoop
			Else
				RegWrite("HKEY_LOCAL_MACHINESOFTWARE218studioSilkRoadGamePath", "GamePath", "REG_EXPAND_SZ", ($)SRO_DIR)
				MsgBox(0, "TServer", "Succesfully loaded")
				GUICtrlSetState(($)LAUNCH_TBOT, ($)GUI_ENABLE)
			EndIf
		Case ($)GUI_MSG = ($)LAUNCH_TBOT
			RUN_TBOT()
	EndSelect
	If ($)DATA <> "" Then
		TCPSend(($)CONNECTEDSOCKET, _HEXTOSTRING(($)PACKETS))
		($)START = 2
		TCPShutdown()
	EndIf
	If ($)CONNECTEDSOCKET = -1 And ($)START = 1 Then
		($)CONNECTEDSOCKET = TCPAccept(($)SOCKET)
		If ($)CONNECTEDSOCKET <> -1 Then
			TCPSend(($)CONNECTEDSOCKET, "!TServer by: MandarK")
			Sleep(1500)
			ControlSetText("InterNationSilkRoadAss", "", "Edit1", ($)TBOT_ID)
			WinActivate("InterNationSilkRoadAss")
			ControlClick("InterNationSilkRoadAss", "Login", "Button1")
		EndIf
	EndIf
	If ($)START = 2 Then
		For ($)I = 0 To 2 Step 1
			WinMove("InterNationSilkRoadAss", "", @DesktopWidth, @DesktopHeight)
			WinSetState("InterNationSilkRoadAss", "", @SW_SHOW)
			ControlEnable("InterNationSilkRoadAss", "Login", "Button1")
			ControlSetText("InterNationSilkRoadAss", "", "Edit1", ($)SRO_ID)
			IniWrite("DataAccountname.ini", "Account", "AccountName", ($)SRO_ID)
			WinActivate("InterNationSilkRoadAss")
			ControlClick("InterNationSilkRoadAss", "Login", "Button1")
			WinSetState("InterNationSilkRoadAss", "", @SW_HIDE)
			ControlDisable("KTZ_SROTbot", "", "Button6")
		Next
		($)START = 0
	EndIf
	If ($)HIDE = 0 And WinExists("InterNationSilkRoadAss") Then
		WinMove("InterNationSilkRoadAss", "", @DesktopWidth, @DesktopHeight)
		($)HIDE = 1
	ElseIf WinExists("InterNationSilkRoadAss") = 0 Then
		($)HIDE = 0
	EndIf
WEnd

Func RUN_TBOT()
	If ProcessExists("TbotSro.exe") = 0 Then
		HotKeySet("{F6}", "train")
		($)CONNECTEDSOCKET = -1
		TraySetState()
		GUISetState(@SW_HIDE)
		($)SRO_ID = StringUpper(GUICtrlRead(($)USERNAME))
		If ($)SRO_ID <> "" Then
			TCPStartup()
			($)SOCKET = TCPListen("60.169.2.206", 13300)
			RegWrite("HKEY_LOCAL_MACHINESOFTWARE218studioSilkRoadUser", "User", "REG_EXPAND_SZ", ($)SRO_ID)
			($)START = 1
			ShellExecute("TbotSro.exe", "", "", "open", @SW_MINIMIZE)
		Else
			MsgBox(0, "Error", "No username entered." & @CRLF & "Please enter your sro username.")
		EndIf
	Else
		MsgBox(0, "Error", "TbotSro is Already running.")
	EndIf
EndFunc


Func TRAIN()
	($)SRO_PID = ProcessExists("sro_client.exe")
	If ($)SRO_PID = 0 Then
		MsgBox(0, "", "Silkroad not running.")
		Exit
	EndIf
	($)SRO_OPEN = _MEMORYOPEN(($)SRO_PID)
	($)VALUE_03 = _MEMORYREAD(15516984, ($)SRO_OPEN, "byte[32]")
	If ($)VALUE_03 <> "0x0000000000000000000000000000000000000000000000000000000000000000" And ($)PATCH = 0 Then
		WinMove("InterNationSilkRoadAss", "", @DesktopWidth, @DesktopHeight)
		WinSetState("InterNationSilkRoadAss", "", @SW_SHOW)
		ControlEnable("InterNationSilkRoadAss", "Login", "Button1")
		ControlSetText("InterNationSilkRoadAss", "", "Edit1", ($)TBOT_ID)
		IniWrite("DataAccountname.ini", "Account", "AccountName", ($)SRO_ID)
		WinActivate("InterNationSilkRoadAss")
		ControlClick("InterNationSilkRoadAss", "Login", "Button1")
		WinSetState("InterNationSilkRoadAss", "", @SW_HIDE)
		FAST()
	EndIf
EndFunc


Func FAST()
	If ($)PATCH = 0 Then
		($)PATCH = 1
		($)PATCHER = GUICreate(" Silkroad Patcher", 200, 65, -1, -1, ($)WS_DLGFRAME, ($)WS_EX_TOPMOST + ($)WS_EX_TOOLWINDOW)
		GUISetState()
		GUICtrlCreateLabel("Patching... this may take awhile!", 5, 5, 190, 20)
		($)PROGRESS = GUICtrlCreateProgress(5, 25, 190, 15, ($)PBS_SMOOTH)
		Local ($)VALUE_01 = 0
		($)SRO_ID = _STRINGTOHEX(StringUpper(GUICtrlRead(($)USERNAME)))
		($)PID = ProcessExists("TbotSro.exe")
		If ($)PID = 0 Then
			MsgBox(0, "", "TbotSro not running.")
			Exit
		EndIf
		($)DLLINFORMATION = _MEMORYOPEN(($)PID)
		($)START = 16777216
		($)STOPS = 83881984
		ProcessSetPriority("TServer1106.exe", 3)
		While ($)START <> ($)STOPS
			($)START = ($)START + 4096
			($)VALUE_01 = _MEMORYREAD(($)START, ($)DLLINFORMATION, "byte[4095]")
			GUICtrlSetData(($)PROGRESS, ($)START / (($)STOPS / 100))
			If StringInStr(Hex(($)VALUE_01), ($)SRO_ID) <> 0 Then
				($)SEARCH = StringInStr(Hex(($)VALUE_01), ($)SRO_ID)
				ExitLoop
			EndIf
		WEnd
		ProcessSetPriority("TServer1106.exe", 2)
		If ($)SEARCH <> 0 Then
			($)TBOT_ADD = Hex(($)START + Floor(($)SEARCH / 2))
			_MEMORYWRITE("0x" & ($)TBOT_ADD, ($)DLLINFORMATION, ($)TBOT_ID, "char[10]")
			GUIDelete(($)PATCHER)
			ControlEnable("KTZ_SROTbot", "", "Button6")
			MsgBox(0, "Patcher", "Patching success!")
			WinActivate("SRO_Client")
			HotKeySet("{F6}")
		Else
			MsgBox(16, "Patcher", "Patching unsuccessful!" & @CRLF & "Please report this error @ www.Projecthax.com")
			GUIDelete(($)PATCHER)
			ProcessClose("TbotSro.exe")
		EndIf
	EndIf
EndFunc


Includes
Code:
Func _HEXTOSTRING(($)STRHEX)
	Local ($)STRCHAR, ($)ARYHEX, ($)I, ($)IDEC, ($)CHAR, ($)IONE, ($)ITWO
	($)ARYHEX = StringSplit(($)STRHEX, "")
	If Mod(($)ARYHEX[0], 2) <> 0 Then
		SetError(1)
		Return -1
	EndIf
	For ($)I = 1 To ($)ARYHEX[0]
		($)IONE = ($)ARYHEX[($)I]
		($)I = ($)I + 1
		($)ITWO = ($)ARYHEX[($)I]
		($)IDEC = Dec(($)IONE & ($)ITWO)
		If @error <> 0 Then
			SetError(1)
			Return -1
		EndIf
		($)CHAR = Chr(($)IDEC)
		($)STRCHAR &= ($)CHAR
	Next
	Return ($)STRCHAR
EndFunc


Func _STRINGADDCOMMA(($)SSTR, ($)SSEPARATOR = -1, ($)SEND = -1)
	If ($)SSEPARATOR = -1 Or ($)SSEPARATOR = Default Then ($)SSEPARATOR = ","
	If ($)SEND = -1 Or ($)SEND = Default Then ($)SEND = "."
	Local ($)ANUM = StringSplit(($)SSTR, ($)SEND), ($)SHOLD = "", ($)ASRE, ($)BUB = False
	If UBound(($)ANUM) > 2 Then
		($)ASRE = StringRegExp(($)ANUM[1], "(d+)(d{3})", 1)
		($)BUB = True
	Else
		($)ASRE = StringRegExp(($)SSTR, "(d+)(d{3})", 3)
	EndIf
	If UBound(($)ASRE) = 2 Then
		While IsArray(($)ASRE)
			($)SHOLD = ($)SSEPARATOR & ($)ASRE[1] & ($)SHOLD
			($)ASRE = StringRegExp(($)ASRE[0], "(d+)(d{3})", 3)
		WEnd
	EndIf
	Local ($)NSTRLEN = StringLen(StringReplace(($)SHOLD, ($)SSEPARATOR, ""))
	If ($)BUB And ($)SHOLD Then
		Return StringTrimRight(($)ANUM[1], ($)NSTRLEN) & ($)SHOLD & ($)SEND & ($)ANUM[2]
	ElseIf ($)SHOLD Then
		Return StringTrimRight(($)SSTR, ($)NSTRLEN) & ($)SHOLD
	EndIf
	Return SetError(1, 0, ($)SSTR)
EndFunc


Func _STRINGBETWEEN(($)SSTRING, ($)SSTART, ($)SEND, ($)VCASE = -1, ($)ISRE = -1)
	If ($)ISRE = -1 Or ($)ISRE = Default Then
		If ($)VCASE = -1 Or ($)VCASE = Default Then
			($)VCASE = 0
		Else
			($)VCASE = 1
		EndIf
		Local ($)SHOLD = "", ($)SSNSSTART = "", ($)SSNSEND = ""
		While StringLen(($)SSTRING) > 0
			($)SSNSSTART = StringInStr(($)SSTRING, ($)SSTART, ($)VCASE)
			If Not ($)SSNSSTART Then ExitLoop
			($)SSTRING = StringTrimLeft(($)SSTRING, (($)SSNSSTART + StringLen(($)SSTART)) - 1)
			($)SSNSEND = StringInStr(($)SSTRING, ($)SEND, ($)VCASE)
			If Not ($)SSNSEND Then ExitLoop
			($)SHOLD &= StringLeft(($)SSTRING, ($)SSNSEND - 1) & Chr(1)
			($)SSTRING = StringTrimLeft(($)SSTRING, ($)SSNSEND)
		WEnd
		If Not ($)SHOLD Then Return SetError(1, 0, 0)
		($)SHOLD = StringSplit(StringTrimRight(($)SHOLD, 1), Chr(1))
		Local ($)AVARRAY[UBound(($)SHOLD) - 1]
		For ($)ICC = 1 To UBound(($)SHOLD) - 1
			($)AVARRAY[($)ICC - 1] = ($)SHOLD[($)ICC]
		Next
		Return ($)AVARRAY
	Else
		If ($)VCASE = Default Or ($)VCASE = -1 Then
			($)VCASE = "(?i)"
		Else
			($)VCASE = ""
		EndIf
		Local ($)AARRAY = StringRegExp(($)SSTRING, "(?s)" & ($)VCASE & ($)SSTART & "(.*?)" & ($)SEND, 3)
		If IsArray(($)AARRAY) Then Return ($)AARRAY
		Return SetError(1, 0, 0)
	EndIf
EndFunc


Func _STRINGENCRYPT(($)I_ENCRYPT, ($)S_ENCRYPTTEXT, ($)S_ENCRYPTPASSWORD, ($)I_ENCRYPTLEVEL = 1)
	If ($)I_ENCRYPT <> 0 And ($)I_ENCRYPT <> 1 Then
		SetError(1)
		Return ""
	ElseIf ($)S_ENCRYPTTEXT = "" Or ($)S_ENCRYPTPASSWORD = "" Then
		SetError(1)
		Return ""
	Else
		If Number(($)I_ENCRYPTLEVEL) <= 0 Or Int(($)I_ENCRYPTLEVEL) <> ($)I_ENCRYPTLEVEL Then ($)I_ENCRYPTLEVEL = 1
		Local ($)V_ENCRYPTMODIFIED
		Local ($)I_ENCRYPTCOUNTH
		Local ($)I_ENCRYPTCOUNTG
		Local ($)V_ENCRYPTSWAP
		Local ($)AV_ENCRYPTBOX[256][2]
		Local ($)I_ENCRYPTCOUNTA
		Local ($)I_ENCRYPTCOUNTB
		Local ($)I_ENCRYPTCOUNTC
		Local ($)I_ENCRYPTCOUNTD
		Local ($)I_ENCRYPTCOUNTE
		Local ($)V_ENCRYPTCIPHER
		Local ($)V_ENCRYPTCIPHERBY
		If ($)I_ENCRYPT = 1 Then
			For ($)I_ENCRYPTCOUNTF = 0 To ($)I_ENCRYPTLEVEL Step 1
				($)I_ENCRYPTCOUNTG = ""
				($)I_ENCRYPTCOUNTH = ""
				($)V_ENCRYPTMODIFIED = ""
				For ($)I_ENCRYPTCOUNTG = 1 To StringLen(($)S_ENCRYPTTEXT)
					If ($)I_ENCRYPTCOUNTH = StringLen(($)S_ENCRYPTPASSWORD) Then
						($)I_ENCRYPTCOUNTH = 1
					Else
						($)I_ENCRYPTCOUNTH += 1
					EndIf
					($)V_ENCRYPTMODIFIED = ($)V_ENCRYPTMODIFIED & Chr(BitXOR(Asc(StringMid(($)S_ENCRYPTTEXT, ($)I_ENCRYPTCOUNTG, 1)), Asc(StringMid(($)S_ENCRYPTPASSWORD, ($)I_ENCRYPTCOUNTH, 1)), 255))
				Next
				($)S_ENCRYPTTEXT = ($)V_ENCRYPTMODIFIED
				($)I_ENCRYPTCOUNTA = ""
				($)I_ENCRYPTCOUNTB = 0
				($)I_ENCRYPTCOUNTC = ""
				($)I_ENCRYPTCOUNTD = ""
				($)I_ENCRYPTCOUNTE = ""
				($)V_ENCRYPTCIPHERBY = ""
				($)V_ENCRYPTCIPHER = ""
				($)V_ENCRYPTSWAP = ""
				($)AV_ENCRYPTBOX = ""
				Local ($)AV_ENCRYPTBOX[256][2]
				For ($)I_ENCRYPTCOUNTA = 0 To 255
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][1] = Asc(StringMid(($)S_ENCRYPTPASSWORD, Mod(($)I_ENCRYPTCOUNTA, StringLen(($)S_ENCRYPTPASSWORD)) + 1, 1))
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0] = ($)I_ENCRYPTCOUNTA
				Next
				For ($)I_ENCRYPTCOUNTA = 0 To 255
					($)I_ENCRYPTCOUNTB = Mod((($)I_ENCRYPTCOUNTB + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0] + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][1]), 256)
					($)V_ENCRYPTSWAP = ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0]
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0] = ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTB][0]
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTB][0] = ($)V_ENCRYPTSWAP
				Next
				For ($)I_ENCRYPTCOUNTA = 1 To StringLen(($)S_ENCRYPTTEXT)
					($)I_ENCRYPTCOUNTC = Mod((($)I_ENCRYPTCOUNTC + 1), 256)
					($)I_ENCRYPTCOUNTD = Mod((($)I_ENCRYPTCOUNTD + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTC][0]), 256)
					($)I_ENCRYPTCOUNTE = ($)AV_ENCRYPTBOX[Mod((($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTC][0] + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTD][0]), 256)][0]
					($)V_ENCRYPTCIPHERBY = BitXOR(Asc(StringMid(($)S_ENCRYPTTEXT, ($)I_ENCRYPTCOUNTA, 1)), ($)I_ENCRYPTCOUNTE)
					($)V_ENCRYPTCIPHER &= Hex(($)V_ENCRYPTCIPHERBY, 2)
				Next
				($)S_ENCRYPTTEXT = ($)V_ENCRYPTCIPHER
			Next
		Else
			For ($)I_ENCRYPTCOUNTF = 0 To ($)I_ENCRYPTLEVEL Step 1
				($)I_ENCRYPTCOUNTB = 0
				($)I_ENCRYPTCOUNTC = ""
				($)I_ENCRYPTCOUNTD = ""
				($)I_ENCRYPTCOUNTE = ""
				($)V_ENCRYPTCIPHERBY = ""
				($)V_ENCRYPTCIPHER = ""
				($)V_ENCRYPTSWAP = ""
				($)AV_ENCRYPTBOX = ""
				Local ($)AV_ENCRYPTBOX[256][2]
				For ($)I_ENCRYPTCOUNTA = 0 To 255
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][1] = Asc(StringMid(($)S_ENCRYPTPASSWORD, Mod(($)I_ENCRYPTCOUNTA, StringLen(($)S_ENCRYPTPASSWORD)) + 1, 1))
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0] = ($)I_ENCRYPTCOUNTA
				Next
				For ($)I_ENCRYPTCOUNTA = 0 To 255
					($)I_ENCRYPTCOUNTB = Mod((($)I_ENCRYPTCOUNTB + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0] + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][1]), 256)
					($)V_ENCRYPTSWAP = ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0]
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTA][0] = ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTB][0]
					($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTB][0] = ($)V_ENCRYPTSWAP
				Next
				For ($)I_ENCRYPTCOUNTA = 1 To StringLen(($)S_ENCRYPTTEXT) Step 2
					($)I_ENCRYPTCOUNTC = Mod((($)I_ENCRYPTCOUNTC + 1), 256)
					($)I_ENCRYPTCOUNTD = Mod((($)I_ENCRYPTCOUNTD + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTC][0]), 256)
					($)I_ENCRYPTCOUNTE = ($)AV_ENCRYPTBOX[Mod((($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTC][0] + ($)AV_ENCRYPTBOX[($)I_ENCRYPTCOUNTD][0]), 256)][0]
					($)V_ENCRYPTCIPHERBY = BitXOR(Dec(StringMid(($)S_ENCRYPTTEXT, ($)I_ENCRYPTCOUNTA, 2)), ($)I_ENCRYPTCOUNTE)
					($)V_ENCRYPTCIPHER = ($)V_ENCRYPTCIPHER & Chr(($)V_ENCRYPTCIPHERBY)
				Next
				($)S_ENCRYPTTEXT = ($)V_ENCRYPTCIPHER
				($)I_ENCRYPTCOUNTG = ""
				($)I_ENCRYPTCOUNTH = ""
				($)V_ENCRYPTMODIFIED = ""
				For ($)I_ENCRYPTCOUNTG = 1 To StringLen(($)S_ENCRYPTTEXT)
					If ($)I_ENCRYPTCOUNTH = StringLen(($)S_ENCRYPTPASSWORD) Then
						($)I_ENCRYPTCOUNTH = 1
					Else
						($)I_ENCRYPTCOUNTH += 1
					EndIf
					($)V_ENCRYPTMODIFIED &= Chr(BitXOR(Asc(StringMid(($)S_ENCRYPTTEXT, ($)I_ENCRYPTCOUNTG, 1)), Asc(StringMid(($)S_ENCRYPTPASSWORD, ($)I_ENCRYPTCOUNTH, 1)), 255))
				Next
				($)S_ENCRYPTTEXT = ($)V_ENCRYPTMODIFIED
			Next
		EndIf
		Return ($)S_ENCRYPTTEXT
	EndIf
EndFunc


Func _STRINGINSERT(($)S_STRING, ($)S_INSERTSTRING, ($)I_POSITION)
	Local ($)I_LENGTH, ($)S_START, ($)S_END
	If ($)S_STRING = "" Or (Not IsString(($)S_STRING)) Then
		SetError(1)
		Return ($)S_STRING
	ElseIf ($)S_INSERTSTRING = "" Or (Not IsString(($)S_STRING)) Then
		SetError(2)
		Return ($)S_STRING
	Else
		($)I_LENGTH = StringLen(($)S_STRING)
		If (Abs(($)I_POSITION) > ($)I_LENGTH) Or (Not IsInt(($)I_POSITION)) Then
			SetError(3)
			Return ($)S_STRING
		EndIf
	EndIf
	If ($)I_POSITION = 0 Then
		Return ($)S_INSERTSTRING & ($)S_STRING
	ElseIf ($)I_POSITION > 0 Then
		($)S_START = StringLeft(($)S_STRING, ($)I_POSITION)
		($)S_END = StringRight(($)S_STRING, ($)I_LENGTH - ($)I_POSITION)
		Return ($)S_START & ($)S_INSERTSTRING & ($)S_END
	ElseIf ($)I_POSITION < 0 Then
		($)S_START = StringLeft(($)S_STRING, Abs(($)I_LENGTH + ($)I_POSITION))
		($)S_END = StringRight(($)S_STRING, Abs(($)I_POSITION))
		Return ($)S_START & ($)S_INSERTSTRING & ($)S_END
	EndIf
EndFunc


Func _STRINGPROPER(($)S_STR)
	Local ($)IX = 0
	Local ($)CAPNEXT = 1
	Local ($)S_NSTR = ""
	Local ($)S_CURCHAR
	For ($)IX = 1 To StringLen(($)S_STR)
		($)S_CURCHAR = StringMid(($)S_STR, ($)IX, 1)
		Select
			Case ($)CAPNEXT = 1
				If __CHARACTERISAPHA(($)S_CURCHAR) Then
					($)S_CURCHAR = StringUpper(($)S_CURCHAR)
					($)CAPNEXT = 0
				EndIf
			Case Not __CHARACTERISAPHA(($)S_CURCHAR)
				($)CAPNEXT = 1
			Case Else
				($)S_CURCHAR = StringLower(($)S_CURCHAR)
		EndSelect
		($)S_NSTR &= ($)S_CURCHAR
	Next
	Return (($)S_NSTR)
EndFunc


Func _STRINGREPEAT(($)SSTRING, ($)IREPEATCOUNT)
	Local ($)SRESULT
	Select
		Case Not StringIsInt(($)IREPEATCOUNT)
			SetError(1)
			Return ""
		Case StringLen(($)SSTRING) < 1
			SetError(1)
			Return ""
		Case ($)IREPEATCOUNT <= 0
			SetError(1)
			Return ""
		Case Else
			For ($)ICOUNT = 1 To ($)IREPEATCOUNT
				($)SRESULT &= ($)SSTRING
			Next
			Return ($)SRESULT
	EndSelect
EndFunc


Func _STRINGREVERSE(($)SSTRING)
	Local ($)SREVERSE
	Local ($)ICOUNT
	If StringLen(($)SSTRING) >= 1 Then
		For ($)ICOUNT = 1 To StringLen(($)SSTRING)
			($)SREVERSE = StringMid(($)SSTRING, ($)ICOUNT, 1) & ($)SREVERSE
		Next
		Return ($)SREVERSE
	Else
		SetError(1)
		Return ""
	EndIf
EndFunc


Func _STRINGTOHEX(($)STRCHAR)
	Local ($)ARYCHAR, ($)I, ($)IDEC, ($)HCHAR, ($)STRHEX
	($)ARYCHAR = StringSplit(($)STRCHAR, "")
	For ($)I = 1 To ($)ARYCHAR[0]
		($)IDEC = Asc(($)ARYCHAR[($)I])
		($)HCHAR = Hex(($)IDEC, 2)
		($)STRHEX &= ($)HCHAR
	Next
	Return ($)STRHEX
EndFunc


Func __CHARACTERISAPHA(($)S_STR)
	Local ($)A_ALPHA = "abcdefghijklmnopqrstuvwxyz"
	Return (StringInStr(($)A_ALPHA, ($)S_STR))
EndFunc

#Include <GUIConstants.au3>

Func _CHOOSECOLOR(($)I_RETURNTYPE = 0, ($)I_COLORREF = 0, ($)I_REFTYPE = 0, ($)H_WND_OWNER = 0)
	Local ($)CUSTCOLORS = "int[16]"
	Local ($)STRUCT = "dword;int;int;int;ptr;dword;int;ptr;ptr"
	Local ($)P = DllStructCreate(($)STRUCT)
	If @error Then
		SetError(-1)
		Return -1
	EndIf
	Local ($)CC = DllStructCreate(($)CUSTCOLORS)
	If @error Then
		SetError(-2)
		Return -1
	EndIf
	If (($)I_REFTYPE == 1) Then
		($)I_COLORREF = Int(($)I_COLORREF)
	ElseIf (($)I_REFTYPE == 2) Then
		($)I_COLORREF = Hex(String(($)I_COLORREF), 6)
		($)I_COLORREF = "0x" & StringMid(($)I_COLORREF, 5, 2) & StringMid(($)I_COLORREF, 3, 2) & StringMid(($)I_COLORREF, 1, 2)
	EndIf
	DllStructSetData(($)P, 1, DllStructGetSize(($)P))
	DllStructSetData(($)P, 2, ($)H_WND_OWNER)
	DllStructSetData(($)P, 4, ($)I_COLORREF)
	DllStructSetData(($)P, 5, DllStructGetPtr(($)CC))
	DllStructSetData(($)P, 6, BitOR(($)CC_ANYCOLOR, ($)CC_FULLOPEN, ($)CC_RGBINIT))
	Local ($)RET = DllCall("comdlg32.dll", "long", "ChooseColor", "ptr", DllStructGetPtr(($)P))
	If (($)RET[0] == 0) Then
		SetError(-3)
		Return -1
	EndIf
	Local ($)COLOR_PICKED = DllStructGetData(($)P, 4)
	If (($)I_RETURNTYPE == 1) Then
		Return "0x" & Hex(String(($)COLOR_PICKED), 6)
	ElseIf (($)I_RETURNTYPE == 2) Then
		($)COLOR_PICKED = Hex(String(($)COLOR_PICKED), 6)
		Return "0x" & StringMid(($)COLOR_PICKED, 5, 2) & StringMid(($)COLOR_PICKED, 3, 2) & StringMid(($)COLOR_PICKED, 1, 2)
	ElseIf (($)I_RETURNTYPE == 0) Then
		Return ($)COLOR_PICKED
	Else
		SetError(-4)
		Return -1
	EndIf
EndFunc


Func _CHOOSEFONT(($)S_FONTNAME = "Courier New", ($)I_SIZE = 10, ($)I_COLORREF = 0, ($)I_FONTWEIGHT = 0, ($)I_ITALIC = 0, ($)I_UNDERLINE = 0, ($)I_STRIKETHRU = 0, ($)H_WND_OWNER = 0)
	Local ($)RET = DllCall("gdi32.dll", "long", "GetDeviceCaps", "long", 0, "long", ($)LOGPIXELSX)
	If (($)RET[0] == -1) Then
		SetError(-3)
		Return -1
	EndIf
	Local ($)LFHEIGHT = Round((($)I_SIZE * ($)RET[2]) / 72, 0)
	Local ($)LOGFONT = "int;int;int;int;int;byte;byte;byte;byte;byte;byte;byte;byte;char[32]"
	Local ($)STRUCT = "dword;int;int;ptr;int;dword;int;int;ptr;ptr;int;ptr;dword;int;int"
	Local ($)P = DllStructCreate(($)STRUCT)
	If @error Then
		SetError(-1)
		Return -1
	EndIf
	Local ($)LF = DllStructCreate(($)LOGFONT)
	If @error Then
		SetError(-2)
		Return -1
	EndIf
	DllStructSetData(($)P, 1, DllStructGetSize(($)P))
	DllStructSetData(($)P, 2, ($)H_WND_OWNER)
	DllStructSetData(($)P, 4, DllStructGetPtr(($)LF))
	DllStructSetData(($)P, 5, ($)I_SIZE)
	DllStructSetData(($)P, 6, BitOR(($)CF_SCREENFONTS, ($)CF_PRINTERFONTS, ($)CF_EFFECTS, ($)CF_INITTOLOGFONTSTRUCT, ($)CF_NOSCRIPTSEL))
	DllStructSetData(($)P, 7, ($)I_COLORREF)
	DllStructSetData(($)P, 13, 0)
	DllStructSetData(($)LF, 1, ($)LFHEIGHT + 1)
	DllStructSetData(($)LF, 5, ($)I_FONTWEIGHT)
	DllStructSetData(($)LF, 6, ($)I_ITALIC)
	DllStructSetData(($)LF, 7, ($)I_UNDERLINE)
	DllStructSetData(($)LF, 8, ($)I_STRIKETHRU)
	DllStructSetData(($)LF, 14, ($)S_FONTNAME)
	($)RET = DllCall("comdlg32.dll", "long", "ChooseFont", "ptr", DllStructGetPtr(($)P))
	If (($)RET[0] == 0) Then
		SetError(-3)
		Return -1
	EndIf
	Local ($)FONTNAME = DllStructGetData(($)LF, 14)
	If (StringLen(($)FONTNAME) == 0 And StringLen(($)S_FONTNAME) > 0) Then
		($)FONTNAME = ($)S_FONTNAME
	EndIf
	Local ($)ITALIC = 0
	Local ($)UNDERLINE = 0
	Local ($)STRIKEOUT = 0
	If (DllStructGetData(($)LF, 6)) Then
		($)ITALIC = 2
	EndIf
	If (DllStructGetData(($)LF, 7)) Then
		($)UNDERLINE = 4
	EndIf
	If (DllStructGetData(($)LF, 8)) Then
		($)STRIKEOUT = 8
	EndIf
	Local ($)ATTRIBUTES = BitOR(($)ITALIC, ($)UNDERLINE, ($)STRIKEOUT)
	Local ($)SIZE = DllStructGetData(($)P, 5) / 10
	Local ($)WEIGHT = DllStructGetData(($)LF, 5)
	Local ($)COLORREF = DllStructGetData(($)P, 7)
	Local ($)COLOR_PICKED = Hex(String(($)COLORREF), 6)
	Return StringSplit(($)ATTRIBUTES & "," & ($)FONTNAME & "," & ($)SIZE & "," & ($)WEIGHT & "," & ($)COLORREF & "," & "0x" & ($)COLOR_PICKED & "," & "0x" & StringMid(($)COLOR_PICKED, 5, 2) & StringMid(($)COLOR_PICKED, 3, 2) & StringMid(($)COLOR_PICKED, 1, 2), ",")
EndFunc


Func _CLIPPUTFILE(($)SFILE, ($)SSEPERATOR = "|")
	Local ($)VDLLCALLTMP, ($)NGLOBMEMSIZE, ($)HGLOBAL, ($)DROPFILES, ($)I, ($)HLOCK
	Local ($)GMEM_MOVEABLE = 2, ($)CF_HDROP = 15
	($)SFILE = ($)SFILE & ($)SSEPERATOR & ($)SSEPERATOR
	($)NGLOBMEMSIZE = StringLen(($)SFILE) + 20
	($)VDLLCALLTMP = DllCall("user32.dll", "int", "OpenClipboard", "hwnd", 0)
	If @error Or ($)VDLLCALLTMP[0] = 0 Then
		SetError(1)
		Return False
	EndIf
	($)VDLLCALLTMP = DllCall("user32.dll", "int", "EmptyClipboard")
	If @error Or ($)VDLLCALLTMP[0] = 0 Then
		SetError(2)
		Return False
	EndIf
	($)VDLLCALLTMP = DllCall("kernel32.dll", "long", "GlobalAlloc", "int", ($)GMEM_MOVEABLE, "int", ($)NGLOBMEMSIZE)
	If @error Or ($)VDLLCALLTMP[0] < 1 Then
		SetError(3)
		Return False
	EndIf
	($)HGLOBAL = ($)VDLLCALLTMP[0]
	($)VDLLCALLTMP = DllCall("kernel32.dll", "long", "GlobalLock", "long", ($)HGLOBAL)
	If @error Or ($)VDLLCALLTMP[0] < 1 Then
		SetError(4)
		Return False
	EndIf
	($)HLOCK = ($)VDLLCALLTMP[0]
	($)DROPFILES = DllStructCreate("dword;ptr;int;int;int;char[" & StringLen(($)SFILE) & "]", ($)HLOCK)
	If @error Then
		SetError(5)
		Return False
	EndIf
	DllStructSetData(($)DROPFILES, 1, DllStructGetSize(($)DROPFILES) - StringLen(($)SFILE))
	DllStructSetData(($)DROPFILES, 2, 0)
	DllStructSetData(($)DROPFILES, 3, 0)
	DllStructSetData(($)DROPFILES, 4, 0)
	DllStructSetData(($)DROPFILES, 5, 0)
	DllStructSetData(($)DROPFILES, 6, ($)SFILE)
	For ($)I = 1 To StringLen(($)SFILE)
		If DllStructGetData(($)DROPFILES, 6, ($)I) = Asc(($)SSEPERATOR) Then DllStructSetData(($)DROPFILES, 6, 0, ($)I)
	Next
	($)VDLLCALLTMP = DllCall("user32.dll", "long", "SetClipboardData", "int", ($)CF_HDROP, "long", ($)HGLOBAL)
	If @error Or ($)VDLLCALLTMP[0] < 1 Then
		SetError(6)
		($)DROPFILES = 0
		Return False
	EndIf
	($)VDLLCALLTMP = DllCall("user32.dll", "int", "CloseClipboard")
	If @error Or ($)VDLLCALLTMP[0] = 0 Then
		SetError(7)
		($)DROPFILES = 0
		Return False
	EndIf
	($)VDLLCALLTMP = DllCall("kernel32.dll", "int", "GlobalUnlock", "long", ($)HGLOBAL)
	If @error Then
		SetError(8)
		($)DROPFILES = 0
		Return False
	EndIf
	($)VDLLCALLTMP = DllCall("kernel32.dll", "int", "GetLastError")
	If ($)VDLLCALLTMP = 0 Then
		($)DROPFILES = 0
		SetError(8)
		Return False
	Else
		($)DROPFILES = 0
		Return True
	EndIf
EndFunc


Func _IIF(($)F_TEST, ($)V_TRUEVAL, ($)V_FALSEVAL)
	If ($)F_TEST Then
		Return ($)V_TRUEVAL
	Else
		Return ($)V_FALSEVAL
	EndIf
EndFunc


Func _MOUSETRAP(($)I_LEFT = 0, ($)I_TOP = 0, ($)I_RIGHT = 0, ($)I_BOTTOM = 0)
	Local ($)AV_RET
	If @NumParams == 0 Then
		($)AV_RET = DllCall("user32.dll", "int", "ClipCursor", "int", 0)
	Else
		If @NumParams == 2 Then
			($)I_RIGHT = ($)I_LEFT + 1
			($)I_BOTTOM = ($)I_TOP + 1
		EndIf
		Local ($)RECT = DllStructCreate("int;int;int;int")
		If @error Then Return 0
		DllStructSetData(($)RECT, 1, ($)I_LEFT)
		DllStructSetData(($)RECT, 2, ($)I_TOP)
		DllStructSetData(($)RECT, 3, ($)I_RIGHT)
		DllStructSetData(($)RECT, 4, ($)I_BOTTOM)
		($)AV_RET = DllCall("user32.dll", "int", "ClipCursor", "ptr", DllStructGetPtr(($)RECT))
	EndIf
	Return ($)AV_RET[0]
EndFunc


Func _SINGLETON(($)OCCURENCENAME, ($)FLAG = 0)
	Local ($)ERROR_ALREADY_EXISTS = 183
	($)OCCURENCENAME = StringReplace(($)OCCURENCENAME, "", "")
	Local ($)HANDLE = DllCall("kernel32.dll", "int", "CreateMutex", "int", 0, "long", 1, "str", ($)OCCURENCENAME)
	Local ($)LASTERROR = DllCall("kernel32.dll", "int", "GetLastError")
	If ($)LASTERROR[0] = ($)ERROR_ALREADY_EXISTS Then
		If ($)FLAG = 0 Then
			Exit -1
		Else
			SetError(($)LASTERROR[0])
			Return 0
		EndIf
	EndIf
	Return ($)HANDLE[0]
EndFunc


Func _ISPRESSED(($)S_HEXKEY, ($)V_DLL = "user32.dll")
	Local ($)A_R = DllCall(($)V_DLL, "int", "GetAsyncKeyState", "int", "0x" & ($)S_HEXKEY)
	If Not @error And BitAND(($)A_R[0], 32768) = 32768 Then Return 1
	Return 0
EndFunc


Func _SENDMESSAGE(($)H_HWND, ($)I_MSG, ($)WPARAM = 0, ($)LPARAM = 0, ($)I_R = 0, ($)S_T1 = "int", ($)S_T2 = "int")
	Local ($)A_RET = DllCall("user32.dll", "long", "SendMessage", "hwnd", ($)H_HWND, "int", ($)I_MSG, ($)S_T1, ($)WPARAM, ($)S_T2, ($)LPARAM)
	If @error Then Return SetError(@error, @extended, "")
	If ($)I_R >= 0 And ($)I_R <= 4 Then Return ($)A_RET[($)I_R]
	Return ($)A_RET
EndFunc


Func _ISCLASSNAME(($)H_HWND, ($)S_CLASSNAME)
	If Not IsHWnd(($)H_HWND) Then ($)H_HWND = GUICtrlGetHandle(($)H_HWND)
	Local ($)ARESULT = DllCall("user32.dll", "int", "GetClassNameA", "hwnd", ($)H_HWND, "str", "", "int", 256)
	If @error Then Return SetError(@error, @error, "")
	If IsArray(($)ARESULT) Then
		If StringUpper(StringMid(($)ARESULT[2], 1, StringLen(($)S_CLASSNAME))) = StringUpper(($)S_CLASSNAME) Then
			Return 1
		Else
			Return 0
		EndIf
	Else
		Return SetError(-1, -1, 0)
	EndIf
EndFunc


Func _VERSIONCOMPARE(($)SVERSION1, ($)SVERSION2)
	If ($)SVERSION1 = ($)SVERSION2 Then Return 0
	Local ($)SEP = "."
	If StringInStr(($)SVERSION1, ($)SEP) = 0 Then ($)SEP = ","
	Local ($)AVERSION1 = StringSplit(($)SVERSION1, ($)SEP)
	Local ($)AVERSION2 = StringSplit(($)SVERSION2, ($)SEP)
	If UBound(($)AVERSION1) <> UBound(($)AVERSION2) Or UBound(($)AVERSION1) = 0 Then
		SetExtended(1)
		If ($)SVERSION1 > ($)SVERSION2 Then
			Return 1
		ElseIf ($)SVERSION1 < ($)SVERSION2 Then
			Return -1
		EndIf
	Else
		For ($)I = 1 To UBound(($)AVERSION1) - 1
			If StringIsDigit(($)AVERSION1[($)I]) And StringIsDigit(($)AVERSION2[($)I]) Then
				If Number(($)AVERSION1[($)I]) > Number(($)AVERSION2[($)I]) Then
					Return 1
				ElseIf Number(($)AVERSION1[($)I]) < Number(($)AVERSION2[($)I]) Then
					Return -1
				EndIf
			Else
				SetExtended(1)
				If ($)AVERSION1[($)I] > ($)AVERSION2[($)I] Then
					Return 1
				ElseIf ($)AVERSION1[($)I] < ($)AVERSION2[($)I] Then
					Return -1
				EndIf
			EndIf
		Next
	EndIf
	SetError(2)
	Return 0
EndFunc

#region _Memory

Func _MEMORYOPEN(($)IV_PID, ($)IV_DESIREDACCESS = 2035711, ($)IV_INHERITHANDLE = 1)
	If Not ProcessExists(($)IV_PID) Then
		SetError(1)
		Return 0
	EndIf
	Local ($)AH_HANDLE[2] = [DllOpen("kernel32.dll")]
	If @error Then
		SetError(2)
		Return 0
	EndIf
	Local ($)AV_OPENPROCESS = DllCall(($)AH_HANDLE[0], "int", "OpenProcess", "int", ($)IV_DESIREDACCESS, "int", ($)IV_INHERITHANDLE, "int", ($)IV_PID)
	If @error Then
		DllClose(($)AH_HANDLE[0])
		SetError(3)
		Return 0
	EndIf
	($)AH_HANDLE[1] = ($)AV_OPENPROCESS[0]
	Return ($)AH_HANDLE
EndFunc


Func _MEMORYREAD(($)IV_ADDRESS, ($)AH_HANDLE, ($)SV_TYPE = "dword")
	If Not IsArray(($)AH_HANDLE) Then
		SetError(1)
		Return 0
	EndIf
	Local ($)V_BUFFER = DllStructCreate(($)SV_TYPE)
	If @error Then
		SetError(@error + 1)
		Return 0
	EndIf
	DllCall(($)AH_HANDLE[0], "int", "ReadProcessMemory", "int", ($)AH_HANDLE[1], "int", ($)IV_ADDRESS, "ptr", DllStructGetPtr(($)V_BUFFER), "int", DllStructGetSize(($)V_BUFFER), "int", "")
	If Not @error Then
		Local ($)V_VALUE = DllStructGetData(($)V_BUFFER, 1)
		Return ($)V_VALUE
	Else
		SetError(6)
		Return 0
	EndIf
EndFunc


Func _MEMORYWRITE(($)IV_ADDRESS, ($)AH_HANDLE, ($)V_DATA, ($)SV_TYPE = "dword")
	If Not IsArray(($)AH_HANDLE) Then
		SetError(1)
		Return 0
	EndIf
	Local ($)V_BUFFER = DllStructCreate(($)SV_TYPE)
	If @error Then
		SetError(@error + 1)
		Return 0
	Else
		DllStructSetData(($)V_BUFFER, 1, ($)V_DATA)
		If @error Then
			SetError(6)
			Return 0
		EndIf
	EndIf
	DllCall(($)AH_HANDLE[0], "int", "WriteProcessMemory", "int", ($)AH_HANDLE[1], "int", ($)IV_ADDRESS, "ptr", DllStructGetPtr(($)V_BUFFER), "int", DllStructGetSize(($)V_BUFFER), "int", "")
	If Not @error Then
		Return 1
	Else
		SetError(7)
		Return 0
	EndIf
EndFunc


Func _MEMORYCLOSE(($)AH_HANDLE)
	If Not IsArray(($)AH_HANDLE) Then
		SetError(1)
		Return 0
	EndIf
	DllCall(($)AH_HANDLE[0], "int", "CloseHandle", "int", ($)AH_HANDLE[1])
	If Not @error Then
		DllClose(($)AH_HANDLE[0])
		Return 1
	Else
		DllClose(($)AH_HANDLE[0])
		SetError(2)
		Return 0
	EndIf
EndFunc


Func SETPRIVILEGE(($)PRIVILEGE, ($)BENABLE)
	Const ($)TOKEN_ADJUST_PRIVILEGES = 32
	Const ($)TOKEN_QUERY = 8
	Const ($)SE_PRIVILEGE_ENABLED = 2
	Local ($)HTOKEN, ($)SP_AUXRET, ($)SP_RET, ($)HCURRPROCESS, ($)NTOKENS, ($)NTOKENINDEX, ($)PRIV
	($)NTOKENS = 1
	($)LUID = DllStructCreate("dword;int")
	If IsArray(($)PRIVILEGE) Then ($)NTOKENS = UBound(($)PRIVILEGE)
	($)TOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * ($)NTOKENS) & "]")
	($)NEWTOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * ($)NTOKENS) & "]")
	($)HCURRPROCESS = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")
	($)SP_AUXRET = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", ($)HCURRPROCESS[0], "int", BitOR(($)TOKEN_ADJUST_PRIVILEGES, ($)TOKEN_QUERY), "int_ptr", 0)
	If ($)SP_AUXRET[0] Then
		($)HTOKEN = ($)SP_AUXRET[3]
		DllStructSetData(($)TOKEN_PRIVILEGES, 1, 1)
		($)NTOKENINDEX = 1
		While ($)NTOKENINDEX <= ($)NTOKENS
			If IsArray(($)PRIVILEGE) Then
				($)PRIV = ($)PRIVILEGE[($)NTOKENINDEX - 1]
			Else
				($)PRIV = ($)PRIVILEGE
			EndIf
			($)RET = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", ($)PRIV, "ptr", DllStructGetPtr(($)LUID))
			If ($)RET[0] Then
				If ($)BENABLE Then
					DllStructSetData(($)TOKEN_PRIVILEGES, 2, ($)SE_PRIVILEGE_ENABLED, (3 * ($)NTOKENINDEX))
				Else
					DllStructSetData(($)TOKEN_PRIVILEGES, 2, 0, (3 * ($)NTOKENINDEX))
				EndIf
				DllStructSetData(($)TOKEN_PRIVILEGES, 2, DllStructGetData(($)LUID, 1), (3 * (($)NTOKENINDEX - 1)) + 1)
				DllStructSetData(($)TOKEN_PRIVILEGES, 2, DllStructGetData(($)LUID, 2), (3 * (($)NTOKENINDEX - 1)) + 2)
				DllStructSetData(($)LUID, 1, 0)
				DllStructSetData(($)LUID, 2, 0)
			EndIf
			($)NTOKENINDEX += 1
		WEnd
		($)RET = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", ($)HTOKEN, "int", 0, "ptr", DllStructGetPtr(($)TOKEN_PRIVILEGES), "int", DllStructGetSize(($)NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr(($)NEWTOKEN_PRIVILEGES), "int_ptr", 0)
		($)F = DllCall("kernel32.dll", "int", "GetLastError")
	EndIf
	($)NEWTOKEN_PRIVILEGES = 0
	($)TOKEN_PRIVILEGES = 0
	($)LUID = 0
	If ($)SP_AUXRET[0] = 0 Then Return 0
	($)SP_AUXRET = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", ($)HTOKEN)
	If Not ($)RET[0] And Not ($)SP_AUXRET[0] Then Return 0
	Return ($)RET[0]
EndFunc

#endregion _Memory

Replaced Characters:
$ to ($) - vBulletin doesn't allow this.

I uploaded it for the lazy nation .

Decompiled by inVincibLe~
Enjoy!
Attached Files
File Type: rar TServer1106b.rar (12.1 KB, 556 views)
InvincibleNoOB is offline  
Old 05/31/2008, 14:57   #2
 
InvincibleNoOB's Avatar
 
elite*gold: 20
Join Date: Mar 2007
Posts: 4,277
Received Thanks: 2,990
Before posting please read the FAQ
Q:What is this
A:Source code of an old crack,can be updated.

Q:Is it working
A:No.

Q:How to use the files
A:You need AutoIt 3
InvincibleNoOB is offline  
Old 05/31/2008, 15:37   #3
 
candyblade's Avatar
 
elite*gold: 0
Join Date: Mar 2006
Posts: 111
Received Thanks: 8
i hope someone will work on it
candyblade is offline  
Old 05/31/2008, 15:58   #4
 
Dark_Xero9's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 505
Received Thanks: 52
Quote:
Originally Posted by candyblade View Post
i hope someone will work on it

yea hopefully
Dark_Xero9 is offline  
Old 05/31/2008, 16:21   #5
 
ZotoM's Avatar
 
elite*gold: 0
Join Date: May 2007
Posts: 875
Received Thanks: 210
O_O invi you made a double-post
TRATOR ^^
ZotoM is offline  
Old 05/31/2008, 16:22   #6
 
wallfex's Avatar
 
elite*gold: 0
Join Date: Aug 2007
Posts: 230
Received Thanks: 157
just... WOW
wallfex is offline  
Old 05/31/2008, 16:28   #7
 
edwerd's Avatar
 
elite*gold: 0
Join Date: Apr 2007
Posts: 180
Received Thanks: 102
nice dude i hope some 1 crack it
edwerd is offline  
Old 05/31/2008, 20:31   #8
 
Cha0sBG's Avatar
 
elite*gold: 0
Join Date: Oct 2007
Posts: 347
Received Thanks: 228
well i coud try but currently i'm working on a project of mine learning c++ and studying for exams >.<
Cha0sBG is offline  
Old 05/31/2008, 20:43   #9
 
Hero2Freeze's Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 32
Received Thanks: 3
Oh yea it's the old Tbot crack xD
missin' this old days <3
Hero2Freeze is offline  
Old 06/01/2008, 01:38   #10
 
elite*gold: 0
Join Date: Feb 2008
Posts: 3
Received Thanks: 0

use this link to get the torrent MUST HAVE BITCOMMET OR BITTORRENT
slyfoxman is offline  
Old 06/01/2008, 03:03   #11
 
xMedeia's Avatar
 
elite*gold: 0
Join Date: Sep 2007
Posts: 2,336
Received Thanks: 386
I'll hit thanks for whoever cracks it ..

Anyway, Good luck to anyone who is trying to.. Hope we can get back to the old cracked Tbot again..
xMedeia is offline  
Old 06/01/2008, 04:41   #12
 
_Stryder_'s Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 208
Received Thanks: 17
what must you learn to be able to create cracks and stuff?
_Stryder_ is offline  
Old 06/01/2008, 15:52   #13
 
juffyt's Avatar
 
elite*gold: 0
Join Date: Feb 2008
Posts: 83
Received Thanks: 4
Quote:
Originally Posted by _Stryder_ View Post
what must you learn to be able to create cracks and stuff?
2 Words Vill Gates =)
juffyt is offline  
Old 06/01/2008, 16:51   #14
 
elite*gold: 0
Join Date: Mar 2007
Posts: 58
Received Thanks: 0
isn't the only thing you need the initial packets tthat are sent to tbot's server ?

aren't those packets encrypted with a time stamp nowadays?

in anyways at the moment tbot creators are struggling to get out tbot 0529 and tbot 0527 doesn't work or something!

it would be nice to be proved wrong and return to before last christmas when we all botted using tbot
LightField is offline  
Old 06/02/2008, 05:22   #15
 
elite*gold: 0
Join Date: Nov 2006
Posts: 35
Received Thanks: 0
Quote:
Originally Posted by LightField View Post
isn't the only thing you need the initial packets tthat are sent to tbot's server ?

aren't those packets encrypted with a time stamp nowadays?

in anyways at the moment tbot creators are struggling to get out tbot 0529 and tbot 0527 doesn't work or something!

it would be nice to be proved wrong and return to before last christmas when we all botted using tbot
i think that why we use loopback
miromirion is offline  
Reply


Similar Threads Similar Threads
[Request]Black&White Source or other source for version 5065 or 5095
04/11/2009 - CO2 Private Server - 22 Replies
I need Source Black and White or from other server i wanna Start a server.. All who help me will got Pm or Gm on my server.. ________
[Release]How To Make Tq Source Work + Working Source + Server ByBass + Commands
12/08/2008 - CO2 PServer Guides & Releases - 15 Replies
1: How To Make The Server Work In fact, before other people did not just let ACC now with hi EACC Columbia landing on the settlement of the issue, and the rest is our own how to improve the content of those interested can improve the next. MY MY set and the same. INI MAP INI files and MAP with the client-to-date coverage of the account. server.dat ! And then as long as the client will be able to modify server.dat! 127.0.0.1 192.168.0.1 192.168.1.1 IP。 Please do generally use...
T-BOT 1107 + Tserver 1106b
11/17/2007 - Silkroad Online - 1 Replies
Hello, I've been using T-BOT 1107 + Tserver 1106b. But i keep disconnecting and it sucks. I can't bot afk... wich i really need to do-.-' otherwise it's not botting anymore. Anyone knows if there is something new against the disconnecting? -thnx.:cool:



All times are GMT +1. The time now is 03:42.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.