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 }
|