I have a libcocos2djs.so file, which presumably is a mobile game using Cocos2d. Result of file
:
ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, stripped
The game sends HTTP requests to the game server. For each request, the program adds an integer timestamp query parameter to the request URL, then calculates the MD5 hash of the URL concatenated with a secret string, and then adds this MD5 hash as a query parameter to the URL.
Example:
Original URL: /some_endpoint
With timestamp: /some_endpoint&time=324234243
With hash (MD5 the above string concatenated with a secret string): /some_endpoint&time=324234243&hash=870839dba52a8fc6f47f44742116a40b
This secret string is what I want to find out.
I learnt to use a version of objdump that supports ARM to disassemble this object file, but since my assembly knowledge is limited, I don't know where to start and it would be great if someone can point me to the right direction. I just need one secret string.
The old versions of the game were using Unity, which could be easily decompiled, and I found the secret string was hard-coded in the source code. They use a new secret string for the new version and it's very likely the secret string is still hard-coded in the source code. Not sure if this information is helpful.