Oneroof team

mIRc Scripts Development Community
(channel flood protection speciality)

The Great Remote Comes With Less Excess Flood

 

Sample Of Remotes

on ^*:text:*:#: { if (($nick isreg #) && ($me isop #)) { $oneroof($1-) } }
on ^*:notice:*:#: { if (($nick isreg #) && ($me isop #)) { $oneroof($1-) } }
on ^*:action:*:#: { if (($nick isreg #) && ($me isop #)) { $oneroof($1-) } }

$iif + $regex

alias Oneroof {
$iif($regex($1-,/[[:cntrl:]]/g) > 49,$kick(code))
$iif($regex($strip($1-),/[[:digit:]]/g) > 49,$kick(number))
$iif($regex($strip($1-),/[[:upper:]]/g) > 49,$kick(caps))
$iif($regex($strip($1-),/[[:punct:]]/g) > 49,$kick(symbol))
$iif($regex($strip($1-),/[€-Ÿ|?ÿ]/g) > 49,$kick(ascii))
$iif($regex($strip($1-),/[ ]/g) > 49,$kick(blur))
$iif($regex($strip($1-),/[[:lower:]]/g) > 199,$kick(lenght))
haltdef
}

If + $regex

alias oneroof {
if ($regex($1-,/[[:cntrl:]]/g) > 49) { .kick # $nick codes | halt }
if ($regex($strip($1-),/[[:upper:]]/g) > 49) { .kick # $nick caps | halt }
if ($regex($strip($1-),/[[:digit:]]/g) > 49) { .kick # $nick number | halt }
if ($regex($strip($1-),/[[:punct:]]/g) > 49) { .kick # $nick symbol | halt }
if ($regex($strip($1-),/[ ]/g) > 49) { .kick # $nick blur | halt }
if ($regex($strip($1-),/[€-Ÿ|?ÿ]/g) > 49) { .kick # $nick ascii | halt }
if ($regex($1-,/[[:lower:]]/g) > 199) { .kick # $nick lenght | halt }
}

If + $eval + $regex

alias oneroof {
if ($eval($regex($1-,/[[:cntrl:]]/g)) > 49) { .kick # $nick codes | halt }
if ($eval($regex($strip($1-),/[[:upper:]]/g)) > 49) { .kick # $nick caps | halt }
if ($eval($regex($strip($1-),/[[:digit:]]/g)) > 49) { .kick # $nick number | halt }
if ($eval($regex($strip($1-),/[[:punct:]]/g)) > 49) { .kick # $nick symbol | halt }
if ($eval($regex($strip($1-),/[ ]/g) > 49)) { .kick # $nick blur | halt }
if ($eval($regex($strip($1-),/[€-Ÿ|?ÿ]/g)) > 49) { .kick # $nick ascii | halt }
if ($eval($regex($1-,/[[:lower:]]/g) > 199)) { .kick # $nick lenght | halt }
}

%variables + $eval + $regex + If

alias oneroof {
var %cntrl = $eval($regex($1-,/[[:cntrl:]]/g)) | if (%cntrl > 49) { .kick # $nick codes | halt }
var %upper = $eval($regex($strip($1-),/[[:upper:]]/g)) | if (%upper > 49) { .kick # $nick caps | halt }
var %digit = $eval($regex($strip($1-),/[[:digit:]]/g)) | if (%digit > 49) { .kick # $nick number | halt }
var %punct = $eval($regex($strip($1-),/[[:punct:]]/g)) | if (%punct > 49) { .kick # $nick symbol | halt }
var %blank = $eval($regex($strip($1-),/[ ]/g)) | if (%blank > 49) { .kick # $nick blur | halt }
var %ascii = $eval($regex($strip($1-),/[€-Ÿ|?ÿ]/g)) | if (%ascii > 49) { .kick # $nick ascii | halt }
var %lower = $eval($regex($1-,/[[:lower:]]/g)) | if (%lower > 199) { .kick # $nick length| halt }
}

Hash Tables + $eval + $regex + If

alias oneroof {
hadd -u2m a $nick $eval($regex($1-,/[[:cntrl:]]/g)) | if ($hget(a,$nick) > 49) { .kick # $nick codes | halt }
hadd -u2m b $nick $eval($regex($strip($1-),/[[:upper:]]/g)) | if ($hget(b,$nick) > 49) { .kick # $nick caps | halt }
hadd -u2m c $nick $eval($regex($strip($1-),/[[:digit:]]/g)) | if ($hget(c,$nick) > 49) { .kick # $nick number | halt }
hadd -u2m d $nick $eval($regex($strip($1-),/[[:punct:]]/g)) | if ($hget(d,$nick) > 49) { .kick # $nick symbol | halt }
hadd -u2m e $nick $eval($regex($strip($1-),/[ ]/g)) | if ($hget(e,$nick) > 49) { .kick # $nick blur | halt }
hadd -u2m f $nick $eval($regex($strip($1-),/[€-Ÿ|?ÿ]/g)) | if ($hget(f,$nick) > 49) { .kick # $nick ascii | halt }
hadd -u2m g $nick $eval($regex($1-,/[[:lower:]]/g)) | if ($hget(g,$nick) > 199) { .kick # $nick length | halt }
}

If + $eval + $regsub

alias oneroof {
if ($eval($regsub($1-,/[[:cntrl:]]/g,,%ni3)) > 49) { .kick # $nick codes | halt }
if ($eval($regsub($strip($1-),/[[:upper:]]/g,,%ni3)) > 49) { .kick # $nick caps | halt }
if ($eval($regsub($strip($1-),/[[:digit:]]/g,,%ni3)) > 49) { .kick # $nick number | halt }
if ($eval($regsub($strip($1-),/[[:punct:]]/g,,%ni3)) > 49) { .kick # $nick symbol | halt }
if ($eval($regsub($strip($1-),/[ ]/g,,%ni3)) > 49) { .kick # $nick blur | halt }
if ($eval($regsub($strip($1-),/[€-Ÿ|?ÿ]/g,,%ni3)) > 49) { .kick # $nick ascii | halt }
if ($eval($regsub($1-,/[[:lower:]]/g,,%ni3)) > 199) { .kick # $nick length | halt }
}

%variables + $eval + $regex + If + DLLs

alias oneroof {
var %cntrl = $dll(one.dll,Flood,$+(cntrl,$chan,$nick,$ticks $eval($regex($1-,/[[:cntrl:]]/g))) 50 1) | if (+FLOOD* > %cntrl) { .kick # $nick codes | halt }
var %upper = $dll(one.dll,Flood,$+(upper,$chan,$nick,$ticks $eval($regex($strip($1-),/[[:upper:]]/g))) 50 1) | if (+FLOOD* > %upper) { .kick # $nick caps | halt }
var %digit = $dll(one.dll,Flood,$+(digit,$chan,$nick,$ticks $eval($regex($strip($1-),/[[:digit:]]/g))) 50 1) | if (+FLOOD* > %digit) { .kick # $nick number | halt }
var %punct = $dll(one.dll,Flood,$+(punct,$chan,$nick,$ticks $eval($regex($strip($1-),/[[:punct:]]/g))) 50 1) | if (+FLOOD* > %punct) { .kick # $nick symbol | halt }
var %blank = $dll(one.dll,Flood,$+(blank,$chan,$nick,$ticks $eval($regex($strip($1-),/[ ]/g))) 50 1) | if (+FLOOD* > %blank) { .kick # $nick blur| halt }
var %ascii = $dll(one.dll,Flood,$+(ascii,$chan,$nick,$ticks $eval($regex($strip($1-),/[€-Ÿ|?ÿ]/g))) 50 1) | if (+FLOOD* > %ascii) { .kick # $nick ascii | halt }
var %lower = $dll(one.dll,Flood,$+(lower,$chan,$nick,$ticks $eval($regex($1-,/[[:lower:]]/g))) 200 1) | if (+FLOOD* > %lower) { .kick # $nick length | halt }
}

Swear & Advertise Protection

if ($pos($level($strip($1-)),swr,0) = 1) { .kick # $nick swear | halt }
if ($pos($level($strip($1-)),adv,0)) { .kick # $nick advertise | halt }

var %swr = $pos($level($strip($1-)),bad,0) | if (%swr == 1) { .kick # $nick swear | halt }
var %adv = $pos($level($strip($1-)),adv,0) | if (%swr == 1) { .kick # $nick advertise | halt }

hadd -u2m t $nick $pos($level($strip($1-)),bad,0) | if ($hget(t,$nick) == 1) { .kick # $nick swear | halt }
hadd -u2m v $nick $pos($level($strip($1-)),adv,0) | if ($hget(v,$nick) == 1) { .kick # $nick advertise | halt }

var %swr = $dll(one.dll,Flood,$+(swr,$chan,$nick,$ticks $pos($level($strip($1-)),bad,0)) 1 1) | if (+FLOOD* > %swr) { .kick # $nick swear | halt }
var %adv = $dll(one.dll,Flood,$+(adv,$chan,$nick,$ticks $pos($level($strip($1-)),adv,0)) 1 1) | if (+FLOOD* > %adv) { .kick # $nick advertise | halt }

* Sila tambah dibahagian Users (Boleh diubah suai)

adv:*#*
adv:*http://*
adv:*www.*
adv:*ftp://*
adv:*/server*
swr:*suck*
swr:*fuck*
swr:*shit*

Repeat & Row Protection

hinc -u3m row [ $+ [ # ] ] $nick 1 | if ($hget(row [ $+ [ # ] ],$nick) = 5) { .kick # $nick lines }
hinc -u3m rep [ $+ [ # ] $+ [ $nick ] ] $hash($remove($strip($1-),$chr(160),$chr(32)),32) 1 | if ($hget(rep [ $+ [ # ] $+ [ $nick ] ],$hash($remove($strip($1-),$chr(160),$chr(32)),32)) = 3) { .kick # $nick repeat }

Ctcp & Ctcp Reply

ctcp !@*:*:#: { $iif($me isop # && $nick isreg #,.kick # $nick ctcp,halt) }
on *!@:CTCPREPLY:*: { $iif($me isop # && $nick isreg #,.kick # $nick ctcpreply,halt) }

DCC Exploit

on *:CLOSE:@x*:{ .debug -i NUL dxz }
on *:connect:{ window -h @dxz | .debug -ipt @dxz dxz | window -h @dxz }
alias dxz {
if ($regex($1, /^<- :([^!]*)![^@]*@[^ ]*\s*PRIVMSG\s*(\S*)\s*:\001\s*DCC\s*(SEND|RESUME).*"(?:[^" ]*\s){32}.*$/i)) {
var %nk = $regml(1), %ch = $regml(2), %type = $regml(3)
.ignore -du5 %nk
.hinc -mu5 send resume
if ($hget(send,resume) isnum 0-20) && (%nk ison %ch) {
!kick %ch %nk dcc exploit
}
hinc -mu2 v w
if ($ibl(%ch,0) < 49) && ($hget(v,w) < 12) {
.set -u2 %bb $addtok(%bb,$address(%nk,3),32))
.timerx $+ %ch 1 1 !mode %ch $str(b,12) %bb
}
}
return
}

Multi Ban

alias mban {
if ($ibl(#,0) > 60) { return }
.hadd -u1m mb $nick $+ !*@*?????
.timerG 1 1 .mode $chan + $+ $str(b,$hget(mb,*).item) $hget(mb,1).item $hget(mb,2).item $hget(mb,3).item $hget(mb,4).item $hget(mb,5).item $hget(mb,6).item $hget(mb,7).item $hget(mb,8).item $hget(mb,9).item $hget(mb,10).item $hget(mb,11).item $hget(mb,12).item
}

Limit Kick

alias kick {
$iif($me !isop #,halt)
.inc -u3 %lk
If (%lk <= 20) { .raw -qmcH kick # $nick $1- | ignore -u5 $nick } | . mban $1 $2 | Else { Halt }
}

Signal Event

Example :

alias oneroof {
if ($regex($1-,/[[:punct:]]/g) > 49) { $banjir(one,#,$nick,symbol)) | halt }
}

alias banjir { haltdef | .signal -n $1- }

on *:signal:one: { .raw -qmcH kick $1 $2 $3- }

* $1 == # , $2 == $nick , $3- == reason kick

Halted RAW

raw 001:*:{ halt }
raw 002:*:{ halt }
raw 003:*:{ halt }
raw 004:*:{ halt }
raw 005:*:{ halt }
raw 006:*:{ halt }
raw 007:*:{ halt }
raw 008:*:{ halt }
raw 009:*:{ halt }
raw 250:*:{ halt }
raw 251:*:{ halt }
raw 252:*:{ halt }
raw 253:*:{ halt }
raw 254:*:{ halt }
raw 255:*:{ halt }
raw 265:*:{ halt }
raw 266:*:{ halt }
raw 494:*:{ halt }
raw 353:*:{ halt }
raw 367:*:{ halt }
raw 368:*:{ halt }
raw 401:*:{ halt }
raw 441:*:{ halt }
raw 442:*:{ halt }
raw 375:*:{ halt }
raw 376:*:{ halt }
raw 372:*:{ halt }
raw 302:*:{ halt }
raw 478:*:{ halt }
raw 366:*:{ halt }

Speed Check

f1 { .set %one $ticks | set %deltok 1 | :start | if ($calc($ticks - %one) <= 100) { inc %deltok | goto start } | msg $active My Connection Speed Is $round($calc((%deltok * 3.13) / 97 ),2) Kbps | unset %deltok | unset %one }

 

1