[TDH]Boss Posted February 6, 2007 Share Posted February 6, 2007 I am not sure about functions of upcoming MTA DM release, but I hope that we're going to have CPU ID ban. If you haven't implented it already, then here's a little function for getting CPU ID, which has to be impelnted in the client. Then you should send it to the server and store in some file. public string GetCPUId() { string cpuInfo = String.Empty; string temp = String.Empty; ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (cpuInfo == String.Empty) {// only return cpuInfo from first CPU cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); } } return cpuInfo; } The code is in C#, but it is not difficult to convert it, as C# and C++ are parts of one platform (.NET). P.S. Global ban by CPU ID isn't violent. It is what I call justice. Noone would cheat ever. Thanks. Link to comment
Jani Posted February 6, 2007 Share Posted February 6, 2007 Any hardware address can be spoofed. If a person is really adamant about getting around a ban like that, they will. The only 'effective' ban is an account ban, which requires an authentication system. The downside to the mod being free is that people will just register multiple accounts. Therefore the most effective way of banning is to do it by multiple addresses: IP (subnet if needed), network card mac, cpu mac, HD mac etc. Link to comment
BTH Posted February 6, 2007 Share Posted February 6, 2007 I am not sure about functions of upcoming MTA DM release, but I hope that we're going to have CPU ID ban. If you haven't implented it already, then here's a little function for getting CPU ID, which has to be impelnted in the client. Then you should send it to the server and store in some file. public string GetCPUId() { string cpuInfo = String.Empty; string temp = String.Empty; ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (cpuInfo == String.Empty) {// only return cpuInfo from first CPU cpuInfo = mo.Properties["ProcessorId"].Value.ToString(); } } return cpuInfo; } The code is in C#, but it is not difficult to convert it, as C# and C++ are parts of one platform (.NET). P.S. Global ban by CPU ID isn't violent. It is what I call justice. Noone would cheat ever. Thanks. You're mixing up C++ and Microsoft Visual C++. Native C++ does not use .net Link to comment
[TDH]Boss Posted February 6, 2007 Author Share Posted February 6, 2007 Therefore the most effective way of banning is to do it by multiple addresses: IP (subnet if needed), network card mac, cpu mac, HD mac etc. I'm giving you an example. I do also have functions for banning by netword card ID, HDD ID and some others. I do still think that banning by CPU ID is enough. Most cheaters are stupid kids who only know how to turn their computer on and how to download cheats. You're mixing up C++ and Microsoft Visual C++. Native C++ does not use .net I meant Miscrosoft Visual C++. Link to comment
Ravenheart Posted February 6, 2007 Share Posted February 6, 2007 If its something that can be added easily why not do it? Ban by multi IP-adresses is plain stupid cuz most people have dynamic IPs and they can always run MTA via a socks proxy server. Link to comment
BTH Posted February 6, 2007 Share Posted February 6, 2007 If its something that can be added easily why not do it? Ban by multi IP-adresses is plain stupid cuz most people have dynamic IPs and they can always run MTA via a socks proxy server.It can't be added easily AFAIK. The source code he posted was for .NET. MTA is coded in native C++. Link to comment
Jani Posted February 6, 2007 Share Posted February 6, 2007 If its something that can be added easily why not do it? Ban by multi IP-adresses is plain stupid cuz most people have dynamic IPs and they can always run MTA via a socks proxy server. First of all, IP range banning IS effective against the majority of cheaters since normally only the last or the last two octets of the IP will change, the downside is that innocent players may be affected. As for proxying MTA over SOCKS proxy, I don't think that's possible. The only way I can think of is tunnelling it over SSH, which would be quite hard too. Link to comment
[TDH]Boss Posted February 6, 2007 Author Share Posted February 6, 2007 First of all, IP range banning IS effective against the majority of cheaters since normally only the last or the last two octets of the IP will change, the downside is that innocent players may be affected. ROFL. There is a provider in Russia, called "stream". Ths provider has a lot of subnets (smth about 4 different *.* subnets). As you could already guess, IPs are dynamic and any stream user can easily change his IP. The situation is, that for banning 1 (ONE) cheater, who is constantly changing his nick and IP, we have to ban 100-200 innocent people. That's why banning by CPU ID is required. Link to comment
Jani Posted February 6, 2007 Share Posted February 6, 2007 Out of those 200 innocents, how many will be MTA players, and out of that extremely small percentage, how many of them will want to play on your server? Link to comment
lil Toady Posted February 6, 2007 Share Posted February 6, 2007 Out of those 200 innocents, how many will be MTA players, and out of that extremely small percentage, how many of them will want to play on your server? That's the point, they ban thousands of people, and about 100-200 players who visit their server (/me knows that, /me is russian too) Link to comment
Ravenheart Posted February 6, 2007 Share Posted February 6, 2007 Jani, do you have to deal with stubborn cheaters every day. Do you belive a IP range ban will stop those cheaters? Check this out it takes a cheater just a few seconds to exit MTA, go pick another socks proxy and come back in. Ever have a case where you ban a person around 20 times and after 10-15 secs he's back in, rams you and writes a chat message "hey admin, i'm back ~ ". Please tell me how i can ban/mute/freeze/deep freeze/burn till black this kind of cheater. Link to comment
[TDH]Boss Posted February 7, 2007 Author Share Posted February 7, 2007 Out of those 200 innocents, how many will be MTA players, and out of that extremely small percentage, how many of them will want to play on your server? That's the point, they ban thousands of people, and about 100-200 players who visit their server (/me knows that, /me is russian too) True. Subnet ban is not the way of justice Jani. Jani, do you have to deal with stubborn cheaters every day. Do you belive a IP range ban will stop those cheaters? Check this out it takes a cheater just a few seconds to exit MTA, go pick another socks proxy and come back in. Ever have a case where you ban a person around 20 times and after 10-15 secs he's back in, rams you and writes a chat message "hey admin, i'm back ~ ". Please tell me how i can ban/mute/freeze/deep freeze/burn till black this kind of cheater. Ban him by CPU ID. There are actually 3 ways of effecient banning cheaters: 1) Locking their accounts. But I still do not see the problem to create the new account using another IP. 2) Making an ideal anticheat. That is still impossible, as some "kind" man like s0beit would just hack everything again. 3) Banning by parameters of computer. That is possible to change, for example, CPU ID, but as I have already said, most of the cheaters are just stupid kids. I doubt that they are able to even open their computer (their parents' computer I mean ). And so, if to mix all these 3 ways + add global banning system (smth like banning on 3 respectable servers results as addind this cheater's CPU ID (or smth) to global black list), I do not think that we will encouter cheaters in MTA:DM ever. Wouldn't that be nice? Link to comment
lil Toady Posted February 7, 2007 Share Posted February 7, 2007 Well, banning by CPU id doesn't look that good too as there are many ways to go round it. That id has to be sent from the client which is very unsecure, any packet changing will solve your ban. You know that there were lots of bots and client injectors in mta0.x, if they make such for mta:sa they will send any CPU Id they want they could even abuse it. Imagine, a player joins my server, i get his cpu id, then go and hook my mta client to send that cpu id of another player and he gets banned for me everywhere Link to comment
[TDH]Boss Posted February 7, 2007 Author Share Posted February 7, 2007 Well, banning by CPU id doesn't look that good too as there are many ways to go round it. That id has to be sent from the client which is very unsecure, any packet changing will solve your ban. You know that there were lots of bots and client injectors in mta0.x, if they make such for mta:sa they will send any CPU Id they want they could even abuse it. Imagine, a player joins my server, i get his cpu id, then go and hook my mta client to send that cpu id of another player and he gets banned for me everywhere That's what information protection is for. You can encrypt some code in the packet, mix it with the CPU ID, and then make a check on the server. If the code is wrong - the packet has been changed. That is much easier than hacking deep into GTA to cync everything there, so I doubt that MTA Team won't handle it. Link to comment
lil Toady Posted February 7, 2007 Share Posted February 7, 2007 Have you ever seen the mta0.5 encryption, it looks so messy that i believe i'd never hack it, but woah.. it got hacked Link to comment
[TDH]Boss Posted February 7, 2007 Author Share Posted February 7, 2007 Have you ever seen the mta0.5 encryption, it looks so messy that i believe i'd never hack it, but woah.. it got hacked I actually didn't. But still, that's not the reason for abandoning this part of MP. Information must be secured at all costs. That is hardly less important than having a good cync. Link to comment
Manej Posted February 8, 2007 Share Posted February 8, 2007 I don't think any of us is in a position to say what has to be added. I'm a server admin; I deal with cheaters everyday. I personally enjoy wasting a cheater's time by banning them until they give up. You can ban by DNA nucleotide sequence: it doesn't matter. It WILL be spoofed, and it WILL be circumvented. Don't want cheaters? Turn off your server. There is no foolproof method of banning. Link to comment
lil Toady Posted February 8, 2007 Share Posted February 8, 2007 You can ban by DNA nucleotide sequence: it doesn't matter. It WILL be spoofed, and it WILL be circumvented. Don't want cheaters? Turn off your server. There is no foolproof method of banning. Yeah, i totally agree. It's better to have a bit more good admins to watch for the cheaters and ban em the good old way. (Not like you can remember Boss, when in mta0.x there was only one admin on gta.ru, who didnt give any admin rights to other players and who didnt even join the server much himself ) Link to comment
[TDH]Boss Posted February 8, 2007 Author Share Posted February 8, 2007 You can ban by DNA nucleotide sequence: it doesn't matter. It WILL be spoofed, and it WILL be circumvented. Don't want cheaters? Turn off your server. There is no foolproof method of banning. There IS foolprof methof of banning. I have already described it above. I doubt there' a man who is going to change his IP, CPU ID, Nick, Account everytime he gets banned. What do we have now? I ban a man and he returns to server 30 seconds later with a new nick (which I do not know for that moment) saying smth like "admin, you suck". I ban him againg, and everything repeats. He won't "give up" as he enjoys this process and feels that he is so smarter and quicker than the admin that he can cheat without any punishment. Should I say what happens when I leave the server? Right, 5 more cheaters join, all with the dynamic IPs and it becomes cheating server. Well, I can get cheater banned after 4*255=1020 bans, but the result is the same with subnetban - 200 innocent people banned. At least 20 of them are flooding the forums asking "why am I banned?" and I have to explain that we had to ban the whole provider because of one stupid cheating damned child. Link to comment
Lággy Posted February 8, 2007 Share Posted February 8, 2007 I say that CPU idea is the best way. All it needs is some detection code. But even that is hackable. Link to comment
Clerlic Posted February 8, 2007 Share Posted February 8, 2007 It's pretty much impossible to prevent 100% of cheats today, maybe in the future where the cpu's and internet connections are trillions of times faster then now, and all the game data is calculated on the server, which feeds the game progress on people's computers like a video feed. Link to comment
Manej Posted February 8, 2007 Share Posted February 8, 2007 How many people would go back and do all that just to get back on the server? I know quite a few. Oli made a post on the Dev Blog before the site update talking about the ban system. From what he said, it sounds like it should be quite sufficient. Perhaps you could make a multiplayer mod that bans by CPU. Link to comment
Oli Posted February 9, 2007 Share Posted February 9, 2007 I've noted whats been said in this thread guys and I'll discuss it with the rest of the team and see what we decide. Thanks for the code snippet btw, but i'm afraid thats pretty useless to MTA as its coded in C#. Fortunately we know what we're doing so we won't have any problem coming up with a way of getting any hardware id's. Oli Link to comment
Guest Posted February 23, 2007 Share Posted February 23, 2007 I have found something about cpu id Main thread http://www.codeguru.com/forum/showthread.php?t=372498 Following thread http://www.codeguru.com/forum/showthread.php?t=355953 http://www.codeguru.com/forum/showthrea ... +processor More info about intel cpu id at the end of the thread http://www.codeguru.com/forum/showthread.php?t=307205 Oli I hope it works, i want to make cheaters hard to get unbanned in nice servers. Link to comment
lil Toady Posted February 23, 2007 Share Posted February 23, 2007 I believe mta team knows how to get IDs of different hardware stuff, the prob is that even that could be hacked/changed or whatever, you wont even need to change the IDs, only to edit the outgoing packet with this info Link to comment
Recommended Posts