How can i dectect bot join server, any idea or hint on this?
I don't understand, can you explain more ?Quote:
content id
Thank, I will try to find differentQuote:
its all about creativity, think about what bot differs from a normal client, i could think of a few things, that would make this much easier to handle.
easiest method would be via a filter.
Quote:
I don't understand, can you explain more ?
Thank, I will try to find different
I have find some different e.g.: only normal user login via launcher has sent packet 0x6104 (set locale) and bot only handshake and accept handshake only one time.
I only use mbot for test, i think it right with orther bot because bot only load sro_client and auto set locale = 22 when send login packet (vsro). was i right ?
Sorry for my poor English
Sorry, but.. Is locale the best way to implement that?Quote:
0x6104 is opcode used to request notices to display in launcher.
I don't think the fact that bot only connects once (skips launcher part) is going to help you (you can always start launcher and then bot).
I'm not 100% sure whether mbot does this but content_id (locale) can be taken from media.pk2 You could change content_id in media and modify sro_client to send different value. This will let you know whether client or bot is used.
All this can be worked around simply by putting another "filter" between the bot and server.
Any difference will do. Locale is the easiest because its fairly easy to do. You can also swap MsgId's and detect third party tools on this (Joymax did that with (Drews?) Clientless Tool in the past). You could also mess with the handshake (e.g. change the Polytable of CRC, mess with the count byte seed. The third-party tool's proxy will use the unmodified one, for sure). Advantage on this one is, that you can detect a third-party-tool even before it is fully connected.Quote:
Sorry, but.. Is locale the best way to implement that?
measuring the "time" between packets is not a good idea. i know the locale change can be bypassed easily, but, the average player does not know HOW TO.Quote:
The locale is a bad practice, it is very common, and it can be bypassed easily, and you will be forced to change your server locale id.
Messing with the cyclic redundancy check would not only block clientless, but will probably make Bots not work on your server.
There is a packet that is being sent from the server from all connections but clientless, i did this part long time ago, hit me up if u want it.
Furthermore, i could think of a way u could measure the time of packets between the login animation (when u press enter after being connected to the server, its a black screen animation, than your chars appear in CPS_CharSelect screen), a clientless is not affected by the animation obviously.
but thats just my way of thinking there are several ways to achieve that.