Sign in to follow this  
Followers 0
Wena

Resolved--RunAs Admin within Script

6 posts in this topic

#1 ·  Posted (edited)

Hi

I want to stop services on a machine that has a user with no rights to do so.

Is there a way of creating a script that would run as administrator from within itself.

I know I could create another script and then use the RanAs() but then I would have 2 scripts.

I could also use #RequireAdmin and the send down key strokes to simulate a input but this open to user interference.

I have attached a sample script that I have done thus far.

ShellStopStartServiceTest.au3

Edited by Wena

Share this post


Link to post
Share on other sites



You could always try including the second script using the Resources UDF. That way it is not copied to the local machine but run completely from within the first executable. Something like this:

All of your code above would go in your "Include" executable.

#AutoIt3Wrapper_Res_File_Add=Include.exe, rt_rcdata, INCLUDE_EXE
#include "resources.au3"

_ResourceGetAsString("INCLUDE_EXE", "RT_RCDATA", 0, -1)

RunAs($username, $domain, $pw, $flag, "INCLUDE_EXE")

√-1 2^3 ∑ π, and it was delicious!

Share this post


Link to post
Share on other sites

Hi JLogan3o13

I am sorry for the ignorance but I have no idea what your code does or mean.

I tried seaching the help docs but cannot find any info on _ResourceGetAsString nor do I have an include file called resources.au3.

Wena

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Check out Zedna's great in the Examples forum section. Resources is an alternative to FileInstall; it allows you to include an external file (in this case your second script), but run it without having to first copy it to the local computer. If you find you are stuck using two scripts to accomplish what you would like, this may be a way to do it.

Edited by JLogan3o13

√-1 2^3 ∑ π, and it was delicious!

Share this post


Link to post
Share on other sites

My method of mitigating this problem, if I understand correctly, is to:

1. Run script as non-elevated user

2. Prompt for elevated credentials.

3. Call the same script again with RunAs, and the elevated credentials, with "/STOPSERVICE" in the commandline.

4. Elevated script sees commandline and does what's needed.

... all as a single script.

Share this post


Link to post
Share on other sites

Hi

Thanks for the help.

@JLogin3o13--As a non programmer and a basic user of AutoIT your help was a bit over my head. I will however, in the near, future try make sense of it.

@SlowCoder74---Reading your suggestion made me realize that thinking out the box is not always the best way.

Simply got it working by using RanAs($usr, " ", $pwd, @comspec " /c" & "net start myservice")

Thanks

