Why is a games source code being leaked a bad thing? Doesn’t all that code exist in the games files?

2.00K views

I do know that that code obviously then inst available, since that’s why the recent leaks are significant…but why is it significant? Obviously cheaters will use that to more easily make hacks, but why is that code not part of the game? How does that code not exist in the game files? Is it hidden in some way or is some of that engine code or what exactly is it?

In: Technology

10 Answers

Anonymous 0 Comments

Computer code is a list of direction for the computer to follow, similar to the directions someone might give you to bake cookies, or navigate to the grocery store. But when someone write these directions, they do so in a “high level” way, meaning that their instructions sound simple to a human “add sugar” or “mix until even” but are actually very complex concepts. How do you add sugar? How do you mix? How do you know when it’s even? But the computer needs much more simple instruction “move arm, circle patter, 10″ radius, 60 seconds” so there is a special program that translates the instructions into more detailed ones.

The version of the code that you get to download is the very detailed, very simple instructions. The “source code” though, is the more complex, but more human-readable set of instructions.

So the source code will say “add sugar” but the code you have is a bunch of lines about moving joins, angles, amounts of pressure, twisting, and analysis of sensory input. The instructions aren’t just how to add the sugar, but how to move your body correctly to grasp the sugar, and the measuring cup, and how to rotate your wrist to dump the sugar into the bowl. All, in incredibly minute detail. But it never actually says “add sugar” at all! Instead, there are enough instructions in there that by the time you get to the part about adding the sugar, you have already placed the sugar in just the right location on your counter top, and placed the measuring cup, and the bowl, that by simply giving the instructions on how to move your body, the result is picking up the sugar and pouring it into the bowl.

Because of all that detail, a computer – which is very very simple – can go through each step and do it as instructed, and the results are always the same. But the computer doesn’t actually know what it’s doing, just that it’s doing each little step. If a human reads these instructions, they aren’t very useful – we think in much more abstract ways. We don’t need told how to move our arm, and we have trouble following instructions so specifically. And since the code never says “add sugar” it may be nearly impossible to figure out that that is what a given part of the code is telling you to do.

So imagine you built a robot that can bake, and you sell that robot. Then, you sell/give people the instructions for making your legendary cookies. If they buy your robot, they can have it make the cookies. But if they don’t buy the robot, they can’t, because the instructions don’t make enough sense to a human to follow them. Plus, you were clever, and you added some special instructions that look normal to a human, but that the robot knows it’s supposed to just ignore. If a human tries to follow them, they will end up with gross cookies! But the robot knows that certain types of instructions are false, and just skips them. You add this “feature” so that people trying to copy your instructions won’t be able to, and they won’t be able to sell them or use them without a robot they bought from you.

Leaking the source code of a video game, is like someone sneaking into your kitchen and stealing your recipe card. Now they have a version of the instructions people can understand, and they can use it all they want, and it doesn’t have any of the false instructions to trip them up. They can also clearly see how each part of the recipe works, and modify it however they would like, or use portions of it in their own recipes.

Worse, they can now make their own copy of the robot instructions, without your false instructions, and give it or sell it to other people so they can make the cookies with robots made by other people, and then they don’t have to buy your robots anymore, or pay for your recipes.

The source code is so important, because it’s something that can be used to replicate the game, reuse portions of the game in other places, or find/remove any parts of the code that prevent piracy and cheating. You actually *can* do those things with the game code you download, but it take a lot of time and a lot of patience to figure out what the code really does, how it works, and how to modify it to produce the desired results. With source code though, you can skip all that hard difficult work, and just do as you like with it.

Both of the two bodies of “code” are instruction on how to do the same thing: run a game. But one is too detailed and lacks human-understandable descriptions for anyone to do much with it. While the other is very easy for a human to understand, and if it’s publicly available, makes cheating and piracy incredibly simple.

Anonymous 0 Comments

Think of creating a game in terms of baking a cake. Once the cake is baked you can’t go backwards and turn it back into eggs, flour, levening, and oil.

The source code is your cake ingredients. The oven is your compiler. The cake is the completed game.

Anonymous 0 Comments

Because the executable files that you have are in machine code, and is unreadable by humans. Even if you converted it back to human-readable code (with a decompiler), there are probably thousands of variables which are completely unlabeled, which you’ll have to figure out one by one. And if a programmer used any unorthodox tricks, you’ll have zero chance of figuring it out.

Anonymous 0 Comments

The actual logic (as has been said already) is compiled into a code which is quite hard to reverse engineer. Much of the data in some games (graphics and sounds) can be quite easily extracted if you know how to do it.

Sometimes code is written and obfuscated to make it really hard to reverse engineer.

