Post by MostWanted on May 20, 2017 14:29:43 GMT
Hello guys, so during previous days I have spent a lot of time trying to make a MOD of Stronghold Crusader, like a version 1.4. Doing that is very hard and requires a lot of time, the mod itself will probably not be finished before 2018. because there is a lot to do, but I found out more than I wanted to know. We all know how some retards like THKO Deniz and half of M.A.R.S. clan (RIP 2013.) added gold/troops or whatever they needed in game. This isn't hard to do, all you need is to download a SHC trainer and then do few clicks /keyboard shortcuts, and there you are.
How does trainer work?
Trainer is nothing more but a program created by programmers who spent a lot of time experimenting with hex editor. Basically, almost everything in game is defined with numbers, and these numbers have specific values. Using some advanced programs and a little bit of mathematics, you can find what these numbers represent and you can also change them. So for example, if there is a number 00100, and you have 100 gold in game, you will know this is gold. Then they just rewrite the number with any amount of gold they wish, and make it into an automatic program so you dont have to do this manually. This is what trainer is. Trainer works only for the people who are hosting game becasue their game is the platform.
How to recognize and prevent trainer?
Easiest way to prevent is to ask for host, or invite neutral watcher and give him host. If the player is not the host, he cannot hack anything, because he cannot edit SHC on your computer, only on his. If you anways are not host, and your opponent is, you can know he uses a trainer if very short lagz occur oftenly and you both have low pings (good connection). This is because he edited his game, and now his game must send that edited information (number) to your game as well, and this takes short amount of time.
For people experienced with computers:
I am not going to post here a tutorial on how to hack the game, but I will tell you that absoultely anything can be changed. What I did for example is change health of a spearman, so he is double as strong as before. If you would like to experiment, please do it only in singleplayer, and this is what you might want to know:
- Stronghold Crusader has built-in protection on three levels against hacking. First, it doesnt read hexadecimal code from left to right, it reads from right to left, but only if a part of the code (bits) have a value.
So for example F0 29 45 00 will be read as 45 29 F0 00. Second thing you need to know is that as soon as you edit Stronghold Crusader.exe file, where all the important information is saved, crusader will protect itself by creating a StrongholdCrusader.exe.bak file (backup file), which will then reset the edited file to original version. There are numerous ways to deal with this, if you want to mod shc, you will have to find one on your own, because I dont want everyone to do this. If you also think I trust you, you can ask me in private messages and maybe I will explain.
And finally, third level of protection is data overflow. You cannot change the data too much, in other words, you cannot change file size at all, not even a single bit. This means that every number has its boundaries, for example you can only increase lord's health up to 5x his original health, and it cannot be less than rat's health. Also, if you increase/decrease any number too much, there will be 30 lags per second in game which will ultimately crash it.
Some units share the same number. Fact: number 15,000 occurs 10000 times in the hexadecimal code of StrongholdCrusader.exe If you want to know which one exactly you want, you need more programs than just a hex editor. You will need something to investigate changes in memory so you know where your variable is stored. Example:
Knight has 25000 health. You search for all integers = 25000, but you get 500 results. You can filter them by damaging one knight, and then look for the integer in range between 200000 and 250000 for example, and filter the first 500 results you got. This way you will be able to find the location (offset) of your data, and then changing.
You can also trying freezing memory of Stronghold Crusader, or freezing just specific numbers. For example, freeze number of health your lord has, and he will be immortal.
If you are a noob and you are afraid people will start using my tutorial to hack game, dont worry, I am sure 1 in 1000 people on gr will have knowledge+time to do this, and even if you do, I already explained, just be the host or look for the short lags and small pings.
How does trainer work?
Trainer is nothing more but a program created by programmers who spent a lot of time experimenting with hex editor. Basically, almost everything in game is defined with numbers, and these numbers have specific values. Using some advanced programs and a little bit of mathematics, you can find what these numbers represent and you can also change them. So for example, if there is a number 00100, and you have 100 gold in game, you will know this is gold. Then they just rewrite the number with any amount of gold they wish, and make it into an automatic program so you dont have to do this manually. This is what trainer is. Trainer works only for the people who are hosting game becasue their game is the platform.
How to recognize and prevent trainer?
Easiest way to prevent is to ask for host, or invite neutral watcher and give him host. If the player is not the host, he cannot hack anything, because he cannot edit SHC on your computer, only on his. If you anways are not host, and your opponent is, you can know he uses a trainer if very short lagz occur oftenly and you both have low pings (good connection). This is because he edited his game, and now his game must send that edited information (number) to your game as well, and this takes short amount of time.
For people experienced with computers:
I am not going to post here a tutorial on how to hack the game, but I will tell you that absoultely anything can be changed. What I did for example is change health of a spearman, so he is double as strong as before. If you would like to experiment, please do it only in singleplayer, and this is what you might want to know:
- Stronghold Crusader has built-in protection on three levels against hacking. First, it doesnt read hexadecimal code from left to right, it reads from right to left, but only if a part of the code (bits) have a value.
So for example F0 29 45 00 will be read as 45 29 F0 00. Second thing you need to know is that as soon as you edit Stronghold Crusader.exe file, where all the important information is saved, crusader will protect itself by creating a StrongholdCrusader.exe.bak file (backup file), which will then reset the edited file to original version. There are numerous ways to deal with this, if you want to mod shc, you will have to find one on your own, because I dont want everyone to do this. If you also think I trust you, you can ask me in private messages and maybe I will explain.
And finally, third level of protection is data overflow. You cannot change the data too much, in other words, you cannot change file size at all, not even a single bit. This means that every number has its boundaries, for example you can only increase lord's health up to 5x his original health, and it cannot be less than rat's health. Also, if you increase/decrease any number too much, there will be 30 lags per second in game which will ultimately crash it.
Some units share the same number. Fact: number 15,000 occurs 10000 times in the hexadecimal code of StrongholdCrusader.exe If you want to know which one exactly you want, you need more programs than just a hex editor. You will need something to investigate changes in memory so you know where your variable is stored. Example:
Knight has 25000 health. You search for all integers = 25000, but you get 500 results. You can filter them by damaging one knight, and then look for the integer in range between 200000 and 250000 for example, and filter the first 500 results you got. This way you will be able to find the location (offset) of your data, and then changing.
You can also trying freezing memory of Stronghold Crusader, or freezing just specific numbers. For example, freeze number of health your lord has, and he will be immortal.
If you are a noob and you are afraid people will start using my tutorial to hack game, dont worry, I am sure 1 in 1000 people on gr will have knowledge+time to do this, and even if you do, I already explained, just be the host or look for the short lags and small pings.