Skip to content
General IRCd

- Absolute -

A TG007 community discussion started by [::X-System::].

Discussion 45 posts
Page 2 of 3
Open
Topic #13780 · 45 published posts · 13,233 views

last tab is done, changed the name of the last 2 tabs to Misc. & Misc. 2

 

newssp.png

 

ideas & suggestions would be greatly appreciated :)

on me:*:join:#:hop #

Whatever its just mirc code. It's not making anyone any money so you can feel free to do what ever you like with your creation.

repetitions

Get information about ircWx here

guys, come on, be a bit more upbeat.

 

i guess it's just something that we've seen done over and over just in slightly different ways. from kenobi to hybrid to guarddog, to who knows what else.

 

if the sole purpose is just room protection and having it good for your friend, then yea, stick with the basics as there isn't any real need to make it look flashy.

This is mine plain and simple dialog, click on the image and an open tab appears with the protection dialog you asked for!!

 

 

 

protections.jpg

 

 

 

as you can see here!

 

asthis.jpg

______________________________________________________

T.ogether
E.veryone
A.chieves
M.ore


 

 

coderirclogo.png.8580c336378f27471a13a95ffd242c9d (1).png

Great job, guys. Are any of these going to be for public use? :pizza:

repetitions

ty err0r, fixed

 

guys, come on, be a bit more upbeat.

 

i guess it's just something that we've seen done over and over just in slightly different ways. from kenobi to hybrid to guarddog, to who knows what else.

 

if the sole purpose is just room protection and having it good for your friend, then yea, stick with the basics as there isn't any real need to make it look flashy.

This was never done in either kenobi or hybrid or guarddog, protections in those 3 were normal and - compared to nowadays scripting/scripters - below average, perhaps they were sufficient for IRCx chat networks where not much abuse could take place, but i barely consider stuff like on *:text:http://*:#:{ access # add deny $address($nick,1) | kick # nick } scripting, especially if it was meant for IRCd use.

 

I tried my best to make Absolute flood proof during huge botnets attacks and it has proven it so far, everything is entirely queued and ofcrs all mode-related stuff take $modespl in consideration while queueing.

 

Queueing theory also exists in kicking, almost all kicks are set on ms timers to check for the user's existence before sending the kick command to the server to avoid racing conditions and to keep the sendQ/rcvQ at accepted rates.

 

Another ultimate protection i might add is enhanced drones/bots hunter, it goes like:

- a pattern limiter, to allow a certain amount of nicks with the same pattern to join a channel at once. I'm using a $pattern.regex for it eg. $pattern.regex(err0r) = [a-z]+\d[a-z]

- *.dnsbl.dronebl.org check

- *.dnsbl.proxybl.org check

- TOR exit nodes check

plus the basic regex checkers that check for nicks validity. eg. vowels/ASCI/digits/weird combinations

 

Regex also became handy with the swear protection, so far i don't think anyone ever came up with a regex-based swear protection. kenobi, hybrid, guarddog and all the rest just used the basic good old isin or iswm or both, which horribly fails and all it does best is triggering on false positives. You don't want to look n00b if your swear prot kicked someone for saying a string like Charles D*ckens, for the existence of `D*ck`, but with regex'd protection matching strings like $regex($1-,/\b(D*ck)\b/i) you'd never have false positives, the same thing applies for the Host masks filter, you wouldn't need to ban a whole subnet or add stuff like ??????!~@* to the ban list anymore, since you can simple ban a certain pattern. /^(.{3})!~\1@/ and /^(.{4,9}).*!~\1@/ are 2 patterns i have on my version of the script, i made the longer one - iirc - to detect bear drones on dalnet (you might want to read about these)

 

* Yet to come: a separate dialog to set/edit various kick messages for the various protections' kicks.

 

Anyways that was just an example of differences between my prots, and the ones in kenobi & hybrid & guarddog. It's all about enhancing :)

Edited Jan 11, 2010 1:43 AM by [::X-System::]

