• Welcome to Valhalla Legends Archive.
 

Problem With Sweepban

Started by ChR0NiC, February 15, 2004, 05:03 PM

Previous topic - Next topic

Kp

Quote from: UserLoser. on February 21, 2004, 04:56 PMI'm still yet to see something happen for flooding with whispers... People all the time on my database spam many messages at once, and nothing happens to them!

(Whispers aren't calculated same way botnet chat messages are?)

Also, what about accounts that use WebChannel?  I'd have to say that's the closest thing there is to flooding :P

It's possible they're running right at the edge of the algorithm.  Without seeing it happen, I can't comment for sure.  However, there is a special exemption hard-wired into the server to permit Webbots to whisper to Webchannel without it being dropped for flooding (all other traffic is still flood controlled).  This was necessary to prevent Webbots from flooding out upon joining large channels.
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

ChR0NiC

One thing to keep in mind, because it kept messing me up and I kept getting confused.....during that 0.5 of a second where the timer is enabled 1 ban might take place, in which it will try and capitolize on that as a person in the channel, so use an exit sub just to be safe


If Instr(Info, "was banned by") Then Exit Sub


Something along those lines....

Kp

Quote from: ChR0NiC on February 21, 2004, 07:08 PM
One thing to keep in mind, because it kept messing me up and I kept getting confused.....during that 0.5 of a second where the timer is enabled 1 ban might take place, in which it will try and capitolize on that as a person in the channel, so use an exit sub just to be safe

Sounds like your analysis routine is really buggy.  There are no commas in the ban notify message (unless you put them in the reason, but that's easy enough to detect).  You ought to be flagging only those messages which either have no spaces and no commas (listing of the final user) or messages which have a number of spaces and commas equal (this could theoretically still get confused if someone put the right number of commas in a ban reason, but some additional heuristics ought to detect and filter that).  I'll leave it to you to figure the exact logic necessary to verify someone isn't using bizarre ban reasons.
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

Spht

Quote from: ChR0NiC on February 21, 2004, 07:08 PM
One thing to keep in mind, because it kept messing me up and I kept getting confused.....during that 0.5 of a second where the timer is enabled 1 ban might take place, in which it will try and capitolize on that as a person in the channel, so use an exit sub just to be safe


If Instr(Info, "was banned by") Then Exit Sub


Something along those lines....

That's why you should be sending some binary message out which contains a cookie that would allow you to identify /who requests. You wouldn't be having those types of problems if you did. Then once you get the message back, you know that the channel listing is over, instead of using a very inaccurate constant measuring of how long it took to get a reply *on your connection* (on my connection it could take me a couple seconds to get all the results back from listing a full channel).

To over explain myself, on /who, set a bChannelScanInProgress to True then send the command along with a the binary message of your choice which uses an identifier so you can later detect that the received one was because of your /who listing. Messages you get while bChannelScanInProgress=True can be processed as channel listing (assuming they follow correct format, otherwise process them as normal). When you get your binary message back, check that it triggered in response to the one you sent after the /who, then set bChannelScanInProgress to False.

Note that Battle.net handles requests asynchronously, so on rare cases this may not always work. But it's a much better method than assuming the user is on X connection and not using up Y bandwidth.

|