Challenge Description
Welp, time to do it again.
Unable to install? That is a part of the challenge, try to overcome it.
Author: Trailbl4z3r & Monaruku
hint: Tbh this is not a natively built app, more like something just wrapped into an app
Solution
Since it’s an APK file, Lets start with jadx-gui for static analysis. In terms of static analysis, it’s always best to check out AndroidManifest.xml first.

Based on the code, there’s only one activity which is systems.altimit.rpgmakermv.WebPlayerActivity. Double click and see the activity code. There’s a lot of function in the WebPlayerActivity but I’ll be focusing on onCreate function first as that it is the starting point for all activities.

According to the code, it is trying to construct the game by getting the value of id.application.rpgmakermv.R.string.mv_project_index. I then tried to have a look and search for the strings values. By using the global search feature in jadx-gui, I managed to get the strings value.

Now that I know the value is //android_asset/www/index.html, my first thought is checking out for the files using the global search feature.

While the index.html does not have a lot of code, I noticed that it’s using main.js. I then look for it and have a look in it.

Looking into main.js, there’s a lot of code and several script as well. I then look into each of it and see which is interesting.

Looking into rmmz_managers.js, I noticed that database file that are stored as json file. I then look into Actors.json as it seems like the game character’s database file.

Since this is a json file, I think that I could modify the json file and repack the apk to make the me win easily. Since I have limited information at the moment, I tried to run the apk and see how the game works.

Here’s how the main page looks like, which is similar to the index.html. I then started to play around to get more information.

Here’s my current stat and equipment. I then look into the Actors.json to compare and identify which value I should modify. I noticed that the equip is the current weapon and body that the character has. The weapon database file is Weapons.json.

The id of the weapon is same as the number provided in equip in Actors.json. My next thought was to increase the damage of the weapon Dragon Blade since I could just edit the json file and repack it. While I have no idea, the params definitely consist the damage of the weapon. I then randomly edit every params into high value. To do so, I’ll need to unpack first.
| |
After unpack the APK file, search for Weapons.json and modfiy the params value of Dragon Blade to 999. After modifying it, repack it.
| |
After repacking the APK, remember to sign it. To do so, create a keystore.
| |
After the keystore is created, sign the APK file.
After that, Just run the game and hope everything is working.

As shown in image, I managed to change the weapon stats by modifying the params value. Now that my stats are high, I could easily win the game.

After I win each boss, I’ll get a partial flag.
- Flag 1

- Flag 2

- Flag 3

- Flag 4
- This part of flag appear in the map after winning boss 4

- Flag 5
- After winning the boss, you will need to talk to a dude and it will give you
23 7 13 25which is order of the alphabeltwgmy. - Then a QR will be provided.
4f51785}
- After winning the boss, you will need to talk to a dude and it will give you

Things I learned from this challenge
- reading code using static analysis
- patching the APK
- Cheat the game to win