on me:*:join:#:hop #

Chat Guardian 3.0 with Chat Defender also uses regex for swear protection. It can either block out words, or replace them with words of your choice, as well as kick, and ban. It is definitely a good choice to use. :)
Edited Jan 11, 2010 2:27 AM by Warrior124

The on text event to kick for url can also be scripted using regex to match.

 

The on text event to kick for url can also be scripted using regex to match.

it's using a HORRIBLY long regex to match all types of urls, even the evading type ending with stuff like .c0m etc. ;)

on me:*:join:#:hop #

@x-system: from memory...

 

guarddog provided a lot better support than just the simple on text stuff, where users could use the dialog i provided to make their own kicks based on the inputs. i may not have had regular expressions implemented (just with my lack of knowledge 5+ years ago when i made it, but it would be easy as now), but Choke Chain Protection definitely had all the bells and whistles for the majority of user protections.

 

as for buffering, mIRC has had that on it's own for donks, though it wasn't very good i found, not for MSN type scripts. Thanks to Petertje, and a tweak of my own, i already had a buffering system in guarddog. I could eliminate 900 flood bots in an MSN room, without getting kicked. This can be backed by several people who witnessed it in action, travis for one. and i believe this has continued on in other works such as soulfly, and warriors' stuff. so buffering is definitely not new.

 

the example you provided to say that the regular expression would never have false positives is very incorrect. Given my knowledge of regular expressions, " ck ", " dck", "ddddddddddck", etc. would trigger the regular expression you provided as an example as not delivering "false positives". From my knowledge a * would mean 0 or more of the previous character/syntax. If it works differently (to say that * means that it is just a substitute for a character, like iswm would use), how about " dock "? You cannot tell me that regular expressions are full proof either. They are just as flimsy as isin and iswm. However, it does definitely provide more power and ability to cover a larger range, and that, so i do applaud you for implementing better techniques... but yes, regex has been used for quite some time.

 

And as for banning via regular expressions, i believe it was a limitation of the server, not our ability, which meant we couldn't do it that way.

 

 

I don't mean to tear down your work, but I will tear down your attitude if you don't fully understand that much of what you've done has been done before in some form or another. It is good to do it yourself, and perhaps you will find better ways to do things. Respect is the number one thing. You must respect those that came before you for the fact that much of your understanding of what you're doing now, came from their work. Whether that be something like Kenobi which was MSN only, or an IRCd script.

 

 

 

@dj: lol, you did love those whistles... what about the bells? :P

 

in general: i though MSN was the most abused of all. I though IRCd was the most protected server side, and that it didn't exactly need things like flood protection to be created cause the server normally takes care of it? or was that a misconception?

Edited Jan 11, 2010 5:09 AM by The Gate Keeper
And as for banning via regular expressions, i believe it was a limitation of the server, not our ability, which meant we couldn't do it that way.

 

That is true. You can't do many things with regex unless you use an alias to accomplish what you need. That is what I did in Chat Guardian. My code made it to look for certain words, and performed an alias command to kick, and/or ban if Chat Defender was activated for that room. I am currently refining the code, and will have a new one available soon.

@The Gate Keeper

 

The * in D*ck isn't a literal, its just coz i can't type D!ck on the forum, it'll be modified to something else, so yes regex is totally error proof specially with /\b ... \b/ around the pattern.

 

I sure know that what I've done has been done before in some form or another, I stated that clearly actually, and i also stated that most if not all of these previous attempts would be below average if compared to nowadays scripting skills and evolution, and that for sure is a fact.

 

Hybrid, for example, didn't have a real spam/swear kicking system, it only had a .mrc file with loads of on text events, one for each word/token, which is totally pathetic and a total waste of space & system resources, leaving aside the script's performance itself. Loops, hash tables, regex and all types of functions that could made the job easier did exist back then, yet the author chose to do it the noobish buggy speed-killing way. That's why i'd call these scripts "Below Average"

 

