Is software piracy a problem for you?
#1
Posted 17 October 2012 - 02:52 AM
I work for a company called Quadisys, we're a startup. What we have basically is a new kind of copy protection technology.
I read a blog where an indie developer claims that 95% of copies of his game were stolen/pirated! I guess we can help you with that. We will be happy to help you and to spread our technology.
Now you probably ask how come we have something different, there's been tens of companies which claimed the same, right?
I'm not sure if it makes sense to post all technical details on how it works, so only briefly.
Basic features:
- Windows only, both 32-bit and 64-bit
- no java, .net, flash, web stuff
- one time internet activation (user enters a serial number, receives protected file(s) from our server)
- we don't need your source code, only the final build (exe, dll, ...)
- if somebody breaks the protection, all the other (present and future) products wont get automatically crackable! It's something as AES/RSA and similar stuff -- if you break one password with brute force, it doesn't mean you can read everyone's emails
- one dialog on your side, server running on our side (scalable, ready for thousands of activations per minute)
Would something like this be interesting for you? As we are looking for references (and real world usage), we'd do it completely for free, servers, customer support -- everything paid by us.
#2
Posted 17 October 2012 - 04:07 AM
#3
Posted 17 October 2012 - 04:12 AM
Typical protection is just kind of wrapper. You remove the wrapper, you've got a clean, spreadable copy which can be used by anyone. So what are current 'protectors' trying to achieve is to hide this check, this comparison, to obfuscate it as someone has mentioned. But as soon as you find it (it can take hours, weeks, even months, take a look at Starforce for example -- 424 days), the product is finished and in mercy of legal (voluntary) buyers. Apropo Starforce... there's then another element and that's the way how the protection abuses your system... you can read it on wikipedia, what exactly it does, don't know about you but for me it was really scary reading.
These were the starting points for us, the things we wanted to avoid. So... what we have come with?
0. Publisher uploads (clean, unprotected) files he wishes to protect (it might be one .dll, it might be two .exe's + 10 .dlls ...) to our server
- this is of course secure, agreement-based operation, nothing for public
1. Every publisher gets a loader which he executes as the last step in his installation process
- this loader does a hardware check of your computer (looking for unique elements -- serial numbers, IDs, names, ...)
- it sends this information, along with the entered serial key to our server
- as you can see, nothing confident is sent (you can mangle the hw info but then you'll receive a file for another computer registered on your serial key)
- our response will be a file (files) tight to your computer hardware, i.e. it will run on your computer but not on your friend's one
- again, as you see, nothing hackable in this process
2. Customer runs this executable(s), if hardware matches, ok, if not, an error appears
This is how it works from user point of view. Now typical Q&A:
Q: what if I change my HW?
A: you, as publisher, can choose what hardware you expect / allow your customers to change. Plus, how many reactivations do you allow. So in practice: I think my customers are gamers, so I allow them to change video card (video card wont be included in that hardware collect operation) plus since they are crazy upgraders so I allow them to change hdd/mother board/etc three times. That also implies, that you can give your serial number to your 3 friends (or family members or computers in your weekend house), if you are sure you'll never change your hardware, yes, it's ok, I as publisher agree with it. (it's up to me to change these numbers). Plus bear in mind the number of concurrent (already activated) users are always in full control of the publisher -- thanks to the serial key + activation + database on our server.
Q: For every (re)activation I need an internet connection?
A: Yes, you do. You can alternatively sign up in an internet cafe or at your friend's place and download the file there (we'll provide web activation, too -- you bring your hw info file on an usb stick and we'll give you the protected files for your computer)
Q: What about updates?
A: You can upload the update in the same way as in the step 0, i.e. the next time user runs the activation process, new files will be downloaded. No trouble at all.
Q: OK, so how come it's uncrackable?
A: First, we do not claim it's unbreakable. We are only saying we can hold your game long enough on the game market to make some money back. We can debate how effective it is but bear in mind -- if today only 1 player of 20 pays for the product, improvement to 2 of 20 means double revenue!
Q: Cool cool, so how does it work then?
A: As I said, it's similar to cryptography. We inject your executable(s) on random places with thousands of 'crypto points'. There's huge technological background (ring0 stuff, drivers, protected memory etc) but in the nutshell it just asks about your HDD s/n, combines it with some data in the executable and generate some new code on some random place. This 'crypto points' are indistinguishable from regular code so the only way how to recognize them is to debug the app, check the result in memory, store it, patch it and.. move to another one. In a way it's similar to a series of ciphered blocks -- you can eventually crack them with brute force and combine into one but it takes time.
Q: TL;DR. What's the point?
A: The point is that if there's 6000 of these 'crypto points', you have to remove one after each another, you can't automatize it and you can't apply knowledge of one cracked product to another (because each copy is unique, each product has different code, i.e. this 'instruction mixing' happens always differently). So eventually, every game gets cracked but it will happen only after huge dedication from cracker's side and after the main sales are done (typical AAA game makes money in the first 3 weeks)
Super TL;DR version: no permanent Internet access, invisible to user, broad field of options for publisher.
I'm sorry for such a long post I just want to be sure you'll get the idea. Feel free to ask, if you haven't understood something.
#4
Posted 17 October 2012 - 04:29 AM
I'm a little leery of your software injecting random "crypto points" into my executable because games do need to run in real-time, and doing kernel mode switches and querying HW drivers and suchlike sounds like it could easily cause a perceptible performance issue if it landed in the wrong place. There would need to be some kind of control on this to ensure no ill performance effects.
And I don't know if I would be *that* confident that crackers won't be able to automate detecting and removing the crypto points.
Beyond that, the idea seems reasonably sound from a once-over. Although my personal opinion is that the best way to fight piracy is to make an excellent game that people will be happy to pay for, price it appropriately (or allow users to choose the price), make it as easy as possible to pay (even internationally), and generally don't be a dick to your customers.
#5
Posted 17 October 2012 - 04:53 AM
Reedbeta, on 17 October 2012 - 04:29 AM, said:
Quote
Quote
Quote
#6
Posted 17 October 2012 - 11:29 AM
I don't have concrete statistics to prove whether or not piracy / anti-piracy has any effect on sales. It seems mostly anecdotal. You'd have to release the game twice in two different realities to see the net effect. The big question of course, is the DRM transparent? For most gamers, they would turn a blind eye so long as the process doesn't interfere with their gaming experience. For some, any DRM is an automatic "do not purchase" flag. Things like sending personal information, online activation checks, and limited installs are usually widely contested amongst anti-drm activists. Most still put up with it as the cost of PC gaming, but it's negative attention that I would imagine no start-up company would want to have. Any failure during the initial release could spell instant doom for the company. DRM server crashes, high demand loads, or simply having an unlucky day. I've seen it happen, even amongst large companies.
The other thing I would bring up is, how do you expect to compete against a more tested, widely used, and successful DRM provider like Steam? Steam, which also provides you a market to sell your game, community features, and an SDK for integrating bonus features such as achievements and cloud support. I would say in this day and age, it would be very risky to use an unproven 3rd party DRM technology over a proven one. To many games, even from well respected companies, have fallen victim to untested DRM that backfired negatively on the company.
#7
Posted 17 October 2012 - 02:12 PM
There's nothing I'd hate more than getting more sales from DRM, then pissing it away on higher support costs.
Seems like the weak point is your executable. What's to prevent me hacking your executable to always return a positive match? Or, impersonate your server?
BTW, what's unique about your solution? Seems like that's how some popular DRM systems work anyways....
#8
Posted 17 October 2012 - 02:45 PM
quadisys, on 17 October 2012 - 04:12 AM, said:
Another posibility would be to hack into your servers, and just download all the clean executeables
Yet another posibility would be to register from a VM, and then have everybody just run the exe in the same VM.
#9
Posted 18 October 2012 - 03:52 AM
TheNut, on 17 October 2012 - 11:29 AM, said:
Quote
Quote
Quote
#10
Posted 18 October 2012 - 03:59 AM
Kenneth Gorking, on 17 October 2012 - 02:45 PM, said:
2. You could. Each of them. That's the point.
Quote
Quote
#11
Posted 18 October 2012 - 04:05 AM
alphadog, on 17 October 2012 - 02:12 PM, said:
Quote
Quote
#12
Posted 18 October 2012 - 05:25 AM
quadisys, on 18 October 2012 - 03:59 AM, said:
2. You could. Each of them. That's the point.
You said that you inject your crypto-points (CP) into the original executeable at random positions. This would mean that two executeables is unlikely to have any CP located at the same position in the file, correct? If this is so, in one exe where there will be a CP, in another exe there will just be the original code.
I could use this knowledge (assuming it is corect) to simultaneously run through 3-or-more executeables, and as long as there is no difference between the files, I dump it to the new file. When a difference is encountered, I would dump the contents of either of the 2 files that are equal, and skip over the content that is modified. I would just repeat this until the end is reached, which should result in a exe stripped of CPs.
Oh, and if you are saying that all the executeable code is encrypted, that point is moot. The file still has to be decrypted before it can be executed, and that decryption code probably exist locally in the file, which makes it easy to crack.
quadisys, on 18 October 2012 - 03:59 AM, said:
If it was me that where to do the hacking, I would start by penetrating your email servers (@quadisys.com), and start looking for emails containing info on your servers containing the clean files. Maybe an IP address, or even some admin login info. People are sometimes careless with these things.
quadisys, on 18 October 2012 - 03:59 AM, said:
#13
Posted 18 October 2012 - 07:29 AM
Kenneth Gorking, on 18 October 2012 - 05:25 AM, said:
You said that you inject your crypto-points (CP) into the original executeable at random positions. This would mean that two executeables is unlikely to have any CP located at the same position in the file, correct? If this is so, in one exe where there will be a CP, in another exe there will just be the original code.
1. You don't know which code is original and which is ours, you only see differences
2. Differences are 100%. Whole binary is mixed, moved etc. Only parts which are instructed to remain as-is will remain at the same position. This is our know how, actually.
Quote
Quote
Quote
#14
Posted 18 October 2012 - 08:52 AM
Normally we were just given a copy of the game straight off the shelf of some games shop.
It was my job to remove the copy protection, get the game to run from hard disk, inject our code into the message loop, and split the game into several downloadable modules (typically 10)
Removing the copy protection took anything from 5 minutes to 5 days. I never failed to remove the copy protection.
The problem with all copy protection schemes is that the games have to run. It is trivial to create a protection scheme that would take a monumental effort to break, but the game would be unplayable as the frame time used to handle the copy protection would leave nothing for the game.
This is the fundamental problem, it's like network security. To create a 100% protected machine is trivial. Just put your machine in a Faraday cage and never turn it on. 100% secure, and 100% useless as a computer.
I often had to handle encrypted executables, it was trivial as all I had to was wait till the game was loaded and take a snapshot of memory. I could then load this snapshot instead of the original encrypted exe.
The games that were difficult to break used the stack to build the protection code. The game would call a subroutine to say load a texture, the code left a couple of bytes of machine code on the stack, then you call a routine to do something else and it leaves a few more, until the protection code exists as a block of memory on the stack. Then you trick the machine into running this code.
Unfortunately that stage was easy to detect and remove. All that hard work and clever coding removed with a few key strokes.
The best copy protection?
Make the game SO good that everyone wants an original.
#15
Posted 18 October 2012 - 10:17 PM
Stainless, on 18 October 2012 - 08:52 AM, said:
Quote
#16
Posted 18 October 2012 - 11:25 PM
quadisys, on 18 October 2012 - 10:17 PM, said:
Yikes! Another cause for performance concerns!
#17
Posted 19 October 2012 - 04:08 AM
Reedbeta, on 18 October 2012 - 11:25 PM, said:
#18
Posted 19 October 2012 - 05:03 AM
#19
Posted 19 October 2012 - 08:43 AM
Quote
What is the point of that ?
Once the game has been hacked, it will be released. Re-encrypting the game serves no purpose.
Games can use all sort of techniques to boost sales. Having a UID in all copies that has to be registered with a server for example.
These techniques often end up annoying end users and retailers. No second hand games etc.
For me, protecting against the kid in his bedroom with a hex editor is not a priority, the people I really do worry about are the organised crime guys who can copy the CD/DVD and send the image to thousands of distributors.
Luckily they spend most of their time targeting films.
#20
Posted 19 October 2012 - 10:43 AM
quadisys said:
As Reed and Stainless said, build something good and keep a good relationship with your user base. The more corporate, the more isolated you become, the more people will want to rebel against you. Just look at Ubisoft. They have a lot of talented developers and studios, but their DRM policies have put a bounty on their heads. Be reasonable, be respectful, and most importantly, heh, don't label people as untrustworthy and evil.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












