Tags: cetus unity webgl wasm
Rating: 1.5
This was a really fun challenge. We basically had to vary the memory addresses using the extension named [Cetus](https://github.com/Qwokka/Cetus). There was an excellent DefCon [video](https://www.youtube.com/watch?v=Sa1QzhPNHTc) explaining how it works too.
So there are these following stuff in the game. You have a store where you can purchase stuff and you can improve your inventory there too.
So first we go and kill some enemies. But then it's almost impossible to kill the Boss. So this is where we must work our way by freezing the values in the addresses.
Initially the player starts with a health of 20. We go to the extension and in `Value` column, enter 20 and in comparision operator enter `EQ`, then in data type enter `f32`. Then take damage from the enemy and reduce your health to 15. Now change the value operator to 15 with remaining parameters as the same. You will find an address for the health. Now freeze your health to stay immortal. Kill all the enemies till you reach the level where boss's health keeps regenerating.
Go to the store and in a similar fashion find the Speed and Sword damage variables. `Reset Gold`could be of real help over here. Now change Sword damage and Speed. We should not change the address in the memory when in the store, because it sets the value back the maximum that the game allows ie. 30 damage for sword. So now we come out of the store and make our sword damage as a very large value. Then reduce the boss health to 0. After this level there's another level, where you have to teleport to get the Boss's hat. Here you hange the value in speed address to like really large value and thats how you get the boss. Now you have to get the hat. I exactly didn't understand why this happened, but reducing the value in speed variable to a large but lesser value seems to work out. If anyone does understand the reason on why this happened, please comment it.
Overall this was a really fun challenge tot work on.