About banning via regular expressions, ofcourse you don't use the "server" to ban regex patterns, not on IRCx or IRCd servers. You use regex to match patterns and hunt them down, so it's not about server limitations coz its not a server side issue in the first place. Regex existed since creation of mirc but no scripter actually bothered to learn it except for eXonyte if i remember correctly.

 

It's just an example off the top of my head, but check how swear/spam kickers were on kenobi and hybrid, and now imagine them properly coded with loops and regex matching and a cache file with patterns like /fag?(?:g?[eio]t)?/ or /ass?(?:h[o0]le)?/ and do the math :) yet again, authors always chose the easy way of using basic bitwise operators like isin and iswm, or even worse: writing a full event for each single word. So yeah, i do think all the examples you stated are below average, coz - again - the methods i just stated in my examples are no magic, loops and regex and everything else existed back then, but were not used for some reason.

 

Separate commands is another thing i always hated about these scripts: doing command | command 2 | command 3 instead of using $crlf when/if possible was a common pitfall everyone had in their scripts, and worse: seeing scripts doing sockwrite -tn ... | sockwrite -tn ... | sockwrite -tn ... in kenobi, instead of using $lf to achieve faster performance.

 

I could keep counting pitfalls and weak points that could have been put in a way better/faster and more stable ways all night, but i'm just pointing out examples on the fly.

 

About booting 900 flood bots, that my friend can't be called a botnet attack. MSN never had a sendQ/rcvQ, not like IRCd nets have got anyways. MSN was way less strict regarding the buffer you send to the server, and the buffer the server sends you.

 

For whoever don't know what Sendq/RcvQ are, and what makes them a pain in the neck and makes MSN prots a piece of cake compared to IRCd, here's a short intro:

On an IRCd server, there is a Send Queue and a Receive Queue for each client. The Send Queue (or SendQ) is used to store data that is waiting to be sent from the server to the client. The Receive Queue (RecvQ) is used to hold data that was received from the client for processing.

 

When the server reads data from the client, the data goes into the RecvQ. The server will process the data a line at a time as commands. The server also keeps a variable associated with each client. This variable (dubbed 'since') will be less than or equal to the server's current time value while the client is idle. Each time the server reads and processes a command line from the RecvQ, it increments this value by 2 seconds. If the line is particularly long, the variable is also increased by $int($calc($len($1-) / 120)), where $1- is the line that was read. This is to say, for each multiple of 120 the length of the line is, an additional 1 second is added to the 'since' variable. When the server reads a command from your RecvQ, it skips processing that command if the 'since' variable is more than 10 seconds ahead of the current time.

 

In simpler terms, if you pasted 10 lines to a channel, 5 of them would show to everyone right away, and the other 5 would come through every two seconds or so.

MSN had none of the above, and i could safely assume that most scripts could boot 900 bots and even more in an eye blink, coz none of the above issues were to be taken in consideration, leaving aside that botnet attacks - ones that i see all the time - are usually 3000+ drones, and it takes alot more than luck to block such attacks

 

Least but not last, the "much of your understanding of what you're doing now, came from their work" is entirely false. I learned what i learned by myself and mIRC's help file. The only help i admit asking for is regex help, and i don't recall asking anyone for help except for eXonyte and a couple of Undernet scripters. I totally respect Ozzy and the time he dedicated to mIRC scripting, but by the time Kenobi was being made, i was writing proxy leechers and mIRC based tunnels.

Edited Jan 11, 2010 5:56 AM by [::X-System::]

on me:*:join:#:hop #

while you were writing proxy leechers and mIRC based tunnels. i was out getting laid :P j/t

 

dunno why these things always turn into a I know better than you debate..

Get information about ircWx here

it's using a HORRIBLY long regex to match all types of urls, even the evading type ending with stuff like .c0m etc. ;)

