🔍
Notes
TwitterGithub
  • 👋Introduction
  • 📚Research
    • 2024
      • Malware Analysis: Wedding Invitation Scam
      • Android Reverse Engineering (Dynamic Class Loader and Native Library)
    • 2023
      • Reverse Engineering APK Built with Flutter
      • Reverse Engineering Application Protected with Pyarmor
      • Analyzing CVE-2021-22204 Based on Network Traffic (PCAP file)
      • Emulating Android Native Library using Qiling - Part 1
      • Machine Learning Model (XGBoost) Reverse Engineering
      • CVE-2021-2461
      • CVE-2022-31367
      • CVE-2023-0046
      • CVE-2023-0048
      • CVE-2023-0316
    • 2022
      • Attacking Non Avalanche AES (Custom AES Implementation)
      • Cracking CRC32 with Forward Polynomial Constant
      • Cheating Game Built with WASM
      • Reverse Engineering Game Boy
      • Partial Known Plaintext Attack on Custom 3DES
    • 2021
      • Reverse Engineering Erlang BEAM File
      • Reverse Engineering Approach on Python Bytecode with Development Version
Powered by GitBook
On this page
  • Preface
  • Cheating the Game with Cetus
  1. Research
  2. 2022

Cheating Game Built with WASM

Study case NCW 2022 Quals (Flaggy Bird V2).

Last updated 1 year ago

Preface

During the competition my team got 1st place and i got 1st blood on this challenge. This challenge was new for me, since it required me to do cheating using .

Cheating the Game with Cetus

Given URL http://103.167.136.123:2122/ . The game was made using Unity, I tried to analyze the assets until it was a mess (quite painful) until finally I got enlightenment with . The concept is the same as the cheat engine, but here it took a long time to get the score value because it had to be exactly the same to get the flag in this challenge.

To get the address from the score, the method is quite easy, exactly the same as the cheat engine. So do a search for every change in the score, for example from 0 do a search 0, change to 1 do a search 1 until you get a few addresses (and always the same as our score). If this means we have found the correct score address, then add the address to the bookmarks.

Here we get the address for the score is 0x01578e38 . At the beginning, we did an analysis of each function in the read watch but couldn't find the right one, but when we tried to do an analysis of the function that does the write, it turned out that there was a constant value that was compared.

It appears that there is an i32.eq instruction which compares 32 bit values and when we change the score to 4207330 and continue playing to add 1 we get a flag.

Flag : NCW22{sloTH_Hekkk_flappy_again}

📚
Cetus
Cetus