{"id":22440709,"url":"https://github.com/bratah123/maplepacketpuller","last_synced_at":"2025-08-01T17:31:28.651Z","repository":{"id":130850211,"uuid":"295487629","full_name":"Bratah123/MaplePacketPuller","owner":"Bratah123","description":"A Python Maplestory Packet Structure Analyzer","archived":false,"fork":false,"pushed_at":"2020-12-17T05:23:05.000Z","size":617,"stargazers_count":18,"open_issues_count":5,"forks_count":14,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T04:13:57.835Z","etag":null,"topics":["maplestory","maplestory-scripts"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bratah123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-14T17:20:45.000Z","updated_at":"2025-02-05T06:38:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"a60b4cc3-b4b5-4c7c-a94c-a899a021cfbc","html_url":"https://github.com/Bratah123/MaplePacketPuller","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Bratah123/MaplePacketPuller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bratah123%2FMaplePacketPuller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bratah123%2FMaplePacketPuller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bratah123%2FMaplePacketPuller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bratah123%2FMaplePacketPuller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bratah123","download_url":"https://codeload.github.com/Bratah123/MaplePacketPuller/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bratah123%2FMaplePacketPuller/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268266111,"owners_count":24222573,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["maplestory","maplestory-scripts"],"created_at":"2024-12-06T01:26:14.434Z","updated_at":"2025-08-01T17:31:28.644Z","avatar_url":"https://github.com/Bratah123.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Maplestory Packet Puller\n- For a better experience using this, check out the [SpiritIDAPlugin](https://github.com/Bratah123/SpiritIDAPlugin) project!\n\n## Features:\n - Reads keywords from IDA-generated pseudocode, and formats them into a form that is friendly for server encodes\n - Options for varying the accuracy of packet structure pulls\n - Shows the structure of packets\n - Writes all packet structures to an identically named output file in `MaplePacketPuller/IDA Maple Script/FuncOutput/`\n - Ability to search for InHeader opcodes\n \n## Known Issues:\n  - `while()` loops aren't properly handled, i.e. whether a decode is in the scope of one well\n    - Possible circumvention: may be rectified if `GET_ALL_DECODES = true`\n  - The constant `GET_ALL_DECODES` when set to `True` for increased accuracy, has major aesthetic drawbacks\n  - This script assumes that you have named the disassembled function in IDA according to the function you want to pull packet structures from\n  - This script does not display switch cases - can be added by user\n\n## Technical Stack\n|  | Target | Tested |\n| --- | --- | --- |\n| Python | 3.8.5 | 3.6.12 \u0026 3.8.6 |\n| IDA Pro 32-bit | 7.0 | 7.0 |\n| Editor | Atom | Atom |\n| CLI Interpretor | cmd | pwsh 7.0 |\n\nOther variants for contributors to test:\n  - [x] Python 2.7\n    - **NOT COMPATIBLE:** use of os.scandir() makes it non-backwards compatible with versions older than 3.6\n  - [x] Python 3.6\n    - \u003cdel\u003e**NOT COMPATIBLE:** probably a result of how f-strings handle backslashes\u003c/del\u003e\n    - *Update: Fixed as of commit 10a9fd86c4da264ef6d1d73a6aca248343cf63f6*\n  - [ ] IDA 6.8\n  - [ ] IDA 7.5\n  - [ ] IDLE\n  - [x] PyCharm Community Edition 2020.1.1 (or later)\n    - **COMPATIBLE** Tested as of commit `dfef676d4897dbc8195120f6f803a8810420d319`\n\n---\n# How to use\n\n**INPUT:**  `.txt` file containing C-pseudocode from IDA disassembly\n\n**OUTPUT:**  `.txt` file containing packet structure \u0026 console output\n\n\n- NOTE: You will have to create a `.txt` file in the `Functions` directory with the copy-pasted pseudocode from IDA (examples in there)\n  - `MaplePacketPuller/IDA Maple Script/Functions`\n\n1. Navigate to `MaplePacketPuller/IDA Maple Script/src/main/python` in `CLI` and run `main.py`\n    - Alternatively use a Python IDE like PyCharm\n\n2. Input the type of Analysis you want to do\n\n3. Input the name of the file you want to analyze, i.e. the txt file you've just created\n \n4. Let the program analyze it.\n \n5. Now packet structure should be yours! :octocat:\n    - see `MaplePacketPuller/IDA Maple Script/FuncOutput/`\n\n The console output should look a little something like this:\n \n ![OnSetField](https://media.discordapp.net/attachments/746519006961336370/755117561024086036/061591b5c3d0f4a3247f9367b91b9843.png)\n ![InHeader](https://cdn.discordapp.com/attachments/631249406775132182/761270430823612476/a1e9fd7703d4ba359d314027a47c7b3b.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbratah123%2Fmaplepacketpuller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbratah123%2Fmaplepacketpuller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbratah123%2Fmaplepacketpuller/lists"}