PogoDroid was an app to provide data of a certain app (let's just call it Pogo) to the self-hosted Python backend called Map-A-Droid by runtime injection into the target process. It offered functionality such as reading nearby monsters and events (raids) by reading the target application's traffic (encoded in Protobuf payloads).
External dependencies such as libraries were used as part of this project.
- Frida.re https://frida.re/ for runtime injections and reverse engineering
- Furtif/POGOProtos https://github.com/Furtif/POGOProtos (and private derivates) for Protobuf payload decoding
- nlohmann/json https://github.com/nlohmann/json
- CryptoPP https://www.cryptopp.com/
- Curl https://curl.haxx.se
- OpenSSL https://www.openssl.org/
- If obfuscation is enabled, copy app/windows_orig.txt to the app dir named windows.txt:
cp app/windows_original.txt app/windows.txt - Set home dir of gradle (CI/CD)
export GRADLE_USER_HOME=$(pwd)/.gradle - Make gradle executable
chmod +x ./gradlew - Compile mock patching binaries
cd mock_patch && ./update_libs.sh && cd .. - Compile injection binaries
cd injection && ./update_libs.sh && cd .. - Execute gradle with environment variabls set for setting versions
./gradlew assembleRelease -Prelease=true -Pversion_id_patch=${VERSION_ID_PATCH} -Pversion_id_minor=${VERSION_ID_MINOR} --stacktrace