{"id":13715645,"url":"https://github.com/rastapasta/pokemon-go-mitm","last_synced_at":"2025-05-07T04:30:56.943Z","repository":{"id":57326813,"uuid":"63546665","full_name":"rastapasta/pokemon-go-mitm","owner":"rastapasta","description":"🎁  Pokemon Go MITM Proxy -  Intercepts the traffic between your Pokemon Go app and their servers, decodes the protocol and gives you a handy tool to enrich your own game experience on the fly.","archived":true,"fork":false,"pushed_at":"2016-09-06T00:32:25.000Z","size":255,"stargazers_count":488,"open_issues_count":21,"forks_count":105,"subscribers_count":46,"default_branch":"master","last_synced_at":"2025-05-02T09:04:49.822Z","etag":null,"topics":["coffeescript","javascript","man-in-the-middle","mitm","mitmproxy","pokemon","pokemon-go"],"latest_commit_sha":null,"homepage":"","language":"CoffeeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rastapasta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-17T18:33:18.000Z","updated_at":"2025-04-10T18:29:16.000Z","dependencies_parsed_at":"2022-09-13T19:00:39.360Z","dependency_job_id":null,"html_url":"https://github.com/rastapasta/pokemon-go-mitm","commit_stats":null,"previous_names":["rastapasta/pokemon-go-mitm-node"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastapasta%2Fpokemon-go-mitm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastapasta%2Fpokemon-go-mitm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastapasta%2Fpokemon-go-mitm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rastapasta%2Fpokemon-go-mitm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rastapasta","download_url":"https://codeload.github.com/rastapasta/pokemon-go-mitm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252813718,"owners_count":21808374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coffeescript","javascript","man-in-the-middle","mitm","mitmproxy","pokemon","pokemon-go"],"created_at":"2024-08-03T00:01:01.503Z","updated_at":"2025-05-07T04:30:56.594Z","avatar_url":"https://github.com/rastapasta.png","language":"CoffeeScript","funding_links":[],"categories":["Development Projects","\u003ca id=\"42f9e068b6511bcbb47d6b2b273097da\"\u003e\u003c/a\u003e未分类"],"sub_categories":["\u003ca id=\"3bd67ee9f322e2c85854991c85ed6da0\"\u003e\u003c/a\u003e投毒\u0026\u0026Poisoning"],"readme":"# pokemon-go-mitm-node\n![pokemon](https://img.shields.io/badge/Pokemon%20GO-0.35.0-blue.svg?style=flat-square\")\n[![npm version](https://badge.fury.io/js/pokemon-go-mitm.svg)](https://badge.fury.io/js/pokemon-go-mitm)\n![dependencies](https://david-dm.org/rastapasta/pokemon-go-mitm-node.svg)\n![license](https://img.shields.io/github/license/rastapasta/pokemon-go-mitm-node.svg)\n\nPokemon Go MITM Proxy - Intercepts the traffic between your Pokemon Go App and their servers, decodes the protocol and gives you a handy tool to enrich your own game experience by altering the data on the fly.\n\nTake a look at the **examples** to get started. Feel happily invited to contribute more!\n\n\u003cimg width=\"22%\" src=\"https://files.slack.com/files-pri/T1R4G4SH1-F1SL5TJSD/9a257af3-0c76-4fe4-b396-3cc6b7ed4a29.jpg?pub_secret=8d2362ba2e\" /\u003e \u003cimg src=\"https://camo.githubusercontent.com/f53cc9cd861a7b9feb516df352d51bdc0f58c9c6/68747470733a2f2f692e696d6775722e636f6d2f476d61696872502e706e67\" height=\"341\"\u003e \u003cimg width=\"22%\" src=\"https://i.imgur.com/lkErths.png\" /\u003e \u003cimg width=\"22%\" src=\"https://i.imgur.com/XaEcgsQ.jpg\"\u003e\n\n\n\n## How to use it?\n\n### Setting up the server\n\n* Get [nodejs](https://nodejs.org/en)\n* Get protobuf \u003e= 3\n  * Linux: libprotobuf must be present (`apt-get install libprotobuf-dev`)\n  * OSX: Use [homebrew](http://brew.sh/) to install `protobuf` with `brew install pkg-config` and `brew install --devel protobuf`\n  * Windows: hard to compile - follow [advices](https://github.com/fuwaneko/node-protobuf#windows)\n\n* Clone the code to experiment with the examples! (otherwise use it as a [npm package](https://www.npmjs.com/package/pokemon-go-mitm))\n\n  `git clone https://github.com/rastapasta/pokemon-go-mitm-node.git \u0026\u0026 cd pokemon-go-mitm-node`\n\n  `npm install`\n\n* Setup the [CoffeeScript](http://coffeescript.org/) interpreter (optional if using `npm` scripts)\n  `npm install -g coffee-script`\n\n### Setting up your device\n\n#### Prepare your phone to accept the MITM certificate\n* Android\n  * on a **rooted** phone: install the Xposed module [pokemon-go-xposed](https://github.com/rastapasta/pokemon-go-xposed)\n  * **otherwise**: install a [pre-patched version](https://github.com/rastapasta/pokemon-go-mitm/issues/69#issuecomment-238457389)\n\n* iPhone\n  * you have to be **jailbroken** to use [ilendemli](https://github.com/ilendemli)'s nice certificate pinning [patch](https://github.com/ilendemli/trustme/blob/master/packages/info.ilendemli.trustme_0.0.1-1_iphoneos-arm.deb)\n\n#### Using Xposed on Android\n\nIf you are using [pokemon-go-xposed](https://github.com/rastapasta/pokemon-go-xposed), set the custom endpoint to your machines IP (default port it **8082**). All done! \n\n#### Using iOS or Android without Xposed\n\n* Generate a CA MITM certificate\n\n  * Run `npm start` (or `coffee example.logTraffic.coffee`) to generate a CA certificate\n  * Download the generated certificate from the started server via `http://host:8082/ca.crt` (or copy the file `.http-mitm-proxy/certs/ca.pem`)\n  * Add the certificate to the \"trusted certificates\" of your mobile (for \"VPN and apps\" on Android)\n\n* Setup your mobile's connection to use your machine as a proxy (default proxy port is **8081**)\n* Done!\n\n## Troubleshooting\n\n* Android N requires a different certificate format, make sure you download `http://host:8082/ca.crt` to your mobile\n* To let an iPhone or iPad trust the certificate, you might have to save and email `http://host:8082/ca.crt` to yourself to open it in the Mail app\n\n* On very few systems (Raspberry Pi) the CA certificate has to be generated manually:\n\n  ```\n  openssl genrsa -out .http-mitm-proxy/keys/ca.private.key 2048\n  openssl rsa -in .http-mitm-proxy/keys/ca.private.key -pubout \u003e .http-mitm-proxy/keys/ca.public.key\n  openssl req -x509 -new -nodes -key .http-mitm-proxy/keys/ca.private.key -days 1024 -out .http-mitm-proxy/certs/ca.pem -subj \"/C=US/ST=Utah/L=Provo/O=PokemonCA/CN=example.com\"\n  ```\n* If you are unable to log in after installing the certificate on Android, you may have to reboot for apps to see the new CA (#208)\n\n## How to code it?\n\n```coffeescript\nPokemonGoMITM = require 'pokemon-go-mitm'\nserver = new PokemonGoMITM port: 8081\n\n# Replace all PokeStops with kittys!\nserver.addResponseHandler \"FortDetails\", (data) -\u003e\n\tdata.name = \"Pokemon GO MitM PoC\"\n\tdata.description = \"meow!\"\n\tdata.image_urls = [\"http://thecatapi.com/api/images/get?format=src\u0026type=png\"]\n\tdata\n\n```\n\n## What's the status?\n\nThanks to the awesom work done around [POGOProtos](https://github.com/AeonLucid/POGOProtos), all requests and responses can be intercepted and altered on the fly by now!\n\n* AddFortModifier\n* AttackGym\n* CatchPokemon\n* CheckAwardedBadges\n* CheckCodenameAvailable\n* ClaimCodename\n* CollectDailyBonus\n* CollectDailyDefenderBonus\n* DiskEncounter\n* DownloadItemTemplates\n* DownloadRemoteConfigVersion\n* DownloadSettings\n* Echo\n* Encounter\n* EncounterTutorialComplete\n* EquipBadge\n* EvolvePokemon\n* FortDeployPokemon\n* FortDetails\n* FortRecallPokemon\n* FortSearch\n* GetAssetDigest\n* GetDownloadUrls\n* GetGymDetails\n* GetHatchedEggs\n* GetIncensePokemon\n* GetInventory\n* GetMapObjects\n* GetPlayer\n* GetPlayerProfile\n* GetSuggestedCodenames\n* IncenseEncounter\n* LevelUpRewards\n* NicknamePokemon\n* PlayerUpdate\n* RecycleInventoryItem\n* ReleasePokemon\n* SetAvatar\n* SetContactSettings\n* SetFavoritePokemon\n* SetPlayerTeam\n* StartGymBattle\n* UpgradePokemon\n* UseIncense\n* UseItemCapture\n* UseItemEggIncubator\n* UseItemGym\n* UseItemPotion\n* UseItemRevive\n* UseItemXpBoost\n\nEnjoy! And heaps of thanks to everyone who contributed here and on slack!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frastapasta%2Fpokemon-go-mitm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frastapasta%2Fpokemon-go-mitm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frastapasta%2Fpokemon-go-mitm/lists"}