Jump to content

[::X-System::]

Members
  • Posts

    286
  • Joined

  • Last visited

Posts posted by [::X-System::]

  1. ... I'm guessing you're trying to avoid using dlls to "pretty up" your dialog? If not, why not put a bit in?

    I think i will eventually pretty the dialog up a bit, and i guess i'll use MDX coz I'm still racist to it. It's true DCX has got way more functions, but i'm not really a fan of using a 1+ mb dll, leaving aside the stability and mIRC crashing issues.

  2. 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.

  3. 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)--~

  4. @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.

  5. 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 :)

  6. Someone paid him to make a script but if there was no contract or written agreement stating the script belonged to the person paying money for this guy to make it, then he can do whatever he likes with it.

    pretty much true, he got nothing on me "officialwise", but yeah I think he expects me not to release it since it was built on his request and also that it wouldn't be fair releasing something to ppl for free if someone had it paid for

     

    *shrugs*

     

    * update: the last tab is almost done, will be posting a ss of it and some ss of the script in action during some huge botnets flood soon

  7. erm ok Iam just confussed as to who made this? you or the friend? if it was you ..well you have notting to ask! he asked for a protection system you made it and you offer it to others...simple case closed! :fixed:

    makes sense :P

  8. Then don't. You don't even have to say that to give people an impression with a touch of honey.

    I'm not certain if it's wrong either, will have to ask the one who requested it and i will sure release it if that's ok for him.

  9. Something i've been working on the past few days, originally requested by a DALnet pal.

    Not sure if It'll be right to release it, will look into that late.

     

    (Still working on Tab 6: "Drones and random patterns")

     

    capture525200973929am83.png

     

    capture525200973929am83.png

     

    capture525200973929am83.png

     

    capture525200973929am83p.png

     

    capture525200973929am83.png

     

  10. if you are just on Koach you could have

     

    i think this is correct

     

    alias koach { server -m irc.koach.com }

    - when you do /koach on taskbar it will connect

    alias autojoinkoach {
    join #test
    join #tg007
    }

    ** when you do /autojoinkoach it will join these rooms

     

     

    or have

     

    on *:CONNECT: {
    if ($server == irc.koach.com) {
    autojoinkoach
    } 
    }

    $server will not be irc.koach.com, Koach's servers are irc[1-4].koach.com, however, best and most reliable way for an autojoiner is $network, and you don't really need 2 lines of /join since mIRC allows you to /join #chan,#chan2,#chan3 ;)

  11. Ok, this is my latest thing, and technically it's my 1st mIRC addon that doesn't serve mIRC/IRC. It's pretty much self explanatory in the screenies below.

    I was originally inspired by the famous TempClean utility by Milan Jaukovic

     

    - Screenshots

    f_2m_0be724d.png

    f_1m_7f0ff00.png

     

    - In action

    f_untitledm_c3c08f6.png

  12. Think about h ow pissed I would be, as a user, if I tried to close your dialog and it wouldn't let me. :P

    You haven't read my last post well, have you :P

    The dialog must be kept open till the code is done processing, besides, there will be an Exit button (wich will be disabled during code processing, and enabled back on once done)

     

    either this, or i'll have to add some kinda checker within every loop, wich will slow the code processing down way more than it is already ;<

     

    EDIT:

    I'm talking about REALLY HUGE loops here lol

  13. hmm Ok, actually i just found the noclose feature, but the file doesn't tell about unsetting this or toggling it back off.

    What i needed to do is more like

    bleh {
      disable closure
      do stuff
      enable closure back on
    }

×
×
  • Create New...