Project Status Update
Hey folks, apologies for not replying to some of the inquiries in GitHub and over email for this project. Life has been hectic, and I have not worked on this server in a while. This server is still just a work-in-progress, with many very basic features not even implemented yet. I received some emails asking for clarifications and status updates, but I haven't found the time to continue working on this. Reverse engineering requires a lot of time with very little actual "progress" to show for it since the results are mostly invisible (right until the very end). Investing so much time and effort just to be stuck in the middle with nothing to show for it can be a little demotivating.
I will be honest with the list of blockers that I found last time with the hope that other folks from the community can help me out with this:
-
From what I remember when I last worked on this server, there was an annoying issue that prevented the game client from downloading the data files from the local server (based on mitmproxy logs). Patching the OkHttp HTTPS certificate pinning did not work. I spent a lot of time trying to reverse engineer and investigate the root cause of this issue, but I did not manage to find it back then. I think that the next step would be to use Frida with an ARM-based Android device (CMIIW, but emulating an ARM Android device on an x86 host machine might be too slow, based on my initial investigations) to figure out why this issue persisted, even with the HTTPS certificate pinning removed. We could also try to enable debug logging for OkHttp and check its logs for any hints (perhaps there is an interceptor rewriting the response data).
-
After that, more work needs to be done to implement the compression and the encryption used for the game data necessary for basic functionality (i.e., the game asset files, save data, etc.). I was in correspondence with someone over email who very kindly helped me with ironing out the details of this part, so only implementation and testing need to be done. I am also aware about this post from the Korean community that contains some useful decryption information.
-
Only after those building blocks are implemented can we implement the basic features of the game (missions, unit upgrades, saving game data, etc.). This will also take a lot of time since it requires understanding how the game implements these features and what kind of data it expects from the server.
My initial intention for this server was so that I could continue playing this game, but the effort and time required to make it went beyond my initial estimates. Whenever I have some free time, I will slowly chip away at this project, and hopefully, I can make some progress. However, if other folks would like to help with the project, I would greatly appreciate that since that could make us achieve progress faster together. I personally do want this project to move forward, after all.
Let me know what you guys think.
There is a discord dedicated to Metal Slug attack and Reloaded https://discord.com/invite/ZSWdms2Pgw . I would love to see this project come to life, even if it's just some offline features. Hope you can see my comment and join the discord as it's a better place to keep in touch with the community