: How are videogame codes protected ?

136 views

[ad_1]

Let’s say you download a game and can play it offline. In theory, everything you need is on your computer, right ? So how come people don’t just find everything, copy it and massively share (or sell for a lower price) folders with everything in ?

In: Technology
[ad_2]

[deleted]

That’s how pirated copies work, essentially. Not quite as simple as a copy&paste, of course.

Games, like every other program, need to have what you could call an “entry point”. It’s a program or a function that needs to be executed to start the game proper. The entry points of games have protections installed in them that run certain checks to make sure the copy is legitimate before starting the game. They can look into windows registry, they can contact a central server, whatever. If they don’t like what they find, they won’t load the files and they won’t start the game. That’s the DRM. That needs to be bypassed for an illegitimate copy of a game to be able to start. Not all games have DRM, and those can very easily be copied and shared.

edit: engrish

A lot of games are distributed with no protection and people can indeed do this. Here’s when basic decency comes into play: if the game is good, piracy only improves sales because people would still buy it to support developers, some people would use the free version as a “demo” to get acquainted with the game and then buy it, and almost everyone of those who would use only the pirated version would be people who weren’t going to buy it anyway.

For the games with copy protection, basically, with every copy of the game you get a license key which is unique for you. The game then checks if the copy you are trying to launch corresponds to that unique key and refuses to run if they don’t match or if somebody has already registered the same key. Usually, it checks it online. In severe cases, some parts of the game may be encrypted on your computer and only get decrypted with the external command while you play.

The hackers who make “cracks” or repacks find these checking mechanics in the game code and try to delete them. It’s an arms race between hackers and publishers to make a defense that cannot be cracked easily. It will be hacked eventually but most AAA games make a huge chunk of sales within, like, 2 weeks from release, so even if it takes a month to crack, the protaction has done its job.

I see a lot of wrong answers here

a) DRM protection: Games that will only run when a certain key is entered (it can be bypassed with enough time and effort) and games that will only run when launched through a service like steam.

b) Connection requirement (for online games): If the client appears to be modified in anyway then refuse all requests for a connection to game servers.

DRM protection can be byepassed, that’s why you can find pirated copies of almost all games

DRM free games like GOG-games can be shared just by sending the installer to someone else, even though it’s not ethical to do so

Your title and description mean two different things.

For video games that are made in C++, you would need to disassemble the executable file and try to read the machine code ( which is incredible hard as most of it is just nonsense that’s unreadable ). This alone takes up too much time so unless there’s a BIG incentive for the hacker to do so, ( adding viruses to the crackedware and stealing your $$$, etc ), no one will do it.

You can’t just share game files with your friends even if you can play it offline because most of them have basic authentication that prevents you from doing so. Something simple as checking your PC HW ID, etc.

No one sells cracked games because no one is stupid enough to buy them. ( Please don’t confuse this with G2A, etc. Those games are not cracked. Most of them are official games with official accounts or stolen keys that lets you play them… )

Most of the cracked games you see on torrent are riddled with viruses. Even the top torrent users have been caught riddling their “free, crackedware” with viruses.

Former game developer here,

Software is written in source code. This is a human readable language. This language has a strict set of rules and mathematical properties, which is why source code doesn’t read like “when I push the button, attack the enemy”, that’s way too ambiguous for today’s language parsing algorithms.

So the source code, a text document, is fed as the input to a translator, which will transform the textual representation of the program into a sequence of machine instructions – a program. This process is irreversible. That is to say, you may have a variable, `hit_points`, that you keep track of whether the player is alive or dead. The name of the variable isn’t important to the machine, so that information is lost. Your variable might have a type, maybe a simple integer or some other representation. At the machine level, this information is lost – it’s all just bits.

So what the machine code sacrifices is context. You don’t know what the instructions were intent to do. And these transforms can be optimized – provided the translator can prove equivalence and correctness, variables and instructions may be removed entirely, or be completely reorganized and otherwise unrecognizable from the original human expression of intent. It takes a lot of work to look at machine code and deduce the context and intent.

So it’s not trivial. But of course there are crackers who do manage to figure out intellectual property protection mechanisms and disable them – releasing patches that change the program instructions to subvert them. To this community, this is the game – and they play it amongst other crackers who all rush to try to be the first.

Additional methods of protection include proprietary formats (security through obscurity) and encryption, even of the executable program itself.

It’s a lot of work to undo any of this. At best – and assuming you don’t get arrested or sued into oblivion for IP theft, you might be able to produce a nearly faithful reproduction or clone of the original. I think there’s a team trying to do this with an N64 Zelda classic, for example. But the effort, and their example is what I would expect, is greater than the cost of the original production. Not only do they have to write all new source code, not only do they have to produce all their own audio and visual assets, but they have to painstakingly reverse engineer the original in order to have some confidence that their reproduction is indeed faithful.

Some of the explanations on here are going into a separate issue (recovering source code). This really has nothing to do with what OP is asking.

OP you are right that in theory a program can be transferred to other computers simply by transferring all the files. In fact this is exactly what people used to do back in the day and it worked.

I remember when software companies started to require a serial number (usually found on the physical packaging). You would need a valid serial number or the software wouldn’t run. At first, software would check that a serial number was valid based on an algorithm it ran itself.

Later when the internet became prevalent, software would require an online validation of a serial number.

Now that most software does not come in a physical box, the protections are all happening behind the scenes I would assume. I’m sure any major software company has piracy protection built into their software.

So to answer your question, yes it is possible in concept but highly illegal and most software has hidden protections to prevent you from successfully doing this.