Why makes you think that a regex has to be long to match all types of url, including the so-called evading type:
 if ($regex($1-,/(?<=^|\s)((?>\S{3,8}:\/\/|w{3}\56)\S+)/iS)) {

Edited Jan 11, 2010 9:52 PM by Fanfare

If you reckon spammers will use something like come to blah.com or blah.tv or blah.org etc...without using http:// or www. , just modify the regex a bit to this:

if ($regex($1-,/(?<=^|\s)((?>\S{3,8}:\/\/|w{3}\56)\S+|\S+\56\S{2,3})$/iS)) {

This should cover every kind of url links.

Edited Jan 11, 2010 10:14 PM by Fanfare
while you were writing proxy leechers and mIRC based tunnels. i was out getting laid :P

u win :<

 

Why makes you think that a regex has to be long to match all types of url, including the so-called evading type:
 if ($regex($1-,/(?<=^|\s)((?>\S{3,8}:\/\/|w{3}\56)\S+)/iS)) {

Here is your regex being tested against some false positive patterns, and returned true on all of them:

Result : 1 -- [1] http://www.

Result : 1 -- [1] www.com

Result : 1 -- [1] www./////////

Result : 1 -- [1] SCREW://YOU

Result : 1 -- [1] http://F

 

do you still think it's good? :)

If not, feel free to use mine:

; usage $isurl( )

alias isurl {
  var %p = /(?:^|[][()<>{}'"\s])((?:(?:irc|s?ftp|https?:)\/\/|www\d*\.)[^\s./]+\.(?:\[\S*?]|\(\S*?\)|\{\S*?}|[^][()<>{}'"\s]|['"](?!\s|$|[()\[\]<>]))++)/giS
  if ($regex($1,%p)) { 
    var %i 1, %rgml
    while ($regml(%i)) {
      %rgml = %rgml $ifmatch
      inc %i
    }
    return %rgml
  }
  else { return $false }
}

 

* Edit: just for the hell of it..

/(?:ftp:\/\/|https?:\/\/|www2?\.)[^<>\.\s]+(?:\.[^<>\.\s]+)+(?:\/[^<>\.\s]+)*|irc:\/\/[^<>\.\s]+(?:\.[^/<>\.\s]+)+(?:\/[^/<>\.\s]*)?\/?(?![^\s\x2c\.])|aim:goim\?screenname=[^\s&]+(?:&message=[^\s&=]+)?/

B)--~

Edited Jan 11, 2010 10:27 PM by [::X-System::]

on me:*:join:#:hop #

But who in the world would enter those false positive patterns you listed to spam? Chances are not that great. Besides, if anyone enter: come to blah.com etc.. without http:// or www. yours will return false.

Edited Jan 11, 2010 10:26 PM by Fanfare
But who in the world would enter those false positive patterns you listed to spam? Chances are not that great. Besides, if anyone enter: come to blah.com etc.. without http:// or www. yours will return false.

check my edit :) and i am not trying to match stuff.com since they are not a real url pattern, i was trying to match tricky patterns like wwwww.blah.com and www.blah.c0m etc, thats what spammers use on the nets I'm on anyways.

Edited Jan 11, 2010 10:34 PM by [::X-System::]

on me:*:join:#:hop #

interesting points you bring up x, and i do see that you have a strong understanding of it. Things like pattern matching the user IDs werem't really possible on MSN due to it using that whole "@GateKeeperPassport" bs, so regex'ing that wasn't possible back in the day. But i will admit, the majority of the concepts of the protections you're writing up sound quite solid and strong.

 

There are still a couple of limitations to MSN which i think you may still not understand fully, such as MSN would only accept so many sockwrites/commands at one time. And yes, i was using the $crlf technique as well as it was a lot better, but it capped it at like 8 commands in 1 burst before it kicked you out of the room for flooding the server.

 

I applaud you for the technical aspect and knowledge, because you definitely have shown you know what you're talking about.

 

Back to what you have shown in the screenshots... I'm guessing you're trying to avoid using dlls to "pretty up" your dialog? If not, why not put a bit in? If so, all good and i understand that as well.