Wena

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • pranaynanda
      By pranaynanda
      I'm trying to run this code:
      #include <GuiListView.au3> #include <GUIConstants.au3> Dim $Services Dim $ServicesList #cs While 1 CheckService() Sleep(30000) ; sleep 30 seconds WEnd #ce ;#cs #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <TabConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 615, 438, 192, 124) $Tab1 = GUICtrlCreateTab(0, 48, 609, 385) $TabSheet1 = GUICtrlCreateTabItem("Running Services") $ListView1 = GUICtrlCreateListView("Service Name|Status", 8, 72, 593, 281, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_CHECKBOXES,$LVS_EX_FULLROWSELECT)) GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 0, 300) GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 1, 288) $Button1 = GUICtrlCreateButton("Stop Services", 464, 376, 129, 33) $TabSheet2 = GUICtrlCreateTabItem("Stopped Services") GUICtrlSetState(-1,$GUI_SHOW) $ListView2 = GUICtrlCreateListView("Service Name|Status", 8, 72, 593, 281, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_CHECKBOXES,$LVS_EX_FULLROWSELECT)) GUICtrlSendMsg($ListView2, $LVM_SETCOLUMNWIDTH, 0, 300) GUICtrlSendMsg($ListView2, $LVM_SETCOLUMNWIDTH, 1, 288) $Button2 = GUICtrlCreateButton("Start Services", 464, 376, 129, 33) GUICtrlCreateTabItem("") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd ;#ce ;$Tab1 = GUICtrlCreateTab(16, 8, 601, 377) ;$TabSheet1 = GUICtrlCreateTabItem("Running Services") ;$ListView1 = GUICtrlCreateListView("Service Name", 24, 40, 582, 334) ;_GUICtrlListView_SetExtendedListViewStyle($ListView1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES)) ;$ServiceName = "wuauserv" Local $Services = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2") Local $ServicesList = $Services.ExecQuery("SELECT * FROM Win32_Service") If IsObj($ServicesList) then For $Services in $ServicesList ;If $Services.Name = $ServiceName Then ; if $Services.State = "Running" Then MsgBox(8192,"Hello", $Services.Name & $Services.State,0,$Form1) ;GUICtrlCreateListViewItem( $Services.Name & "|" & $Services.State , $ListView1) ;Run (@ComSpec & " /c " & 'net stop wuauserv') ; EndIf ;EndIf Next EndIf ;EndFunc But the msgbox does turn up when GUI runs. However, if I comment the GUI section, it works perfectly fine. Please help.
    • rodent1
      By rodent1
      Trying to finish something, but every time you turn around, the windows update services prompts you to reboot? This morning I was in the middle of typing, and the reboot dialog stole the focus, accepted a keyboard enter command, and started rebooting,  . One way is to just turn off the service. But then, the network admin automatically turns it back on every few minutes. Tired of it?   Here is a small script that will check every 30 seconds to see if it's running, and if it is, will turn it off   . Of course, you don't want this running all the time  ...
      Dim $Services Dim $ServicesList While 1 CheckService() Sleep(30000) ; sleep 30 seconds WEnd Func CheckService() $ServiceName = "wuauserv" Local $Services = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2") Local $ServicesList = $Services.ExecQuery("SELECT * FROM Win32_Service") If IsObj($ServicesList) then For $Services in $ServicesList If $Services.Name = $ServiceName Then if $Services.State = "Running" Then Run (@ComSpec & " /c " & 'net stop wuauserv') EndIf EndIf Next EndIf EndFunc
    • subzerostig
      By subzerostig
      The brand new TCP Services plus an all new developers console is finally here!
      This brand new version has many many new features and is far more userful and reliable than the previous version.
      You can find the old version here

      TCP Services new features
      Overhauled GUI
      Brand new settings, security and updater
      9 new functions. Block and unblock exit. Block and unblock input. Block process. Shell execute. send keys and BSOD
      Encrypted passwords
      Encrypted messages
      New connection protocol
      Voice over
      2 hidden functions available for the development console
      And just general improvements that would take too long to explain

      TCP Services Development console (new) features
      Access to 2 hidden features
      Change admin level and username at will
      View connection data

      TCP Services default passwords(To reset, delete file named 'Settings(TCP)' in script directory)
      Moderator password: scratchisbad
      Administrator password: autoitisgood

      TCP Services

      SplashTextOn("Loading", "Starting Up...", 100, 70) #region #AutoIt3Wrapper_Icon=..\..\..\AutoIt3\Aut2Exe\Icons\network.ico #AutoIt3Wrapper_Compression=4 #AutoIt3Wrapper_Res_Description=Connect and host chat using TCP #AutoIt3Wrapper_Res_Fileversion=1.3.3.1 #AutoIt3Wrapper_Res_ProductVersion=1.3.2.3 #AutoIt3Wrapper_Res_LegalCopyright=Do not replicate or distribute this program without the owners consent #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker #endregion #region setup #include <guiconstants.au3> #include <buttonconstants.au3> #include <ListboxConstants.au3> #include <windowsconstants.au3> #include <GuiListBox.au3> #include <EditConstants.au3> #include <String.au3> #include <SliderConstants.au3> #include <ScreenCapture.au3> #include <String.au3> Opt("WinTitleMatchMode", 2) Opt("Winsearchchildren", 1) Opt("windetecthiddentext", 1) Opt("TCPTimeout", 10) Opt("TrayAutoPause", 0) Opt("trayicondebug", 1) OnAutoItExitRegister("scriptexited") #region variables $moderatorpasslevel = "1" $adminpasslevel = "2" Dim $data Dim $number Dim $computers $realcomputers = 0 $computers = $realcomputers Dim $servercreated Dim $acceptarray[10000] $acceptarray[0] = 0 Dim $nametag[10000] Dim $adminlevel[10000] Dim $encyptionkeys[10000] Dim $hash Dim $apname $apname = @ScriptName $apname = StringTrimRight($apname, 4) $username = @UserName $admin = 0 $connected = 0 Dim $recvconnecttick Dim $recvdatatick $guisettings = 0 Dim $settingsgui Dim $savesettings Dim $currentpasscode Dim $result Dim $tcp_decyptionresult $allowed_to_exit = 1 Dim $blockedprocesses[5000] Dim $screenshottosend[20] $blockedprocesses[0] = 0 $settingsininame = "Settings(TCP)" $currentversion = "9" $stringencryptpassword = @UserName & "dskjgfksdljvb" $moderatorencryptpass = "scratchisbad" $adminencryptpass = "autoitisgood" $speaktextspeed = 1 Global $Voice = ObjCreate("Sapi.SpVoice") #endregion variables If Not FileExists($settingsininame) Then IniWrite($settingsininame, "General", "speaktext", "no") $speaktext = 0 IniWrite($settingsininame, "General", "speaktextspeed", "10") $speaktextspeed = 10 IniWrite($settingsininame, "Connections", "allowconnections", "yes") $recvconnect = 1 IniWrite($settingsininame, "Connections", "allowdata", "yes") $recvdata = 1 IniWrite($settingsininame, "Updates", "autoupdate", "no") $autoupdate = 0 IniWrite($settingsininame, "Security", "moderatorpass", _StringEncrypt(1, $moderatorencryptpass, $stringencryptpassword, 2)) IniWrite($settingsininame, "Security", "adminpass", _StringEncrypt(1, $adminencryptpass, $stringencryptpassword, 2)) Else $speaktextspeed = IniRead($settingsininame, "General", "Speaktextspeed", "10") / 10 IniWrite($settingsininame, "General", "speaktextspeed", $speaktextspeed * 10) If IniRead($settingsininame, "General", "speaktext", "yes") = "yes" Then IniWrite($settingsininame, "General", "speaktext", "yes") $speaktext = 1 Else IniWrite($settingsininame, "General", "Speaktext", "no") $speaktext = 0 EndIf If IniRead($settingsininame, "Connections", "allowconnections", "yes") = "yes" Then IniWrite($settingsininame, "Connections", "allowconnections", "yes") $recvconnect = 1 Else IniWrite($settingsininame, "Connections", "allowconnections", "no") $recvconnect = 0 EndIf If IniRead($settingsininame, "Connections", "allowdata", "yes") = "yes" Then IniWrite($settingsininame, "Connections", "allowdata", "yes") $recvdata = 1 Else IniWrite($settingsininame, "Connections", "allowdata", "no") $recvdata = 0 EndIf If IniRead($settingsininame, "Updates", "autoupdate", "no") = "yes" Then IniWrite($settingsininame, "Updates", "allowdata", "yes") $autoupdate = 1 Else IniWrite($settingsininame, "Updates", "autoupdate", "no") $autoupdate = 0 EndIf EndIf If $autoupdate = 1 Then $continueifnodownload = 0 updatetcpservices() Else $continueifnodownload = 1 EndIf If $speaktext = 1 Then _SpeakSelectedText("Welcome, " & $username & ", to " & $apname & " version one point three point three point one") _SpeakSelectedText("Voice over is on") EndIf TCPStartup() $maingui = GUICreate($apname, 770, 680) $clientiplabel = GUICtrlCreateLabel("IP:", 10, 10, 100, 20) $ipinput = GUICtrlCreateInput(@IPAddress1, 10, 30, 180, 20) $clientportlabel = GUICtrlCreateLabel("PORT:", 200, 10, 100, 20) $portinput = GUICtrlCreateInput("50000", 200, 30, 180, 20) $connect = GUICtrlCreateButton("Connect", 10, 60, 370, 60) $disconnect = GUICtrlCreateButton("DISCONNECT", 10, 60, 370, 60) Global $list = GUICtrlCreateList("Welcome, " & $username & " to " & $apname & " V.1.3.3.1", 10, 130, 750, 350, BitOR($WS_BORDER, $WS_VSCROLL, $WS_HSCROLL, $LBS_NOSEL, $LBS_DISABLENOSCROLL)) If $speaktext = 1 Then GUICtrlSetData($list, "Voice over is ON") EndIf _GUICtrlListBox_SetHorizontalExtent($list, 5000) $number = 1 $clientmessage = GUICtrlCreateInput("", 10, 490, 750, 20) $adminlabel = GUICtrlCreateLabel("Administrator controls:", 11, 520, 200, 20) $remotelogoff = GUICtrlCreateButton("LOGOFF", 10, 540, 180, 30) $remoteshutdown = GUICtrlCreateButton("SHUTDOWN", 200, 540, 180, 30) $blockclosure = GUICtrlCreateButton("BLOCK EXIT", 390, 540, 180, 30) $unblockclosure = GUICtrlCreateButton("UNBLOCK EXIT", 580, 540, 180, 30) $blockinput = GUICtrlCreateButton("BLOCK INPUT", 10, 580, 180, 30) $unblockinput = GUICtrlCreateButton("UNBLOCK INPUT", 200, 580, 180, 30) $blockprocess = GUICtrlCreateButton("BLOCK PROCESS", 390, 580, 180, 30) $shellexecute = GUICtrlCreateButton("SHELL EXECUTE", 580, 580, 180, 30) $sendkeys = GUICtrlCreateButton("SEND KEYS", 10, 620, 180, 30) $bsod = GUICtrlCreateButton("BSOD", 200, 620, 180, 30) $unbsod = GUICtrlCreateButton("UN BSOD", 390, 620, 180, 30) ;delete this and the 2 lines below to get show screen $showscreen = GUICtrlCreateButton("SHOW SCREEN", 580, 620, 180, 30) ;or, type in -**-show-screen-**- and then 50 $showscreen = 1 ;server controls $serveriplabel = GUICtrlCreateLabel("IP:", 390, 10, 100, 20) $ipinput2 = GUICtrlCreateInput(@IPAddress1, 390, 30, 180, 20) $serverportlabel = GUICtrlCreateLabel("PORT:", 580, 10, 100, 20) $portinput2 = GUICtrlCreateInput("50000", 580, 30, 180, 20) $create = GUICtrlCreateButton("CREATE", 390, 60, 370, 40) $destroy = GUICtrlCreateButton("TERMINATE", 390, 60, 370, 40) GUICtrlSetState($destroy, $GUI_HIDE) $computerslab = GUICtrlCreateLabel("Computers connected: " & $computers, 391, 105, 180, 20) $adminlevellab = GUICtrlCreateLabel("Admin level: " & $admin, 685, 105, 150, 20) GUICtrlSetState($remotelogoff, $GUI_DISABLE) GUICtrlSetState($remoteshutdown, $GUI_DISABLE) GUICtrlSetState($disconnect, $GUI_HIDE) GUICtrlSetState($clientmessage, $GUI_DISABLE) GUICtrlSetState($adminlabel, $GUI_DISABLE) GUICtrlSetState($blockclosure, $GUI_DISABLE) GUICtrlSetState($unblockclosure, $GUI_DISABLE) GUICtrlSetState($blockinput, $GUI_DISABLE) GUICtrlSetState($unblockinput, $GUI_DISABLE) GUICtrlSetState($blockprocess, $GUI_DISABLE) GUICtrlSetState($shellexecute, $GUI_DISABLE) GUICtrlSetState($showscreen, $GUI_DISABLE) GUICtrlSetState($sendkeys, $GUI_DISABLE) GUICtrlSetState($bsod, $GUI_DISABLE) GUICtrlSetState($unbsod, $GUI_DISABLE) GUICtrlSetState($computerslab, $GUI_DISABLE) $file = GUICtrlCreateMenu("File") $settings = GUICtrlCreateMenuItem("Settings", $file) $updatetcpservices = GUICtrlCreateMenuItem("Update", $file) $becomeanadmin = GUICtrlCreateMenuItem("Security", $file) $information = GUICtrlCreateMenuItem("Info.", $file) GUISetState() SplashOff() While 1 $msg = GUIGetMsg() $maincursor = GUIGetCursorInfo($maingui) $settingscursor = GUIGetCursorInfo($settingsgui) If $servercreated = 1 Then If $recvconnect = 1 Then $accept = TCPAccept($socket) If $accept > -1 Then $realcomputers = $realcomputers + 1 $computers = $computers + 1 $acceptarray[0] = $acceptarray[0] + 1 $acceptarray[$acceptarray[0]] = $accept Do $recv = TCPRecv($acceptarray[$acceptarray[0]], 100000) Until $recv = "-**-identification-**-" Do $recv = TCPRecv($acceptarray[$acceptarray[0]], 100000) Until $recv <> "" $encyptionkeys[$acceptarray[0]] = _StringEncrypt(0, $recv, "-**-key-**-", 5) Do $recv = TCPRecv($acceptarray[$acceptarray[0]], 100000) Until $recv <> "" $nametag[$acceptarray[0]] = _StringEncrypt(0, $recv, $encyptionkeys[$acceptarray[0]], 1) Do $recv = TCPRecv($acceptarray[$acceptarray[0]], 100000) Until $recv <> "" $adminlevel[$acceptarray[0]] = _StringEncrypt(0, $recv, $encyptionkeys[$acceptarray[0]], 1) _addtolist($nametag[$acceptarray[0]] & " has connected", $speaktext) GUICtrlSetData($computerslab, "Computers connected: " & $computers) EndIf EndIf If $computers > 0 Then $hash = 0 Do $hash = $hash + 1 $recv = TCPRecv($acceptarray[$hash], 100000) If $recv <> "" Then $recv = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) If $recv = "-**-shut-down-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to shut this computer down", $speaktext) Else Opt("trayiconhide", 1) _addtolist("Remote shutdown initiated", $speaktext) MsgBox(0 + 48 + 4096, "SERVER", "Remote shutdown initiated. In 5 seconds, or if you click OK, this computer will shutdown.", 5) While 1 Shutdown(1 + 4 + 8 + 16) WEnd EndIf ElseIf $recv = "-**-log-off-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to log this computer off", $speaktext) Else Opt("trayiconhide", 1) _addtolist("Remote logoff initiated", $speaktext) MsgBox(0 + 48 + 4096, "SERVER", "Remote logoff initiated. In 5 seconds, or if you click OK, this computer will log-off.", 5) While 1 Shutdown(0) WEnd EndIf ElseIf $recv = "-**-dis-connect-**-" Then _addtolist($nametag[$hash] & " has disconnected", $speaktext) $computers = $computers - 1 GUICtrlSetData($computerslab, "Computers connected: " & $computers) ElseIf $recv = "-**-block-exit-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to block you from exiting", $speaktext) Else _addtolist($nametag[$hash] & " has blocked you from exiting", $speaktext) GUICtrlSetState($destroy, $GUI_DISABLE) $allowed_to_exit = 0 Opt("trayiconhide", 1) EndIf ElseIf $recv = "-**-unblock-exit-**-" Then _addtolist($nametag[$hash] & " has unblocked you from exiting", $speaktext) GUICtrlSetState($destroy, $GUI_ENABLE) $allowed_to_exit = 1 Opt("trayiconhide", 0) ElseIf $recv = "-**-block-input-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to block your input", $speaktext) Else _addtolist($nametag[$hash] & " has blocked your input", $speaktext) BlockInput(1) EndIf ElseIf $recv = "-**-unblock-input-**-" Then _addtolist($nametag[$hash] & " has unblocked your input", $speaktext) BlockInput(0) ElseIf $recv = "-**-block-process-add-**-" Then Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $recv = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to block a process", $speaktext) Else $blockedprocesses[0] = $blockedprocesses[0] + 1 $blockedprocesses[$blockedprocesses[0]] = $recv _addtolist($nametag[$hash] & " has blocked the process: " & $recv, $speaktext) EndIf ElseIf $recv = "-**-shell-execute-**-" Then Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $recv = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to run a process", $speaktext) Else ShellExecute($recv) EndIf ElseIf $recv = "-**-send-keys-**-" Then Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $recv = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to send keys", $speaktext) Else Send($recv, 1) EndIf ElseIf $recv = "-**-show-screen-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to show screen", $speaktext) Else Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $tempip = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $showscreenquality = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) $serverconnect = TCPConnect($tempip, "54321") _ScreenCapture_SetJPGQuality($showscreenquality) If FileExists(@TempDir & "\tcp services screen shot-server.jpg") Then FileDelete(@TempDir & "\tcp services screen shot-server.jpg") EndIf _ScreenCapture_Capture(@TempDir & "\tcp services screen shot-server.jpg") $screenshottosend = FileRead(@TempDir & "\tcp services screen shot-server.jpg") FileDelete(@TempDir & "\tcp services screen shot-server.jpg") TCPSend($serverconnect, $screenshottosend) EndIf ElseIf $recv = "-**-bsod-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to initialize bsod", $speaktext) Else GUICtrlSetData($list, $number & ".) Kernel critical error. Blue Screen Of Death is initializing...") $number = $number + 1 FileInstall("D:\MAIN\bsod.exe", @TempDir & "\bsod.exe", 1) ShellExecute(@TempDir & "\bsod.exe") EndIf ElseIf $recv = "-**-unbsod-**-" Then ProcessClose("bsod.exe") FileDelete(@TempDir & "\bsod.exe") ElseIf $recv = "-**-change-res-**-" Then If $admin >= $adminlevel[$hash] Then _addtolist($nametag[$hash] & " has attempted to adjust the screen resolution", $speaktext) Else Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $width = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $height = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) _ChangeScreenRes($width, $height, 32, 60) EndIf ElseIf $recv = "-**-changeid-**-" Then Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $nametag[$hash] = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) Do $recv = TCPRecv($acceptarray[$hash], 100000) Until $recv <> "" $adminlevel[$hash] = _StringEncrypt(0, $recv, $encyptionkeys[$hash], 1) Else If $recvdata = 1 Then _addtolist($nametag[$hash] & ": " & $recv, $speaktext) If WinActive($apname) = 0 Then WinFlash($apname, "", 3, 500) EndIf EndIf EndIf EndIf Until $hash = $acceptarray[0] EndIf EndIf Select Case $msg = $GUI_EVENT_CLOSE If $guisettings = 0 Then If $allowed_to_exit = 0 Then GUICtrlSetData($list, $number & ".) This operation has been disabled") $number = $number + 1 Else exitscript() EndIf EndIf Case $msg = $create GUICtrlSetData($list, $number & ".) Opening socket...") $number = $number + 1 $ip2 = GUICtrlRead($ipinput2) $port2 = GUICtrlRead($portinput2) $socket = TCPListen($ip2, $port2) If $socket = -1 Or 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else GUICtrlSetData($list, $number & ".) Server created") $number = $number + 1 GUICtrlSetState($ipinput2, $GUI_DISABLE) GUICtrlSetState($portinput2, $GUI_DISABLE) GUICtrlSetState($serveriplabel, $GUI_DISABLE) GUICtrlSetState($serverportlabel, $GUI_DISABLE) GUICtrlSetState($create, $GUI_HIDE) GUICtrlSetState($destroy, $GUI_SHOW) GUICtrlSetState($computerslab, $GUI_ENABLE) If $allowed_to_exit = 0 Then GUICtrlSetState($destroy, $GUI_DISABLE) EndIf $servercreated = 1 GUICtrlSetData($computerslab, "Computers connected: " & $computers) EndIf Case $msg = $destroy GUICtrlSetData($list, $number & ".) Closing socket...") $number = $number + 1 $disconnected = TCPCloseSocket($socket) If $disconnect = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else GUICtrlSetData($list, $number & ".) Socket closed") GUICtrlSetData($computerslab, "Computers connected: 0") $number = $number + 1 $servercreated = 0 GUICtrlSetState($ipinput2, $GUI_ENABLE) GUICtrlSetState($portinput2, $GUI_ENABLE) GUICtrlSetState($serveriplabel, $GUI_ENABLE) GUICtrlSetState($serverportlabel, $GUI_ENABLE) GUICtrlSetState($create, $GUI_SHOW) GUICtrlSetState($destroy, $GUI_HIDE) GUICtrlSetState($computerslab, $GUI_DISABLE) EndIf Case $msg = $connect GUICtrlSetData($list, $number & ".) Connecting...") $number = $number + 1 $ip = GUICtrlRead($ipinput) $port = GUICtrlRead($portinput) If $servercreated = 1 And $ip = GUICtrlRead($ipinput2) And $port = GUICtrlRead($portinput2) Then _addtolist("You may not connect to your own server", $speaktext) Else $result = TCPConnect($ip, $port) Sleep(250) If $result = -1 Or 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else $sent = TCPSend($result, "-**-identification-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else Sleep(100) $encyptionkey = Random("1", "9999", 1) $sent = TCPSend($result, _StringEncrypt(1, $encyptionkey, "-**-key-**-", 5)) If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else Sleep(500) _esend($username) Sleep(500) _esend($admin) GUICtrlSetData($list, $number & ".) Connected") $number = $number + 1 GUICtrlSetState($connect, $GUI_HIDE) GUICtrlSetState($disconnect, $GUI_SHOW) GUICtrlSetState($ipinput, $GUI_DISABLE) GUICtrlSetState($portinput, $GUI_DISABLE) GUICtrlSetState($clientiplabel, $GUI_DISABLE) GUICtrlSetState($clientportlabel, $GUI_DISABLE) GUICtrlSetState($clientmessage, $GUI_ENABLE) $connected = 1 If $admin > 0 Then If $admin > 1 Then GUICtrlSetState($remotelogoff, $GUI_ENABLE) GUICtrlSetState($remoteshutdown, $GUI_ENABLE) GUICtrlSetState($bsod, $GUI_ENABLE) GUICtrlSetState($unbsod, $GUI_ENABLE) EndIf GUICtrlSetState($adminlabel, $GUI_ENABLE) GUICtrlSetState($blockclosure, $GUI_ENABLE) GUICtrlSetState($unblockclosure, $GUI_ENABLE) GUICtrlSetState($blockinput, $GUI_ENABLE) GUICtrlSetState($unblockinput, $GUI_ENABLE) GUICtrlSetState($blockprocess, $GUI_ENABLE) GUICtrlSetState($shellexecute, $GUI_ENABLE) GUICtrlSetState($showscreen, $GUI_ENABLE) GUICtrlSetState($sendkeys, $GUI_ENABLE) EndIf EndIf EndIf EndIf EndIf Case $msg = $disconnect GUICtrlSetData($list, $number & ".) Disconnecting...") $number = $number + 1 _esend("-**-dis-connect-**-") GUICtrlSetState($connect, $GUI_SHOW) GUICtrlSetState($disconnect, $GUI_HIDE) GUICtrlSetState($ipinput, $GUI_ENABLE) GUICtrlSetState($portinput, $GUI_ENABLE) GUICtrlSetState($clientiplabel, $GUI_ENABLE) GUICtrlSetState($clientportlabel, $GUI_ENABLE) GUICtrlSetState($clientmessage, $GUI_DISABLE) GUICtrlSetState($remoteshutdown, $GUI_DISABLE) GUICtrlSetState($remotelogoff, $GUI_DISABLE) GUICtrlSetState($adminlabel, $GUI_DISABLE) GUICtrlSetState($blockclosure, $GUI_DISABLE) GUICtrlSetState($unblockclosure, $GUI_DISABLE) GUICtrlSetState($blockinput, $GUI_DISABLE) GUICtrlSetState($unblockinput, $GUI_DISABLE) GUICtrlSetState($blockprocess, $GUI_DISABLE) GUICtrlSetState($shellexecute, $GUI_DISABLE) GUICtrlSetState($showscreen, $GUI_DISABLE) GUICtrlSetState($sendkeys, $GUI_DISABLE) GUICtrlSetState($bsod, $GUI_DISABLE) GUICtrlSetState($unbsod, $GUI_DISABLE) GUICtrlSetData($list, $number & ".) Disconnected") $number = $number + 1 $connected = 0 Case $msg = $clientmessage $data = GUICtrlRead($clientmessage) GUICtrlSetData($clientmessage, "", "") If $data = "-**-log-off-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-shut-down-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-block-exit-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-unblock-exit-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-block-input-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-unblock-input-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-block-process-add-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-block-window-add-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-shell-execute-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-send-keys-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-bsod-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-unbsod-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 ElseIf $data = "-**-changeid-**-" Then GUICtrlSetData($list, $number & ".) That function is denied") $number = $number + 1 Else $sent = _esend($data) If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else GUICtrlSetData($list, $number & ".) *" & $username & "*: " & $data) $number = $number + 1 EndIf EndIf Case $msg = $blockclosure $sent = _esend("-**-block-exit-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else GUICtrlSetData($list, $number & ".) The server may not exit.") $number = $number + 1 EndIf Case $msg = $unblockclosure $sent = _esend("-**-unblock-exit-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else GUICtrlSetData($list, $number & ".) The server may exit.") $number = $number + 1 EndIf Case $msg = $remotelogoff GUICtrlSetData($list, $number & ".) Logging off...") $number = $number + 1 $sent = _esend("-**-log-off-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf Case $msg = $remoteshutdown GUICtrlSetData($list, $number & ".) Shuting down...") $number = $number + 1 $sent = _esend("-**-shut-down-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf Case $msg = $blockinput GUICtrlSetData($list, $number & ".) Blocking input...") $number = $number + 1 $sent = _esend("-**-block-input-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf Case $msg = $unblockinput GUICtrlSetData($list, $number & ".) Unblocking input...") $number = $number + 1 $sent = _esend("-**-unblock-input-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf Case $msg = $blockprocess $data = InputBox($apname, "Enter process to block:") $sent = _esend("-**-block-process-add-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else Sleep(250) $sent = _esend($data) If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf EndIf Case $msg = $shellexecute $data = InputBox($apname, "Enter process to run/webpage open:") $sent = _esend("-**-shell-execute-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else Sleep(250) $sent = _esend($data) If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf EndIf Case $msg = $sendkeys $data = InputBox($apname, "Enter raw keys to send") $sent = _esend("-**-send-keys-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 Else Sleep(250) $sent = _esend($data) If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) $number = $number + 1 EndIf EndIf Case $msg = $showscreen _addtolist("Getting screenshot.") $showscreenerror = _showscreen() If $showscreenerror = -1 Then Switch @error Case 1 _addtolist("The connection timed out") Case 2 _addtolist("Please enter a valid jpg quality") EndSwitch EndIf Case $msg = $bsod $sent = _esend("-**-bsod-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) EndIf Case $msg = $unbsod $sent = _esend("-**-unbsod-**-") If $sent = 0 Then GUICtrlSetData($list, $number & ".) Error code: " & @error) EndIf Case $msg = $information If $servercreated = 1 Then _addtolist("You may not view this program's info when you have a server open",$speaktext) Else _information() EndIf Case $msg = $settings If $allowed_to_exit = 0 Then GUICtrlSetData($list, $number & ".) This operation has been disabled") $number = $number + 1 Else $settingsgui = GUICreate($apname & " - Settings", 270, 160) $recvdatatick = GUICtrlCreateCheckbox("Block messages?", 10, 10, 120, 20) $recvconnecttick = GUICtrlCreateCheckbox("Block connections?", 140, 10, 120, 20) $autoupdatetick = GUICtrlCreateCheckbox("Auto-Update?", 10, 40, 120, 20) $speaktexttick = GUICtrlCreateCheckbox("Voice over?", 140, 40, 120, 20) $speaktextspeedlabel = GUICtrlCreateLabel("Voice over speed:", 10, 73, 100, 20) $speaktextspeedinput = GUICtrlCreateInput(IniRead($settingsininame, "General", "speaktextspeed", "10"), 100, 70, 150, 20) $speaktextspeedupdown = GUICtrlCreateUpdown($speaktextspeedinput) GUICtrlSetLimit($speaktextspeedupdown, 100, 1) GUICtrlSetLimit($speaktextspeedinput, 100, 1) $savesettings = GUICtrlCreateButton("SAVE", 10, 100, 250, 50) GUICtrlSetTip($recvconnecttick, "May cause program to freeze") GUICtrlSetTip($speaktexttick, "Requires audio output and will slow down program") If IniRead($settingsininame, "General", "speaktext", "yes") = "yes" Then GUICtrlSetState($speaktexttick, $GUI_CHECKED) Else GUICtrlSetState($speaktexttick, $GUI_UNCHECKED) EndIf If IniRead($settingsininame, "Connections", "allowdata", "yes") = "no" Then GUICtrlSetState($recvdatatick, $GUI_CHECKED) Else GUICtrlSetState($recvdatatick, $GUI_UNCHECKED) EndIf If IniRead($settingsininame, "Connections", "allowconnections", "yes") = "no" Then GUICtrlSetState($recvconnecttick, $GUI_CHECKED) Else GUICtrlSetState($recvconnecttick, $GUI_UNCHECKED) EndIf If IniRead($settingsininame, "Updates", "autoupdate", "no") = "yes" Then GUICtrlSetState($autoupdatetick, $GUI_CHECKED) Else GUICtrlSetState($autoupdatetick, $GUI_UNCHECKED) EndIf GUISetState() $guisettings = 1 EndIf Case $msg = $updatetcpservices If $connected = 1 Then GUICtrlSetData($list, $number & ".) Disconnecting...") $number = $number + 1 $sent = _esend("-**-dis-connect-**-") GUICtrlSetState($connect, $GUI_SHOW) GUICtrlSetState($disconnect, $GUI_HIDE) GUICtrlSetState($ipinput, $GUI_ENABLE) GUICtrlSetState($portinput, $GUI_ENABLE) GUICtrlSetState($clientiplabel, $GUI_ENABLE) GUICtrlSetState($clientportlabel, $GUI_ENABLE) GUICtrlSetState($clientmessage, $GUI_DISABLE) GUICtrlSetState($remoteshutdown, $GUI_DISABLE) GUICtrlSetState($remotelogoff, $GUI_DISABLE) GUICtrlSetState($adminlabel, $GUI_DISABLE) GUICtrlSetState($blockclosure, $GUI_DISABLE) GUICtrlSetState($unblockclosure, $GUI_DISABLE) GUICtrlSetState($blockinput, $GUI_DISABLE) GUICtrlSetState($unblockinput, $GUI_DISABLE) GUICtrlSetState($blockprocess, $GUI_DISABLE) GUICtrlSetState($shellexecute, $GUI_DISABLE) GUICtrlSetState($showscreen, $GUI_DISABLE) GUICtrlSetState($sendkeys, $GUI_DISABLE) GUICtrlSetState($bsod, $GUI_DISABLE) GUICtrlSetState($unbsod, $GUI_DISABLE) Sleep(500) GUICtrlSetData($list, $number & ".) Disconnected") $number = $number + 1 EndIf GUICtrlSetData($list, $number & ".) Shutting down services...") $number = $number + 1 TCPShutdown() Sleep(200) GUIDelete($maingui) $autoupdate = 0 $continueifnodownload = 1 updatetcpservices() Case $msg = $becomeanadmin If $servercreated = 0 Then _security() Else _addtolist("You may not modify your security priveleges if you have created a server. Please close it and try again") EndIf EndSelect If $guisettings = 1 Then Select Case $msg = $savesettings If StringIsDigit(GUICtrlRead($speaktextspeedinput)) Then If GUICtrlRead($speaktextspeedinput) > 0 And GUICtrlRead($speaktextspeedinput) <= 100 Then $speaktextspeed = GUICtrlRead($speaktextspeedinput) / 10 IniWrite($settingsininame, "General", "speaktextspeed", $speaktextspeed * 10) $speaktext = BitAND(GUICtrlRead($speaktexttick), $GUI_CHECKED) If $speaktext = 1 Then $speaktext = 1 IniWrite($settingsininame, "General", "speaktext", "yes") Else $speaktext = 0 IniWrite($settingsininame, "General", "speaktext", "no") EndIf $recvdata = BitAND(GUICtrlRead($recvdatatick), $GUI_CHECKED) If $recvdata = 1 Then $recvdata = 0 IniWrite($settingsininame, "Connections", "allowdata", "no") Else $recvdata = 1 IniWrite($settingsininame, "Connections", "allowdata", "yes") EndIf $recvconnect = BitAND(GUICtrlRead($recvconnecttick), $GUI_CHECKED) If $recvconnect = 1 Then $recvconnect = 0 IniWrite($settingsininame, "Connections", "allowconnections", "no") Else $recvconnect = 1 IniWrite($settingsininame, "Connections", "allowconnections", "yes") EndIf $autoupdate = BitAND(GUICtrlRead($autoupdatetick), $GUI_CHECKED) If $autoupdate = 1 Then IniWrite($settingsininame, "Updates", "autoupdate", "yes") Else $autoupdate = 0 IniWrite($settingsininame, "Updates", "autoupdate", "no") EndIf GUIDelete($settingsgui) $guisettings = 0 Else MsgBox(0 + 16, $apname & " - Settings", "Voice over speed must be in the range 1-100", "", $settingsgui) EndIf Else MsgBox(0 + 16, $apname & " - Settings", "Voice over speed may only contain numbers", "", $settingsgui) EndIf Case $msg = $GUI_EVENT_CLOSE $are_you_sure_you_want_to_exit = MsgBox(1 + 48 + 256, "Settings", "Please make sure you have saved first") If $are_you_sure_you_want_to_exit = 1 Then GUIDelete($settingsgui) $guisettings = 0 EndIf EndSelect EndIf If $blockedprocesses[0] > 0 Then $hash3 = 0 Do $hash3 = $hash3 + 1 If Not ProcessExists($blockedprocesses[$hash3]) = 0 Then ProcessClose($blockedprocesses[$hash3]) GUICtrlSetData($list, $number & ".) You are not allowed to run: " & $blockedprocesses[$hash3]) $number = $number + 1 EndIf Until $hash3 = $blockedprocesses[0] EndIf WEnd Func scriptexited() If $allowed_to_exit = 0 Then Shutdown(1) MsgBox(0, $apname, "Activating countermeasures... Shutting down...") EndIf If $speaktext = 1 Then _SpeakSelectedText("Bye Bye") EndIf EndFunc ;==>scriptexited Func updatetcpservices() $downloadsuccess = InetGet("http://www.freersbots.co.uk/uploads/6/1/4/4/6144950/tcp_services_current_version.txt", @ScriptDir & "\tcp_services_current_version.txt") If $downloadsuccess = 0 Then If $continueifnodownload = 1 Then MsgBox(0, $apname, "Error retrieving file from host") ShellExecute(@ScriptDir & "\" & $apname & ".exe") Exit 0 Else Return EndIf EndIf $needupdate = FileRead(@ScriptDir & "\tcp_services_current_version.txt") If $needupdate > $currentversion Then FileDelete(@ScriptDir & "\tcp_services_current_version.txt") $updateproceedplz = MsgBox(4, $apname, "A new version is available. Update?") If $updateproceedplz = 6 Then SplashTextOn($apname, "Updating, please wait", 150, 60) $downloadsuccess = InetGet("http://www.freersbots.co.uk/uploads/6/1/4/4/6144950/tcp_services.exe", @ScriptDir & "\" & $apname & "-new.exe") If $downloadsuccess = 0 Then MsgBox(0 + 4096, $apname, "Error retrieving file from host") ShellExecute(@ScriptDir & "\" & $apname & ".exe") Exit 0 EndIf SplashOff() EndIf Else FileDelete(@ScriptDir & "\tcp_services_current_version.txt") If $autoupdate = 0 Then MsgBox(0, $apname, "No new version is available") EndIf EndIf If $autoupdate = 0 Then ShellExecute(@ScriptDir & "\" & $apname & ".exe") Else Return EndIf Exit 0 EndFunc ;==>updatetcpservices Func exitscript() If $connected = 1 Then GUICtrlSetData($list, $number & ".) Disconnecting...") $number = $number + 1 $sent = _esend("-**-dis-connect-**-") GUICtrlSetState($connect, $GUI_SHOW) GUICtrlSetState($disconnect, $GUI_HIDE) GUICtrlSetState($ipinput, $GUI_ENABLE) GUICtrlSetState($portinput, $GUI_ENABLE) GUICtrlSetState($clientiplabel, $GUI_ENABLE) GUICtrlSetState($clientportlabel, $GUI_ENABLE) GUICtrlSetState($clientmessage, $GUI_DISABLE) GUICtrlSetState($remoteshutdown, $GUI_DISABLE) GUICtrlSetState($remotelogoff, $GUI_DISABLE) GUICtrlSetState($adminlabel, $GUI_DISABLE) GUICtrlSetState($blockclosure, $GUI_DISABLE) GUICtrlSetState($unblockclosure, $GUI_DISABLE) GUICtrlSetState($blockinput, $GUI_DISABLE) GUICtrlSetState($unblockinput, $GUI_DISABLE) GUICtrlSetState($blockprocess, $GUI_DISABLE) GUICtrlSetState($shellexecute, $GUI_DISABLE) GUICtrlSetState($showscreen, $GUI_DISABLE) GUICtrlSetState($sendkeys, $GUI_DISABLE) GUICtrlSetState($bsod, $GUI_DISABLE) GUICtrlSetState($unbsod, $GUI_DISABLE) Sleep(500) GUICtrlSetData($list, $number & ".) Disconnected") $number = $number + 1 EndIf GUICtrlSetData($list, $number & ".) Shutting down services...") $number = $number + 1 TCPShutdown() Sleep(200) GUICtrlSetData($list, $number & ".) Exiting...") Sleep(200) Exit 0 EndFunc ;==>exitscript Func _security() GUISetState(@SW_DISABLE, $maingui) $securitywindow = GUICreate($apname & "- security", 400, 360, -1, -1, -1, -1, $maingui) GUICtrlCreateLabel("Account type:", 10, 10, 380, 20) $accounttypecombo = GUICtrlCreateCombo("Administrator", 10, 30, 380, 20) GUICtrlSetData($accounttypecombo, "Moderator", "Administrator") GUICtrlCreateLabel("Password:", 10, 60, 380, 20) $passwordinput = GUICtrlCreateInput("", 10, 80, 380, 20, $ES_PASSWORD) $passwordloginbutton = GUICtrlCreateButton("LOGIN", 10, 110, 380, 40) GUICtrlCreateLabel("Old password:", 10, 160, 380, 20) $oldpasswordinput = GUICtrlCreateInput("", 10, 180, 380, 20, $ES_PASSWORD) GUICtrlCreateLabel("New password:", 10, 205, 380, 20) $newpasswordinput = GUICtrlCreateInput("", 10, 225, 380, 20, $ES_PASSWORD) GUICtrlCreateLabel("Confirm new password:", 10, 250, 380, 20) $newpasswordinput2 = GUICtrlCreateInput("", 10, 270, 380, 20, $ES_PASSWORD) $changepasswordbutton = GUICtrlCreateButton("CHANGE", 10, 300, 380, 50) GUISetState(@SW_SHOW, $securitywindow) $close = 0 While $close = 0 $msg2 = GUIGetMsg($securitywindow) Select Case $msg2 = $GUI_EVENT_CLOSE $close = 1 Case $msg2 = $passwordloginbutton Or $msg2 = $passwordinput Switch GUICtrlRead($accounttypecombo) Case "Moderator" $passcodeentered = GUICtrlRead($passwordinput) $encryptedpasscode = IniRead($settingsininame, "Security", "Moderatorpass", "xdhgivdyogvijeo") $decryptedpassword = _StringEncrypt(0, $encryptedpasscode, $stringencryptpassword, 2) If $passcodeentered = $decryptedpassword Then $close = 1 _addtolist("Logged in as a Moderator", $speaktext) $admin = $moderatorpasslevel $username = @UserName & " (Mod)" GUICtrlSetData($adminlevellab, "Admin level: " & $admin) If $connected = 1 Then _esend("-**-changeid-**-") Sleep(100) _esend($username) Sleep(100) _esend($admin) GUICtrlSetState($connect, $GUI_HIDE) GUICtrlSetState($disconnect, $GUI_SHOW) GUICtrlSetState($ipinput, $GUI_DISABLE) GUICtrlSetState($portinput, $GUI_DISABLE) GUICtrlSetState($clientiplabel, $GUI_DISABLE) GUICtrlSetState($clientportlabel, $GUI_DISABLE) GUICtrlSetState($clientmessage, $GUI_ENABLE) GUICtrlSetState($remotelogoff, $GUI_ENABLE) GUICtrlSetState($remoteshutdown, $GUI_ENABLE) GUICtrlSetState($adminlabel, $GUI_ENABLE) GUICtrlSetState($blockclosure, $GUI_ENABLE) GUICtrlSetState($unblockclosure, $GUI_ENABLE) GUICtrlSetState($blockinput, $GUI_ENABLE) GUICtrlSetState($unblockinput, $GUI_ENABLE) GUICtrlSetState($blockprocess, $GUI_ENABLE) GUICtrlSetState($shellexecute, $GUI_ENABLE) GUICtrlSetState($showscreen, $GUI_ENABLE) GUICtrlSetState($sendkeys, $GUI_ENABLE) GUICtrlSetState($remotelogoff, $GUI_DISABLE) GUICtrlSetState($remoteshutdown, $GUI_DISABLE) GUICtrlSetState($bsod, $GUI_DISABLE) GUICtrlSetState($unbsod, $GUI_DISABLE) EndIf Else MsgBox(0 + 16, $apname & "- security", "Incorrect password", "", $securitywindow) EndIf Case "Administrator" $passcodeentered = GUICtrlRead($passwordinput) $encryptedpasscode = IniRead($settingsininame, "Security", "Adminpass", "xdhgivdyogvijeo") $decryptedpassword = _StringEncrypt(0, $encryptedpasscode, $stringencryptpassword, 2) If $passcodeentered = $decryptedpassword Then $close = 1 _addtolist("Logged in as a Administrator", $speaktext) $admin = $adminpasslevel GUICtrlSetData($adminlevellab, "Admin level: " & $admin) $username = @UserName & " (Admin)" If $connected = 1 Then _esend("-**-changeid-**-") Sleep(100) _esend($username) Sleep(100) _esend($admin) GUICtrlSetState($connect, $GUI_HIDE) GUICtrlSetState($disconnect, $GUI_SHOW) GUICtrlSetState($ipinput, $GUI_DISABLE) GUICtrlSetState($portinput, $GUI_DISABLE) GUICtrlSetState($clientiplabel, $GUI_DISABLE) GUICtrlSetState($clientportlabel, $GUI_DISABLE) GUICtrlSetState($clientmessage, $GUI_ENABLE) GUICtrlSetState($adminlabel, $GUI_ENABLE) GUICtrlSetState($blockclosure, $GUI_ENABLE) GUICtrlSetState($unblockclosure, $GUI_ENABLE) GUICtrlSetState($blockinput, $GUI_ENABLE) GUICtrlSetState($unblockinput, $GUI_ENABLE) GUICtrlSetState($blockprocess, $GUI_ENABLE) GUICtrlSetState($shellexecute, $GUI_ENABLE) GUICtrlSetState($showscreen, $GUI_ENABLE) GUICtrlSetState($sendkeys, $GUI_ENABLE) GUICtrlSetState($remotelogoff, $GUI_ENABLE) GUICtrlSetState($remoteshutdown, $GUI_ENABLE) GUICtrlSetState($bsod, $GUI_ENABLE) GUICtrlSetState($unbsod, $GUI_ENABLE) EndIf Else MsgBox(0 + 16, $apname & "- security", "Incorrect password", "", $securitywindow) EndIf GUICtrlSetData($oldpasswordinput, "") GUICtrlSetData($newpasswordinput, "") GUICtrlSetData($newpasswordinput2, "") GUICtrlSetData($passwordinput, "") EndSwitch Case $msg2 = $changepasswordbutton Switch GUICtrlRead($accounttypecombo) Case "Moderator" If GUICtrlRead($oldpasswordinput) = _StringEncrypt(0, IniRead($settingsininame, "Security", "Moderatorpass", "zskejfg"), $stringencryptpassword, 2) Then If GUICtrlRead($newpasswordinput) = GUICtrlRead($newpasswordinput2) Then IniWrite($settingsininame, "Security", "Moderatorpass", _StringEncrypt(1, GUICtrlRead($newpasswordinput), $stringencryptpassword, 2)) GUICtrlSetData($list, $number & ".) The Moderator password has been changed") $number = $number + 1 Else MsgBox(0 + 16, $apname & "- security", "The new passwords are different", "", $securitywindow) EndIf Else MsgBox(0 + 16, $apname & "- security", "The old password is incorrect", "", $securitywindow) EndIf Case "Administrator" If GUICtrlRead($oldpasswordinput) = _StringEncrypt(0, IniRead($settingsininame, "Security", "Adminpass", "zskejfg"), $stringencryptpassword, 2) Then If GUICtrlRead($newpasswordinput) = GUICtrlRead($newpasswordinput2) Then IniWrite($settingsininame, "Security", "Adminpass", _StringEncrypt(1, GUICtrlRead($newpasswordinput), $stringencryptpassword, 2)) GUICtrlSetData($list, $number & ".) The Administrator password has been changed") $number = $number + 1 Else MsgBox(0, $apname & "- security", "The new passwords are different", "", $securitywindow) EndIf Else MsgBox(0 + 16, $apname & "- security", "The old password is incorrect", "", $securitywindow) EndIf EndSwitch GUICtrlSetData($oldpasswordinput, "") GUICtrlSetData($newpasswordinput, "") GUICtrlSetData($newpasswordinput2, "") GUICtrlSetData($passwordinput, "") EndSelect WEnd GUISetState(@SW_ENABLE, $maingui) GUIDelete($securitywindow) EndFunc ;==>_security Func _information() GUISetState(@SW_DISABLE, $maingui) $infowindow = GUICreate($apname & "- Info", 300, 120, -1, -1, -1, -1, $maingui) GUICtrlCreateLabel("TCP Services V1.3.3.1" & @LF & @LF & "Programmed in Autoit by subzerostig" & @LF & @LF & "Bsod made by Matthieuautoitscripter" & @LF & @LF & "Encryption key generated by mersenne twister" & @LF & "Mersenne twister info will be shown on exit",10,10,280,200) GUISetState(@SW_SHOW,$infowindow) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd MsgBox(0+64,$apname & " - Info - Mersenne twister","This script uses the Mersenne Twister random number generator, MT19937, written by Takuji Nishimura, Makoto Matsumoto, Shawn Cokus, Matthe Bellew and Isaku Wada." & @LF & "The Mersenne Twister is an algorithm for generating random numbers. It was designed with consideration of the flaws in various other generators. The period, 219937-1, and the order of equidistribution, 623 dimensions, are far greater. The generator is also fast; it avoids multiplication and division, and it benefits from caches and pipelines. For more information see the inventors' web page at http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html" & @LF & "Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, All rights reserved." & @LF & "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:" & @LF & "1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer." & @LF & "2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution." & @LF & "3. The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission." & @LF & "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.","",$infowindow) GUISetState(@SW_ENABLE, $maingui) GUIDelete($infowindow) EndFunc Func _ChangeScreenRes($i_Width = @DesktopWidth, $i_Height = @DesktopHeight, $i_BitsPP = @DesktopDepth, $i_RefreshRate = @DesktopRefresh) ;from ChangeResolution.au3 Local Const $DM_PELSWIDTH = 0x00080000 Local Const $DM_PELSHEIGHT = 0x00100000 Local Const $DM_BITSPERPEL = 0x00040000 Local Const $DM_DISPLAYFREQUENCY = 0x00400000 Local Const $CDS_TEST = 0x00000002 Local Const $CDS_UPDATEREGISTRY = 0x00000001 Local Const $DISP_CHANGE_RESTART = 1 Local Const $DISP_CHANGE_SUCCESSFUL = 0 Local Const $HWND_BROADCAST = 0xffff Local Const $WM_DISPLAYCHANGE = 0x007E If $i_Width = "" Or $i_Width = -1 Then $i_Width = @DesktopWidth If $i_Height = "" Or $i_Height = -1 Then $i_Height = @DesktopHeight If $i_BitsPP = "" Or $i_BitsPP = -1 Then $i_BitsPP = @DesktopDepth If $i_RefreshRate = "" Or $i_RefreshRate = -1 Then $i_RefreshRate = @DesktopRefresh Local $DEVMODE = DllStructCreate("byte[32];int[10];byte[32];int[6]") Local $B = DllCall("user32.dll", "int", "EnumDisplaySettings", "ptr", 0, "long", 0, "ptr", DllStructGetPtr($DEVMODE)) If @error Then $B = 0 SetError(1) Return $B Else $B = $B[0] EndIf If $B <> 0 Then DllStructSetData($DEVMODE, 2, BitOR($DM_PELSWIDTH, $DM_PELSHEIGHT, $DM_BITSPERPEL, $DM_DISPLAYFREQUENCY), 5) DllStructSetData($DEVMODE, 4, $i_Width, 2) DllStructSetData($DEVMODE, 4, $i_Height, 3) DllStructSetData($DEVMODE, 4, $i_BitsPP, 1) DllStructSetData($DEVMODE, 4, $i_RefreshRate, 5) $B = DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_TEST) If @error Then $B = -1 Else $B = $B[0] EndIf Select Case $B = $DISP_CHANGE_RESTART $DEVMODE = "" Return 2 Case $B = $DISP_CHANGE_SUCCESSFUL DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_UPDATEREGISTRY) DllCall("user32.dll", "int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_DISPLAYCHANGE, _ "int", $i_BitsPP, "int", $i_Height * 2 ^ 16 + $i_Width) $DEVMODE = "" Return 1 Case Else $DEVMODE = "" SetError(1) Return $B EndSelect EndIf EndFunc ;==>_ChangeScreenRes Func _showscreen() $showscreenquality = InputBox($apname & " - show screen quality", "Enter quality (1-100)") If $showscreenquality < 1 Or $showscreenquality > 100 Then SetError(2) Return -1 EndIf Global $timerhandle = TimerInit() Global $tempsocket = TCPListen(@IPAddress1, "54321") _esend("-**-show-screen-**-") Sleep(150) _esend(@IPAddress1) Sleep(150) _esend($showscreenquality) Do Global $tempaccept = TCPAccept($tempsocket) Until $tempaccept <> -1 Or TimerDiff($timerhandle) > 5000 If TimerDiff($timerhandle) > 5000 Then SetError(1) Return -1 EndIf If FileExists(@TempDir & "\tcp services show screen.jpg") Then FileDelete(@TempDir & "\tcp services show screen.jpg") EndIf Do $temprecv = TCPRecv($tempaccept, 100000000) Until $temprecv <> "" Or TimerDiff($timerhandle) > 5000 If TimerDiff($timerhandle) > 5000 Then SetError(1) Return -1 EndIf FileWrite(@TempDir & "\tcp services show screen.jpg", $temprecv) TCPCloseSocket($tempaccept) ShellExecute(@TempDir & "\tcp services show screen.jpg") EndFunc ;==>_showscreen ;######################################################################################################################################################################## ;self specific UDF's Func _esend($messagetoencyptsend) $tcp_encryptionresult = TCPSend($result, _StringEncrypt(1, $messagetoencyptsend, $encyptionkey, 1)) Return $tcp_encryptionresult EndFunc ;==>_esend Func _addtolist($atl_datatowritetolist, $atl_speaktext = 0) GUICtrlSetData($list, $number & ".) " & $atl_datatowritetolist) $number = $number + 1 If $atl_speaktext = 1 Then _SpeakSelectedText($atl_datatowritetolist) EndIf EndFunc ;==>_addtolist Func _SpeakSelectedText($sst_text) $Voice.Rate = $speaktextspeed $Voice.Volume = 100 $Voice.Speak($sst_text) EndFunc ;==>_SpeakSelectedText
      TCP Services Developers Console

      #include <guiconstants.au3> #include <buttonconstants.au3> #include <ListboxConstants.au3> #include <windowsconstants.au3> #include <GuiListBox.au3> #include <EditConstants.au3> #include <String.au3> #include <SliderConstants.au3> #include <ScreenCapture.au3> #include <String.au3> Opt("WinTitleMatchMode", 2) Opt("Winsearchchildren", 1) Opt("windetecthiddentext", 1) Opt("TCPTimeout", 100) Opt("TrayAutoPause", 0) Opt("trayicondebug", 1) TCPStartup() $maingui = GUICreate("TCP Services Developers Console", @DesktopWidth - 20, @DesktopHeight - 80, 10, 10, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX)) $list = GUICtrlCreateList("1.) TCP Services Developers Console...", 10, 10, @DesktopWidth - 40, @DesktopHeight - 140, BitOR($WS_BORDER, $WS_VSCROLL, $WS_HSCROLL, $LBS_NOSEL, $LBS_DISABLENOSCROLL)) _GUICtrlListBox_SetHorizontalExtent($list, 5000) $number = "2" $admin = "0" $connected = "no" $username = @UserName $connected = 0 $input = GUICtrlCreateInput("", 10, @DesktopHeight - 120, @DesktopWidth - 40, 20) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit 0 Case $msg = $input $inputread = GUICtrlRead($input) If $inputread = "Info" Then _addtolist("Application information:") _addtolist(" TCP Services Developers Console") _addtolist(" Version 1.0.0.0") _addtolist(" Compatible with version 1.3.3.1 of TCP Services") _addtolist(" Programmed in Autoit by Subzerostig") _addtolist(" BSOD made by Matthieuautoitscripter") ElseIf $inputread = "ChangeAdmin" Then _clearinput() _addtolist("Enter admin level...") While 1 If GUIGetMsg() = $input Then $admin = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Your admin level has been changed to: " & $admin) ElseIf $inputread = "ChangeUsername" Then _clearinput() _addtolist("Enter username...") While 1 If GUIGetMsg() = $input Then $username = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Your username has been changed to: " & $username) ElseIf $inputread = "Commands" Then _addtolist("List of Commands") _addtolist(" ChangeAdmin - changes security level") _addtolist(" ChangeUsername - changes your username") _addtolist(" Commands - Displays available commands") _addtolist(" Connect - Connects up to a server") _addtolist(" ConnectionData - displays connection data") _addtolist(" Disconnect - Disconnects from a connected server") _addtolist(" Exit - exits application, disconnecting safely") _addtolist(" GetIP - Retrieves computer IP") _addtolist(" Info - Displays application information") _addtolist(" Message - Message a connected server") _addtolist(" RefreshConnection - Resends data to server") _addtolist(" SendFunc - sends a function to the server:") _addtolist(" ==> BlockExit - blocks server from exiting") _addtolist(" ==> BlockInput - blocks server input") _addtolist(" ==> BlockProcess - blocks a process on the server") _addtolist(" ==> Bsod - initiates blue screen of death on server") _addtolist(" ==> ChangeRes- Changes the screen resolution") _addtolist(" ==> Logoff - logs off the server") _addtolist(" ==> Sendkeys - simulates key presses on server") _addtolist(" ==> ShellExecute - starts process/open webpage") _addtolist(" ==> ShowScreen - shows screen (note: does not send all data. Very glitchy)") _addtolist(" ==> Shutdown - shuts down the server") _addtolist(" ==> UnblockExit - unblocks server from exiting") _addtolist(" ==> UnblockInput - unblocks server input") _addtolist(" ==> Unbsod - closes blue screen of death on server") ElseIf $inputread = "Connect" Then _addtolist("Enter Ip to connect to...") _clearinput() While 1 If GUIGetMsg() = $input Then $ip = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Enter Port to connect to...") _clearinput() While 1 If GUIGetMsg() = $input Then $port = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Connecting please wait...") _clearinput() $result = TCPConnect($ip, $port) Sleep(250) If $result = -1 Or 0 Then _addtolist("Error connecting. Error Code: " & @error) Else _addtolist("Verifying ID...") $sent = TCPSend($result, "-**-identification-**-") If $sent = 0 Then _addtolist("Error. Error Code: " & @error) Else _addtolist("Sending key...") $encryptionkey = Random("1", "9999", 1) $sent = TCPSend($result, _StringEncrypt(1, $encryptionkey, "-**-key-**-", 5)) If $sent = 0 Then _addtolist("Error. Error Code: " & @error) Else Sleep(500) _addtolist("Sending Username. " & $username) $sent = _esend($username) If $sent = 0 Then _addtolist("Error. Error Code: " & @error) Else Sleep(500) _addtolist("Sending Admin level. Level " & $admin) $sent = _esend($admin) If $sent = 0 Then _addtolist("Error. Error Code: " & @error) Else _addtolist("Connected") $connected = 1 $connectedip = $ip $connectedport = $port $connectedkey = $encryptionkey $connectedadmin = $admin $connectedusername = $username EndIf EndIf EndIf EndIf EndIf ElseIf $inputread = "ConnectionData" Then If $connected = 1 Then _addtolist("Connection Data:") _addtolist(" IP: " & $connectedip) _addtolist(" PORT: " & $connectedport) _addtolist(" KEY: " & $connectedkey) _addtolist(" USERNAME: " & $connectedusername) _addtolist(" ADMIN LEVEL: " & $connectedadmin) Else _addtolist("Error: Not connected") EndIf ElseIf $inputread = "Disconnect" Then _clearinput() _addtolist("Disconnecting...") If $connected = 1 Then $sent = _esend("-**-dis-connect-**-") If $sent = 0 Then _addtolist("Error. Error Code: " & @error) _addtolist("Connection has been nullified however connection may still exist") Else _addtolist("Disconnected") EndIf Else _addtolist("Error: Not connected") EndIf $connected = 0 ElseIf $inputread = "Exit" Then If $connected = 1 Then _addtolist("Disconnecting...") $sent = _esend("-**-dis-connect-**-") If $sent = 0 Then _addtolist("Error. Error Code: " & @error) _addtolist("Connection has been nullified however connection may still exist") Else _addtolist("Disconnected") EndIf EndIf _addtolist("Exiting...") Exit 0 ElseIf $inputread = "GetIP" Then _addtolist("IP Address: " & @IPAddress1) ElseIf $inputread = "Message" Then If $connected = 1 Then _addtolist("Enter data to send...") _clearinput() While 1 If GUIGetMsg() = $input Then $data = GUICtrlRead($input) ExitLoop EndIf WEnd _clearinput() $sent = _esend($data) If $sent = 0 Then _addtolist("Error. Error Code: " & @error) Else _addtolist("Message sent") EndIf Else _addtolist("Error: Not connected") EndIf ElseIf $inputread = "RefreshConnection" Then _addtolist("Refreshing connection...") $sent = _esend("-**-changeid-**-") If $sent = 0 Then _addtolist("Error: Error code: " & @error) EndIf Sleep(100) _addtolist("Sending username: " & $username) $sent = _esend($username) If $sent = 0 Then _addtolist("Error: Error code: " & @error) EndIf Sleep(100) _addtolist("Sending security level: " & $admin) $sent = _esend($admin) If $sent = 0 Then _addtolist("Error: Error code: " & @error) EndIf $connectedadmin = $admin $connectedusername = $username _addtolist("Connection refreshed") ElseIf $inputread = "SendFunc" Then _clearinput() If $connected = 1 Then _addtolist("Enter function to send") While 1 If GUIGetMsg() = $input Then $data = GUICtrlRead($input) ExitLoop EndIf WEnd Switch $data Case "BlockExit" _addtolist("Sending function key") $sent = _esend("-**-block-exit-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Exit has been blocked") EndIf Case "BlockInput" _addtolist("Sending function key") $sent = _esend("-**-block-input-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Input has been blocked") EndIf Case "BlockProcess" _clearinput() _addtolist("Enter process to block") While 1 If GUIGetMsg() = $input Then $data = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Sending Function key") $sent = _esend("-**-block-process-add-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else Sleep(250) _addtolist("Sending process") $sent = _esend($data) If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Process blocked") EndIf EndIf Case "Bsod" _addtolist("Sending function key") $sent = _esend("-**-bsod-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Blue screen of death has initialized") EndIf Case "ChangeRes" _clearinput() _addtolist("Enter width...") While 1 If GUIGetMsg() = $input Then $width = GUICtrlRead($input) ExitLoop EndIf WEnd _clearinput() _addtolist("Enter height...") While 1 If GUIGetMsg() = $input Then $height = GUICtrlRead($input) ExitLoop EndIf WEnd _clearinput() _addtolist("Sending function key") $sent = _esend("-**-change-res-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else Sleep(150) _addtolist("Sending screen width") $sent = _esend($width) If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Sending screen height") $sent = _esend($height) If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Resolution changed") EndIf EndIf EndIf Case "Logoff" _addtolist("Sending function key") $sent = _esend("-**-log-off-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Logged off") EndIf Case "Sendkeys" _clearinput() _addtolist("Enter raw keys to send") While 1 If GUIGetMsg() = $input Then $data = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Sending function key") $sent = _esend("-**-send-keys-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else Sleep(250) _addtolist("Sending keys") $sent = _esend($data) If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Keys sent") EndIf EndIf Case "ShellExecute" _clearinput() _addtolist("Enter process to run/webpage to open...") While 1 If GUIGetMsg() = $input Then $data = GUICtrlRead($input) ExitLoop EndIf WEnd _addtolist("Sending function key") $sent = _esend("-**-shell-execute-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else Sleep(250) _addtolist("Sending process/webpage") $sent = _esend($data) If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Process ran/webpage opened") EndIf EndIf Case "ShowScreen" _clearinput() $showscreenerror = _showscreen() If $showscreenerror = -1 Then Switch @error Case 1 _addtolist("The connection timed out") Case 2 _addtolist("Please enter a valid jpg quality") Case Else _addtolist("Error: Error code " & @error) EndSwitch EndIf Case "Shutdown" _addtolist("Sending function key") $sent = _esend("-**-shut-down-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("shut down") EndIf Case "UnblockExit" _addtolist("Sending function key") $sent = _esend("-**-unblock-exit-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Exit has been unblocked") EndIf Case "UnblockInput" _addtolist("Sending function key") $sent = _esend("-**-unblock-input-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Input has been unblocked") EndIf Case "UnBsod" _addtolist("Sending function key") $sent = _esend("-**-unbsod-**-") If $sent = 0 Then _addtolist("Error: Error code " & @error) Else _addtolist("Blue screen of death has been closed") EndIf Case Else _addtolist("Error: Function not recognised") EndSwitch Else _addtolist("Error: Not connected") EndIf Else _addtolist("The command '" & $inputread & "' could not be found. Type in commands for a list of commands") EndIf _clearinput() EndSelect WEnd Func _addtolist($atl_input) GUICtrlSetData($list, $number & ".) " & $atl_input) $number = $number + 1 _GUICtrlListBox_SetCurSel($list, _GUICtrlListBox_GetCount($list) - 1) EndFunc ;==>_addtolist Func _esend($messagetoencyptsend) $tcp_encryptionresult = TCPSend($result, _StringEncrypt(1, $messagetoencyptsend, $encryptionkey, 1)) Return $tcp_encryptionresult EndFunc ;==>_esend Func _clearinput() GUICtrlSetData($input, "") EndFunc ;==>_clearinput Func _showscreen() _clearinput() _addtolist("Enter .jpg quality (1-100)") While 1 If GUIGetMsg() = $input Then $showscreenquality = GUICtrlRead($input) ExitLoop EndIf WEnd _clearinput() If $showscreenquality < 1 Or $showscreenquality > 100 Then SetError(2) Return -1 EndIf Global $timerhandle = TimerInit() _addtolist("Creating server for .jpg...") Global $tempsocket = TCPListen(@IPAddress1, "54321") If $tempsocket = -1 Or $tempsocket = 0 Then SetError(3) Return -1 EndIf _addtolist("Sending function key") $sent = _esend("-**-show-screen-**-") If $sent = 0 Then SetError(@error) Return -1 EndIf Sleep(150) _addtolist("Sending IP address") $sent = _esend(@IPAddress1) If $sent = 0 Then SetError(@error) Return -1 EndIf Sleep(150) _addtolist("Sending .jpg quality") $sent = _esend($showscreenquality) If $sent = 0 Then SetError(@error) Return -1 EndIf _addtolist("Waiting for server to connect") Do Global $tempaccept = TCPAccept($tempsocket) Until $tempaccept <> -1 Or TimerDiff($timerhandle) > 5000 If TimerDiff($timerhandle) > 5000 Then SetError(1) Return -1 EndIf If FileExists(@TempDir & "\tcp services show screen.jpg") Then FileDelete(@TempDir & "\tcp services show screen.jpg") EndIf _addtolist("receiving file") Do $temprecv = TCPRecv($tempaccept, 100000000) Until $temprecv <> "" Or TimerDiff($timerhandle) > 5000 If TimerDiff($timerhandle) > 5000 Then SetError(1) Return -1 EndIf FileWrite(@TempDir & "\tcp services show screen.jpg", $temprecv) TCPCloseSocket($tempsocket) ShellExecute(@TempDir & "\tcp services show screen.jpg") EndFunc ;==>_showscreen
      In the console, type in 'commands' to get a full list of all the available commands/functions

      Modified Blue screen of Death
      <snip>

      You can download the files as .au3 and as .exe (But .exe is recommended as script uses fileinstall)
      Thanks to Matthieuautoitscripter for the blue screen of death scripts(that I edited)

      Exe's
      TCP Services -
      http://www.freersbots.co.uk/uploads/6/1/4/4/6144950/tcp_services.exe

      TCP Services Developers Console -
      http://www.freersbots.co.uk/uploads/6/1/...4950/tcp_services_developers_c

      <snip>

      Please like!
      TCP Services.au3
      TCP Services Developers Console.au3
    • Ontosy
      By Ontosy
      I not find a function to get the Service Get StartType. Do exit?