I sometimes put rude comments into apps & games to be seen by anyone hacking the code.

Source code contains intellectual property which takes months or years to develop so it’s bad for it to be stolen and published.

Anonymous 0 Comments

The source code is written to be mostly read by humans. It is the job of the compiler to rewrite the code for machines. The first thing it does is to ignore any variable names and comments as those are to make it easy for humans to read and are of no value to machines. So in the machine code there is no easy way to say what a piece of code is for or what a value represent without going through and analyzing it carefully. But the compiler will also take the high level code with compact informative statements and expand it into low level code where each statement is very trivial operations for the machine to do. And where a programmer will write the code in logical sequence where the code is directly related to the surrounding code a compiler might find this inefficient and will write the machine code in the way that is faster for the machine to execute. And the compiler will often find that the code written by the human is very inefficient and find much smarter ways of achieving the same result but which are very hard for a human to understand. So the machine code that gets released for people to download and use is almost impossible for humans to understand. And that is of course that the code in question was actually part of the game code that runs on the users computer and not part of the code that only runs on the servers.

Anonymous 0 Comments

When a developer works on a game typically they’ll be writing the source code. The source code they work on is designed to be human readable and easier to edit. It would normally use english (or whatever other language) words and decimal numbers. Like a line might have something like

if x==10, y = 5;

which is easy to look at understand. If some variable X is equal to 10, then it assigns the variable y a value of 5. You, as a person, can look at that and understand what’s going on, and if you decide you want to look out for when x is equal to 9 instead then you can make that change easily.

The problem is your computer or console or whatever doesn’t read english. ‘If’ doesn’t really mean anything to it, it only speaks in bits and logic gates. So you have to compile the code into something your computer can use. This changes your easily readable source code into more complicated object code that your computer can use as actual instructions. A person could not just glance at object code and figure out what’s happening, and you can’t really go from object code back to source code.

The object code is what normally ships since it’s what the game needs in order to actually work, and this protects the source code. It makes it harder to find exploits because parsing through object code is a nightmare for a person. But if your source code gets out then a person can go look through everything and would have a much easier time figuring out how the game works and finding ways to exploit it.

Anonymous 0 Comments

You run the source code through a compiles to create the machine code that the program run.

There is no simple way to go backward in some way it is not possible at all because stuff that we use to understand the code is no longer there. An integer name HitPoints is easy to get what ís is but in the compiled code you just know that there is an integer used in a memory location like $85004F3C

You can create code in high-level language from the source code but the name of everything is gone so you have no idea what you look at and what it might do. So to say that it takes 100x longer to understand the code is not a bad initial estimation.

So the source code is like the recipe for a dish with all instruction quite easy to understand and the machine code is the dish itself. You could from the try to understand exactly how it was done but it is a lot harder.

Anonymous 0 Comments

No, none of that code exists in the game files. The machine code that is in the compiled executables contains very little of the programming methodology behind the game itself. The game code that compiles into all that machine code will allow people to rebuild the game to their own liking, without the security controls and many other features of the compiled software. It also contains many of the programmers’ notes and instructions, which will allow even more changes to be made to the original game, cutting out other sources of income for the original game developers.

Anonymous 0 Comments

It allows for piracy, easier and more complex hacks as well as mods. Exploit development also becomes easier.

Yes the code is already in the files. But you a human cannot read it easily. You’d have to reverse engineer it to get even close to understanding the code. A computer can easily read it.

But it’s important because most games run a anti cheat system that will monitor memory for invalid changes that say cheat engine can do. Many multiplayers have this system. Having a leaked source code allows for easy bypass of that system.

Not to mention many publisher don’t want to share code, say for instance you develop a very in-depth physics system. You want that to be what people associate your game with. If that leaks everyone else gets it. Think of Doom being the first FPS. Everyone instantly copied it.

Anonymous 0 Comments

It’s the difference between eating a cookie and having the recipe. If you eat a cookie, you can probably figure out some of what’s in it, based on common ingredients cookies have and what you’re tasting. But you won’t have the exact proportions and you won’t necessarily know whatever secret ingredient makes *this* cookie have its exact taste and texture.

But if you get the recipe, you can make the cookie, or even make your own modified version.

In a similar way, compiled code is very hard to pick apart into exact logic of the game. You can do it, but it’s hard to follow. The source code, on the other hand, is like the recipe that makes the executable. It’s usually written in an easy-to-understand way, and if you have the source code, you can make modifications and then create your own executable with your changes.

You could also figure out places that the standard copy could be manipulated while running more easily, allowing you to make cheats.

You could use it as the basis for an entirely new program with very little effort compared to writing your own from the ground up.