|
Post by exfyre on Aug 30, 2008 13:54:43 GMT -5
I was recently told of a way to hack TBR. By using a memory gutter, you can change the values of the memory on your computer (like changing gold to 1000000 or something). I used this to see if it works. And it did. I got a lvl 200 magician with 3000 intelligence, and 300 agility in 10 minutes. I went around to random games in order to see if the code would hold and I got banned . So, I figured out a simple way to keep memory gutting from working easily. --For levels-- Create a cap sytem for levels similar to max stats/level except instead of using character level, make it so that you can only gain a certain amount of levels per game, based on the hero's initial level (so a lower level hero will be able to gain more levels per game than a higher level hero). After doing this, it would take memory guttering people MUCH longer to hack the levels. Another way would be to store the hero's level into a variable (except with a modifier such as 10x ie. level 10 char has a variable called "Level" with a value of 100, so that it is harder for memory gutter people to find it in the memory). Then, after the hero levels up, you can compare values, and you can test to see if they gained more than one level by doing: Event: Hero Gains a Level Conditions: Actions: If (Level/10) + 1 = hero's level Then Set Level = Level +10 Else *boot* This would take a memory gutter person 200 games to complete. Why? Because after they change a value, they get disconnected automatically from the game, then they get 30 seconds to type "-save" and hit Print Screen. I hope this gets implemented into 2.0. Hackers and cheaters only make the game worse.
|
|
|
Post by smithyjones on Aug 30, 2008 16:54:27 GMT -5
Congratulations, your suggestion won't be used because the map is very far into development. In addition, you posted the logic behind the prevention for all to see, making it extremely easy for memory gutters to hack the game if this were to be implemented.
Adding level caps per game is ridiculous, mostly because it adds an artificial time limit to games because people will grind, reach the cap, then leave the game, making it less enjoyable for all until they are level 200.
Using a hacked character intentionally is something that would damage your credibility.
|
|
|
Post by exfyre on Aug 30, 2008 23:02:07 GMT -5
the way i posted can be modified to suit the needs of the developer. The modifier can be any value the developer chooses, not just the one used in the example, and unless the hacker has access to the code, he can't do anything.
I agree that level caps are annoying, but that is why i suggested another way to prevent hacking.
common sense > credibility
|
|
|
Post by smithyjones on Sept 1, 2008 0:59:48 GMT -5
the way i posted can be modified to suit the needs of the developer. The modifier can be any value the developer chooses, not just the one used in the example, and unless the hacker has access to the code, he can't do anything. I agree that level caps are annoying, but that is why i suggested another way to prevent hacking. common sense > credibility The logic behind your solution has nothing to do with the value. As long as the logic behind the protection is made public, the value won't matter. It's very basic knowledge that the logic is far more important than any value there is. In case you can't tell, this is your logic. One of the values, Level, is known to the hacker. The unknown is x. To find x, apply basic algebra. Change the y, which is 1 in this case, to be (150 - (Level/x)). Congratulations, the logic is also flawed. You need to think about your suggestions before you post them if you want something other than loop holes to appear in replies.
|
|
|
Post by Night-Avenger on Sept 1, 2008 3:18:42 GMT -5
He's just trying to help, don't give him shit
|
|
|
Post by badass on Sept 1, 2008 11:30:11 GMT -5
except for the flaw it is a quite thought out plan
|
|
|
Post by exfyre on Sept 1, 2008 12:20:20 GMT -5
the way i posted can be modified to suit the needs of the developer. The modifier can be any value the developer chooses, not just the one used in the example, and unless the hacker has access to the code, he can't do anything. I agree that level caps are annoying, but that is why i suggested another way to prevent hacking. common sense > credibility The logic behind your solution has nothing to do with the value. As long as the logic behind the protection is made public, the value won't matter. It's very basic knowledge that the logic is far more important than any value there is. In case you can't tell, this is your logic. One of the values, Level, is known to the hacker. The unknown is x. To find x, apply basic algebra. Change the y, which is 1 in this case, to be (150 - (Level/x)). Congratulations, the logic is also flawed. You need to think about your suggestions before you post them if you want something other than loop holes to appear in replies. wrong. There are 2 unknowns, 'Level' and 'x'. The variable Level is equal to (hero's level) times x (using your example). And is impossible to solve algebraically without 2+ equations. If you still think i'm wrong, solve this: (r/m) + y = L Variable Level = r Modifier Value = m hero's level = L y= 1 (constant) Solve if L = 95 Logic: r = L*m ((L*m)/m) + y = L (L) +y = L L+1 != L Unsolvable.
|
|
|
Post by smithyjones on Sept 1, 2008 13:39:03 GMT -5
When a hero levels up, there are 10 possible values to choose from, with an unlimited amount of chances to pick the right one.
The values are Level, Strength, Agility, Intelligence, Experience, Armor, Damage, Attack speed, Gold, and Honor.
This narrows it down significantly.
Therefore, my point still stands.
|
|
|
Post by exfyre on Sept 1, 2008 14:03:17 GMT -5
you obviously don't understand what I did. Reread the first post.
|
|
|
Post by smithyjones on Sept 1, 2008 16:08:52 GMT -5
you obviously don't understand what I did. Reread the first post. It doesn't matter how you modify it. There are 10 values to choose from when a level increases through legitimate means. Find the right one, go hack happy. Once X is found, multiply your desired level by X then add one. Let us say that X is 934.6 in this example. Step 1:Go level up, record the values, and play a game with a friend. Try one of the 10 possible values for Level. Once found, move to step 2. Step 2: A level 150 would be 140190 in this example. In order for it to get to level 150, you must change it to the previous level so that it will be 149 because you are adding 1 when leveling up. Change level to 139255.4. It will then check to see if your character is indeed level 150, which memory gutters will find. Of course, the level cap would activate if it was implemented, so we take the slower route following the level caps. Say level 20 was the level cap for a level 1. Change level to 17757.4, go save, host a new game. It would take at most roughly 12 hours to host 149 games.
|
|
|
Post by exfyre on Sept 1, 2008 17:38:17 GMT -5
i see what you mean about choosing values. However, Attributes already have caps based on level. Level and experience are the same I believe, because the only way i have ever been able to increase Level is by changing experience (not 100% sure, 90% at least though). Armor is not a saved quantity - and therefore negligible. same with attack speed. The reason they MUST be saved quantities to matter is because when you change a value in YOUR memory it doesn't change the value in everyone else's, and makes you disconnect when they don't match. After you disconnect, you get 30 measly seconds to hack whatever you want. I don't know what honor is used for, and i also do not see a solution for the gold hack
Please show how you would find the value X, because I do not believe it to be possible. (it could eventually be found by using a brute force method, however, a random X can be chosen at game startup)
changing the value of the variable will not change the value of the actual level. You would have to change both of them.
it would take much longer. Not only do you have to have two people, but those two would have to stay long enough for you to find the new address of the changed variables and change it. Then you would get DCed, have to copy the code, quit the game, wait for it to clear the memory, copy your save, rehost, and repeat. It would take at least 24hrs.
|
|
|
Post by smithyjones on Sept 1, 2008 22:04:52 GMT -5
Please think about the values that would change if a hero leveled up. Once you observe what changes, it is then possible to remember their locations, then try changing each one to see if it is Level. If it isn't, then the hacker moves on to another location.
The reason I posted those values is to show the possibilities of the location of the memory. Divide each of the variables by your level to find a potential X. When the location is found, it is easily hackable for every game. A random generation of X will not matter.
30 seconds to save and copy the code is all people need to successfully hack through this method.
Changing the variable and the level at the same time is not necessary, due to the nature of the trigger event, a level up. All you need is to change Level, make your hero level 150, save, then go have fun.
The point of the time reference is to show how much faster it is to expose the loop hole, even following your level cap, compared to playing legitimately.
I don't want to stop ideas like this from coming in, but you have to carefully examine your idea for any fallacies.
|
|