Tags: unity reverse_engineering
Rating:
This super-fun challenge is clear about what to do but there are a lot of ways.
We are given a Build folder with PerfectMatch.exe
and amongst other files, UnityPlayer.dll
.
The game is a simple version of Fall Guy's Perfect Match, but the third stage cannot be passed no matter what. That need to change.
Here is a quick guide to Unity game hacking:
Since I already have dnSpy, I can just load the Assembly-CSharp.dll
in it. This way I do not need Unity editors.
I knew breakpoints can be set in it for single binaries, and the local variable values can be changed in dnSpy but I'm not familiar with dnspy and C# in general. I was hinted that that I can edit the decompiled source and compile it back then.
I finally disabled gravity and set the game to win at 1 round (GameManager.IncreaseRound). This way my height is will not be very large and the flag pieces are still visible. (the first image was mirrored)
P.S. I have to Save Module after Compiling the Class/Methods and select Mixed mode, otherwise the classes cannot be edited again. I'm not sure what that meant.
P.S.2. This challenge can be trivially solved by grepping SEKAI
and finding the strings in level0
- modding the game is much more enjoyable though.