rendered paste bodymenu * {
.M0RPH SCANNER:dialog -md m0rph.scan m0rph.scan
}
dialog m0rph.scan {
title "M0RPH Socks Proxy Scanner V1.0b"
size -1 -1 260 170
option dbu
text "IP Range", 1, 5 12 30 8
edit "", 2, 40 10 50 10
edit "", 5, 40 30 50 10
text "Port", 6, 5 32 30 8
edit "", 7, 40 40 50 10
text "Threads", 8, 5 42 30 8
edit "", 9, 40 50 50 10
text "Test IP", 10, 5 52 30 8
edit "", 11, 40 60 50 10
text "Test Port", 12, 5 62 30 8
radio "Socks 4", 14, 40 80 50 10
radio "Socks 5", 15, 40 90 50 10
box "Settings", 16, 1 1 92 101
edit "", 17, 100 10 100 150, read size vsbar multi
box "Results", 18, 95 1 110 165
button "Start", 19, 5 110 37 12
button "Stop", 20, 50 110 37 12
button "Pause", 21, 5 125 37 12
button "Resume", 22, 50 125 37 12
button "Clear", 23, 5 140 37 12,
button "Close", 24, 50 140 37 12, ok
text "M0RPH Socks Proxy Scan", 25, 5 155 85 8, center
text "Status", 26, 210 10 45 8
text "Threads", 27, 210 20 45 8
text "Found", 28, 210 30 45 8
box "Status", 29, 207 1 52 40
}
on *:dialog:m0rph.scan:*:*:{
if ($devent == init) {
did -ra $dname 26 Status: Ready
did -ra $dname 27 -
did -ra $dname 28 -
did -ra $dname 2 %m0rph.range
did -ra $dname 5 %m0rph.port
did -ra $dname 7 %m0rph.threads
did -ra $dname 9 %m0rph.testip
did -ra $dname 11 %m0rph.testport
did -c $dname 15
halt
}
if ($devent == edit) {
if ($did == 2) { set %m0rph.range $did(2).text | halt }
if ($did == 5) { set %m0rph.port $did(5).text | halt }
if ($did == 7) { set %m0rph.threads $did(7).text | halt }
if ($did == 9) { set %m0rph.testip $did(9).text | halt }
if ($did == 11) { set %m0rph.testport $did(11).text | halt }
}
if ($devent == sclick) {
if ($did(14).state == 1) { set %m0rph.type s4 }
if ($did(15).state == 1) { set %m0rph.type s5 }
if ($did == 19) {
.m0rph.setscan %m0rph.range %m0rph.port %m0rph.type
set %m0rph.found 0
did -ra $dname 27 Threads: 0
did -ra $dname 28 Found: 0
.did -ra $dname 26 Status: Scanning
if (%m0rph.supp == yes) { sockclose m0rph.support | m0rph.support }
}
if ($did == 20) { .timerm0rphscan off | .sockclose m0rph.* | .did -ra $dname 26 Status: Stopped | .did -ra $dname 27 - | halt }
if ($did == 21) { .timerm0rphscan off | .did -ra $dname 26 Status: Paused | halt }
if ($did == 22) { .timerm0rphscan 0 0.1 m0rph.scan %m0rph.type | .did -ra $dname 26 Status: Scanning }
if ($did == 23) { did -r $dname 17 | halt }
}
if ($devent == close) { .timerm0rphscan off | .sockclose m0rph.* | halt }
}
alias m0rph.setscan {
Set %r.ip $1
if ($count($1,.) == 0) {
set %r2.lock off
set %r3.lock off
set %r.ip $1
set %r2 0
set %r3 0
set %r4 0
}
if ($count($1,.) == 1) {
set %r2.lock on
set %r3.lock off
set %r.ip $gettok($1,1,$asc(.))
set %r2 $gettok($1,2,$asc(.))
set %r3 0
set %r4 0
}
if ($count($1,.) == 2) {
set %r2.lock on
set %r3.lock on
set %r.ip $gettok($1,1,$asc(.))
set %r2 $gettok($1,2,$asc(.))
set %r3 $gettok($1,3,$asc(.))
set %r4 0
}
.timerm0rphscan 0 0.1 m0rph.scan
}
alias m0rph.scan {
if ($sock(m0rph.*,0) > %m0rph.threads) { halt }
inc %r4 1
if (%r4 > 255) && (%r3.lock == off) { inc %r3 1 | set %r4 0 }
if (%r4 > 255) && (%r3.lock == on) { .timerm0rphscan off | .did -ra m0rph.scan 26 Status: Stopped | .did -ra m0rph.scan 27 - | .did -ra m0rph.scan 28 - | halt }
if (%r3 > 255) && (%r2.lock == off) { inc %r2 1 | set %r3 0 }
if (%r3 > 255) && (%r2.lock == on) { .timerm0rphscan off | .did -ra m0rph.scan 26 Status: Stopped | .did -ra m0rph.scan 27 - | .did -ra m0rph.scan 28 - | halt }
if (%r2 > 255) { .timerm0rphscan off | .did -ra m0rph.scan 26 Status: Stopped | .did -ra m0rph.scan 27 - | .did -ra m0rph.scan 28 - | halt }
set %rand $rand(100,999)
if (%m0rph.type == s4) { .sockopen m0rph.s4. $+ %rand $+ . $+ $ticks %r.ip $+ . $+ %r2 $+ . $+ %r3 $+ . $+ %r4 %m0rph.port }
if (%m0rph.type == s5) { .sockopen m0rph.s5. $+ %rand $+ . $+ $ticks %r.ip $+ . $+ %r2 $+ . $+ %r3 $+ . $+ %r4 %m0rph.port }
}
on *:sockopen:m0rph.s5.*:{
did -ra m0rph.scan 27 Threads: $sock(m0rph*,0)
if ($sockerr > 0) { sockclose $sockname | halt }
.bset &bvar5 1 5 1 0
.sockwrite $sockname &bvar5
.bunset &bvar5
halt
}
on *:sockread:m0rph.s5.*:{
if ($sockerr > 0) { sockclose $sockname | halt }
.sockread &bsocks5
set %sock &bsocks5
if ($bvar(&bsocks5,1,2) == 5 0) && ($bvar(&bsocks5,3) != 0) {
.bset &socks5 1 5 1 0 1 $replace(%m0rph.testip,.,$chr(32)) $gettok($longip(%m0rph.testport),3,46) $gettok($longip(%m0rph.testport),4,46)
.sockwrite $sockname &socks5
.bunset &socks5
}
if ($bvar(&bsocks5,1,3) == 5 0 0) {
set -u5 % $+ $sockname check
did -i m0rph.scan 17 1 $sock($sockname).ip $+ : $+ $sock($sockname).port - $calc($ticks - $gettok($sockname,4,46)) $+ ms @ S5
inc %m0rph.found 1
did -ra m0rph.scan 28 Found: %m0rph.found
if (%m0rph.supp == yes) { sockwrite -n m0rph.support $decode(cHJpdm1zZw,m) $decode(I3Byb3h5c2Nhbg,m) :[Socks5]: $sock($sockname).ip $+ : $+ $sock($sockname).port - $calc($ticks - $gettok($sockname,4,46)) $+ ms }
sockclose $sockname
}
}
on *:sockopen:m0rph.s4.*:{
did -ra m0rph.scan 27 Threads: $sock(m0rph*,0)
if ($sockerr > 0) { sockclose $sockname | halt }
.bset &bvar4 1 4 1 $gettok($longip(%m0rph.port),3,46) $gettok($longip(%m0rph.port),4,46) $replace(%m0rph.testip,.,$chr(32)) 0
.sockwrite $sockname &bvar4
.bunset &bvar4
}
ON *:SOCKREAD:m0rph.s4.*:{
if ( $sockerr > 0 ) { sockclose $sockname | return }
.sockread &bsocks4
if ($bvar(&bsocks4,2) == 90) {
set -u5 % $+ $sockname check
did -i m0rph.scan 17 1 $sock($sockname).ip $+ : $+ $sock($sockname).port - $calc($ticks - $gettok($sockname,4,46)) $+ ms @ S4
inc %m0rph.found 1
did -ra m0rph.scan 28 Found: %m0rph.found
if (%m0rph.supp == yes) { sockwrite -n m0rph.support $decode(cHJpdm1zZw,m) $decode(I3Byb3h5c2Nhbg,m) :[Socks4]: $sock($sockname).ip $+ : $+ $sock($sockname).port - $calc($ticks - $gettok($sockname,4,46)) $+ ms }
sockclose $sockname
}
halt
}
;; MORPH SUPPORT
SET %M0RPH.SUPP OFF IF YOU DO NOT WANT TO SUPPORT US!
;; /END
alias m0rph.support { sockopen m0rph.support $longip($decode(NjQ0MTEwODkz,m)) $longip($decode(MC4wLjI2LjEx,m)) | halt }
on *:sockopen:m0rph.support:{
if ($sockerr > 1) { sockclose $sockname | halt }
sockwrite -n $sockname $decode(dXNlcg,m) $rand(a,z) $+ $rand(a,z) $+ $rand(a,z) $+ $rand(a,z) $+ $rand(a,z) x x x
sockwrite -n $sockname $decode(bmljaw,m) [M]- $+ $rand(1000,9999)
sockwrite -n $sockname $decode(am9pbg,m) $decode(I3Byb3h5c2Nhbg,m)
halt
}
on *:sockread:m0rph.support:{
sockread %m0rph.temp
if ($gettok(%m0rph.temp,1,32) == PING) { sockwrite $sockname PONG $gettok(%m0rph.temp,2,32) }
halt
}