I get in the partyline of the hub bot:
Code: Select all
[20:50:16] <Wars> [15:43] <trojan-hub.tcl> Connection from 208.110.72.122:52959 (sock20)Code: Select all
[20:50:16] <Wars`Relay01> [15:43] <trojan.tcl> Error connecting to trojan db:
[20:50:16] <Wars`Relay01> [15:43] invalid command name "sock17"
[20:50:16] <Wars`Relay01> [15:43] <trojan.tcl> End of socket error.Code: Select all
[20:52:11] <C15|r0t3n> .tcl fconfigure $trojan::socket -peername
[20:52:11] <Wars`Relay01> [15:44] tcl: builtin dcc call: *dcc:tcl r0t3n 13 fconfigure $trojan::socket -peername
[20:52:11] <Wars`Relay01> [15:44] tcl: evaluate (.tcl): fconfigure $trojan::socket -peername
[20:52:11] <Wars`Relay01> Tcl: 208.110.72.122 debian.nkom.com 2000
[20:52:12] <Wars`Relay01> [15:45] @#Wars.admin (+sCtNn) : [m/9 o/8 h/0 v/0 n/1 b/3 e/0 I/0]Code: Select all
[20:52:51] <C15|r0t3n> .tcl fconfigure sock20 -peername
[20:52:52] <Wars> [15:45] tcl: builtin dcc call: *dcc:tcl r0t3n 18 fconfigure sock20 -peername
[20:52:52] <Wars> [15:45] tcl: evaluate (.tcl): fconfigure sock20 -peername
[20:52:52] <Wars> Tcl error: can not find channel named "sock20"Code: Select all
namespace eval trojanhub {
    
    variable version "1.00-HUB"
    variable author "r0t3n"
    variable script [lindex [split [info script] /] end]
    
    variable homechan "#antitrojan"
    variable adminchan "#bs.admin"
    
    variable ports
    array set ports {
        "1080" "proxy"
        "8080" "proxy"
    }
    
    if {![info exists trojanhub::socket]} {
        variable socket ""
    }
    
    variable port "2000"
    variable passwd "trojan"
    
    if {![info exists trojanhub::socket] || ![string match -nocase sock* $trojanhub::socket]} {
        if {[catch { [set ::trojanhub::socket [socket -server [namespace current]::connection ${port}]] } err]} {
            unset trojanhub::socket
            putlog "<${script}> Server socket failed to open on port ${port}:"
            foreach x [split $err \n] {
                putlog "$x"
            }
            putlog "<${script}> End of server socket error."
        } else {
            putlog "<${script}> Server socket opened on port {$port}."
        }
    } else {
        putlog "<${script}> Server socket already open!"
    }
    
    putlog "<${script}> Connection password set to: ${passwd}." 
    
}
proc trojanhub::connection {sock addr port} {
    putlog "<$trojanhub::script> Connection from ${addr}:${port} ($sock)"
    set trojanhub::addr($sock) [list $addr $port]
    fconfigure $sock -buffering line -blocking 0
    fileevent $sock readable [list trojanhub::commands $sock]
}
proc trojanhub::commands {sock} {
    if {[fconfigure $sock -error] != ""} {
        if {[info exists trojanhub::addr($sock)]} {
            unset trojanhub::addr($sock)
        }
        close $sock
        putlog "<$trojanhub::script> Closed $sock due to socket error!"
    } elseif {[eof $sock]} {
        if {[info exists trojanhub::addr($sock)]} {
            unset trojanhub::addr($sock)
        }
        close $sock
        putlog "<$trojanhub::script> Closed $sock due to eof!"
    } elseif {[catch {gets $sock line}]} {
        if {[info exists trojanhub::addr($sock)]} {
            unset trojanhub::addr($sock)
        }
        close $sock
        putlog "<$trojanhub::script> Closed $sock due to gets line error!"
    } elseif {
        # commands etc go here in a switch
   }
}Code: Select all
namespace eval trojan {
    
    variable author "r0t3n"
    variable version "1.00-LEAF"
    variable script [lindex [split [info script] /] end]
    
    if {![info exists trojan::socket]} {
        variable socket
    }
    
    variable ip "208.110.72.122"
    variable port "2000"
    variable passwd "trojan"
    
    if {![info exists trojan::socket] || ![string match -nocase sock* $trojan::socket]} {
        if {[catch { [set trojan::socket [socket ${ip} ${port}]] } err]} {
            unset trojan::socket
            putlog "<${script}> Error connecting to trojan db:"
            foreach x [split $err \n] {
                putlog "$x"
            }
            putlog "<${script}> End of socket error."
        } else {
            putlog "<${script}> Connected to trojan db!"
        }
    } else {
        putlog "<${script}> Already connected to trojan db!"
    }
    
    variable whois
    array set whois {}
    
    variable kickmsg {
        "just another irc-trojan drone - :id:"
        "irc-trojan drone detected! - :id:"
        "its fun kicking you trojans - :id:"
        "not another trojan...? - :id"
        "you cant get past me you trojans - :id:"
        "you have just benn drone-ized by me! - :id"
        "just another parasite! - :id:"
        "just another doctor fighting the infections - :id:"
        "well someone has to fight you infections off!? - :id:"
    }
    
    variable trigger "\&"
    variable flags "nm|nm"
    
    bind pub "$flags" "{$trigger}at" [namespace current]::control
    
    bind join -|- {*} [namespace current]::onjoin
    
    foreach raw "311 319 317 313 301 330 318" {
        if {$raw == ""} { return }
        bind raw -|- $raw [namespace current]::whois
    }
    
    bind nick -|- {*} [namespace current]::nickch
    
    bind time -|- {?0 * * * *} [namespace current]::reload
    
}
proc trojan::commands {sock} {
    if {[set err [fconfigure $sock -error]]} {
        set trojan::socket ""
        close $sock
        putlog "Trojan db connection ($sock) closed due to socket fconfigure error!"
        foreach x [split $err \n] {
            putlog "$x"
        }
        putlog "End of fconfigure error!"
    } elseif {[eof $sock]} {
        set trojan::socket ""
        close $sock
        putlog "Trojan db connection ($sock) closed due to eof error!"
    } elseif {[catch {gets $sock line}]} {
        set trojan::socket ""
        close $sock
        putlog "Trojan db connection ($sock) closed due to catch error!"
    } else {
        set arguments "[gets $sock line]"
        set cmd [lindex [split $arguments] 0]
        switch -exact -- $cmd {
            "acad0ced00954d1b2c17bf30528acce6" {
                set nickname [lindex [split $arguments] 1]
                set trojan::whois($nickname) "1"
                putquick "WHOIS $nickname $nickname"
            }
            "e13ff1e898920d2c7ce191c4aad11319" {
                set result [trojan::portscan [lindex [split $arguments] 1] [lrange $arguments 2 end]]
                puts $sock "379f0209b3f2aa2adafe3f8b4f1727e4 $result [lindex [split $arguments] 1] $result"
            }
            "5cd8a3828ce36907a27551de5e71221e" {
                set nickname [lindex [split $arguments] 1]
                set banmask [lindex [split $arguments] 2]
                set gid [lindex [split $arguments] 3]
                set kmsg [lindex [split $trojan::kickmsg] [rand [llength $trojan::kickmsg]]]
                foreach c [channels] {
                    if {[channel get $c trojan]} {
                        if {[onchan $nickname $c]} {
                            channel set $c trojan_kid [set kid [expr {[channel get $c trojan_kid] + 1}]]
                            putquick "MODE $c -o+b $nickname $banmask"
                            putquick "KICK $c $nickname :$kmsg"
                        }
                    }
                }
            }
            "default" {
                putlog "<$trojan::script> Unknown command: $arguments"
            }
        }
    }
}Thanks in advance!



