The problem with bots and how to fix them...
" I have been thinking about your post and this video kind of sums up my argument http://www.youtube.com/watch?feature=player_detailpage&v=5GgflscOmW8#t=11s |
|
|
Just want to point out that IP ban is pointless. Many people (>95 % of people in my country) are with service providers that provide dynamic IP addresses. Hence every time you restart router, your IP changes.
|
|
|
Its not so easy to get around being caught virtualizing.. heres a quick run down of how you can catch two of the most common virtualization software suites for example..
Both Virtual PC and VMWare allow you to install "add-in"s to accelerate emulation, allow drag-n-drop from your real desktop to your virtual desktop, and allow file sharing between your real machine and the virtual machine. In order to accomplish this task, a communication mechanism between the virtual machine software and the virtual machine itself must exist. This sort of interfacing is called a "backdoor interfacing", since, using a special/undocumented mechanism, certain commands can be carried and interpreted in a different manner (by the virtual machine software) unlike having them interpreted by the real machine. How to detect Virtual PC As you may already know, every machine has a defined set of instructions commonly referred to as Instruction Set Architecture (ISA). When an invalid instruction (that is not present in the ISA) is encountered, the machine raises an exception of the type "Invalid Opcode". The software can either handle the exception (using the usual try/catch mechanism), let the operating system handle the exception, or crash the machine in worst cases. Virtual PC uses a bunch of invalid instructions to allow the interfacing between the virtual machine and the Virtual PC software. Here's what happens when Virtual PC's virtual machine wants to talk with Virtual PC: The program sets exception handlers (try/catch blocks). Set needed parameters before calling the VM software. Issue a special "Invalid Opcode" instruction. VM software will recognize this invalid opcode and act accordingly, causing no exception if VPC was present, and an exception if VPC isn't present. The program's "catch" block will handle the exception and examine the returned parameters for the presence/absence of VM software. In short, Virtual PC uses the "Invalid Opcode" mechanism as a backdoor. Detecting VMWare.. The Intel x86 provides two instructions to allow you to carry I/O operations, these instructions are the "IN" and "OUT" instructions. These two instructions are privileged instructions and cannot be used in a user-mode (while in protected mode) process unless the necessary privileges are enabled, so using them in normal cases will cause an exception of the type: "EXCEPTION_PRIV_INSTRUCTION". VMWare uses the "IN" instruction to read from a special port. This port does not effectively exist, however when VMWare is present, that port will be the interface between the virtual machine and VMWare. So now that you have detected that your in a VM what do you do? The CPU of the virtual machines’ host computer is one of the few components that is not virtualized, and therefore any CPU characteristics obtained from within a VM will be taken from the ‘real’ CPU. The “CPU Info” is based on multiple CPU related properties (CPU name, manufacturer/ vendor, model, family, stepping, UUID...etc) and the probability of multiple machines having identical CPU signatures is low. In this way its fairly safe to say that banning based upon a particular CPU UUID is a safe bet. Now another option I posit is to look at trade values. Its not to difficult for GGG to assign items a currency value similar to how gold trader and currency value sites do. Plug in a small fudge factor and then its easy for GGG to detect trades that are made which are extremely unbalanced. (someone recieving 10-15 exalts for nothing)... There are downsides that I would say each flagged transaction would need to be reviewed hence man hours. This is something we would want to avoid. Now what about limiting the number of currency that a single account (not toon) can have? This can stop gold sellers which usually stockpile by the ton. This is somethign I believe should be easy for GGG to do... look for toons which have far to much currency and perform a small investigation. Since these accoutns usually dont work alone (usually bots come in groups to get the bonus from high IIQ and IIR) it would be easy to catch large swathes with minimal research. Hueristically catching groups of more than 3 or 4 which have been running together for 4-5+ hours would also be a good place for them to find bots. Very few people play groups that long that much. I would even say that compared to most MMOs this game has a very large solitary crowd. Again.. these last two ideas require man hours. Of course I would say that there is enough people playing this game who hate botters for GGG to be able to afford a few "bot hunters" that are paid with premium content. Anyways... good to see such a healthy discussion going on here. --Bishop-- IGN: DeathIsMyBestFriend, Illirianah
|
|
|
I like your idea of the UUID on the CPU as an identifier. Drop the account, and drop the UUID from the "playable" list. Sure they can go create another account, but would it be feasible to change out the CPU everytime they are caught. I would also like to throw in that just because they are F2P, doesn't mean they couldn't have a P2P league that we could choose to be in(similar to private leagues, but open to anyone who pays).
|
|
" You can't trust anything under the user's control. DLL injection intercepts the OS call for the CPUID and inserts a fake one. Or just patch that part of the client out. It's under your full control, mon. You could get the casual botters, but not the professionals. No way. These sorts of threads: Ground Hog Day. |
|
|
Hmm, interesting. Can a DLL intercept a hardware call from another DLL without being identified. If so, yea, pointless, but if not, add to the mix a warden type program that monitors for such activity and I think we would be in business. I think the expectations of completely removing any possibility of botting is a tad high, as you can never eliminate the determined. Making it impractical for the knowledgeable should suffice.
" |
|
|
The ultimate escalation of all this is the game manufacturer in effect makes a root kit, and tries to use it as enforcement. At that point, you realize your customers also have their own nuclear weapons, of a sort. You can look to past nuclear exchanges on the subject if you wish. Did not end well.
So anyway. We have Blizzard, a Fortune 500 company reporting roughly 4.7B in revenue annually (2011 report), and a full arsenal of corporate assets to bring at this particular problem, and their software that you cite, called "Warden." In your opinion, do Blizzard games have bots? |
|
|
No, of course not {/sarcasm}
I believe I said warden like program. The old warden of D2 time frame looked for specific applications, not a modified DLL signature/checksum. If its an OS library used to interface with the hardware, It should be pretty safe to say that the signature is well known. Any alteration to that DLL(or the game code itself) should be pretty easy to identify. " |
|
" You are not so bright are you? There were a bunch of ppl(check youtube for some videos) who botted and made 10k $ in the first week of the d3 RMAH. Thats 7 days. |
|
|
Dealing with botters is for the most part dealing with gold sellers. As I said before in a game like this the botters that run on singles accounts that are for personal use are I believe the "small fries" of the botter problem. I do not believe that they have a significant impact on game economy. Its only when its scaled up to the level of gold sellers that they become an issue. In this case 1 computer run by a gold seller is the equivalent of 10-12 single personal users.. and everyone knows that some of these gold sellers run in the neighborhood of 20+ servers easily.
As far as stoping them as said before its not a matter of making the one perfect catchall program/method. Its more of the shotgun approach.. the combination of many techniques each catching, flagging, and banning them to the point of making it not a feasible business for the gold sellers. Eve Online is a good example of what can happen with the shotgun approach. Gold sellers quickly stopped selling Eve "ISK" when their botter programs started getting caught and accounts banned in droves. Unholy Rage they called it. GGG could follow a similar implementation... catch the accounts and flag them.. then when you have a valid signature down ban thousands of bot accounts at once and push out a scanner that looks for that signature (what ever it may be.. UUIDs, background programs, memory injections..). This forces an arms war.. bot developers try to outsmart the signature... GGG trys to catch/ban the bot accounts. The trick is to not let the bot developer know that you have their signature... this can be accomplished a variety of ways... ban letters with misdirection for the reason of the ban, delaying the ban for 24-36 hours after being flagged so that botter has no idea what exactly the've done to get caught. I've personally always favored the "time bomb" currency. Currency has a shelf life for usage. If not used within 4-5 days the currency expires and is deleted. Game term wise this would be a good way to start a currency "sink" which flushes currency and forces it to be used by true gamers. Currency would be good to trade for a short while but would be kept from stockpiling. In addition currency near the end of its shelf life would be less valuable as people would actually have to use it and could not keep it around to be used as further currency. This would make it extremely difficult for gold sellers to make a profit as bots would likely not be able to keep their supply high enough especially if combined with a decent ban policy. Once you can drive the gold sellers away from your game botters becomes pretty much a maintenance issue... you just need to be aware of them and catch any mass usage before the gold sellers can start up a profitable business again. --Bishop-- IGN: DeathIsMyBestFriend, Illirianah
|
|



























