{"id":13484191,"url":"https://github.com/hluwa/Wallbreaker","last_synced_at":"2025-03-27T16:30:33.226Z","repository":{"id":40003855,"uuid":"226564647","full_name":"hluwa/Wallbreaker","owner":"hluwa","description":"🔨 Break Java Reverse Engineering form Memory World!","archived":true,"fork":false,"pushed_at":"2023-03-26T15:29:07.000Z","size":1047,"stargazers_count":835,"open_issues_count":7,"forks_count":138,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-03-06T19:48:00.355Z","etag":null,"topics":["android","debug","debugger","frida","java","python","reverseengineering","security"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hluwa.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-12-07T19:22:15.000Z","updated_at":"2025-03-05T10:16:05.000Z","dependencies_parsed_at":"2024-01-13T19:00:49.756Z","dependency_job_id":"821b69d1-4957-4246-9e76-69599d26895b","html_url":"https://github.com/hluwa/Wallbreaker","commit_stats":{"total_commits":61,"total_committers":5,"mean_commits":12.2,"dds":0.180327868852459,"last_synced_commit":"3867df07acbea6542d031f4851191004673682d9"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hluwa%2FWallbreaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hluwa%2FWallbreaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hluwa%2FWallbreaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hluwa%2FWallbreaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hluwa","download_url":"https://codeload.github.com/hluwa/Wallbreaker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245882181,"owners_count":20687842,"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":["android","debug","debugger","frida","java","python","reverseengineering","security"],"created_at":"2024-07-31T17:01:20.413Z","updated_at":"2025-03-27T16:30:32.741Z","avatar_url":"https://github.com/hluwa.png","language":"Python","funding_links":[],"categories":["Python","Python (1887)"],"sub_categories":[],"readme":"# Wallbreaker\n\n🔨 Break Java Reverse Engineering form Memory World!\n\n## WTF?\n\nWallbreaker is a useful tool to live analyzing Java heap, powered by [frida](https://github.com/frida/frida). Provide\nsome commands to search object or class from the memory, and beautifully visualize the real structure of the target.\n\nWant to know real data content? list item? map entries? Want to know about implementation of the interface? Try it! What\nyou see is what you get!\n\n## How to start?\n\n### 1. Install objection\n\n\u003e pip3 install objection\n\n### 2. Download wallbreaker\n\n\u003e mkdir -p ~/.objection/plugins/ \\\n\u003e git clone https://github.com/hluwa/Wallbreaker ~/.objection/plugins/Wallbreaker\n\n### 3. Loading as objection plugin\n\n\u003e objection -g com.app.name explore -P ~/.objection/plugins\n\nor\n\n\u003e objection -g com.app.name explore \\\n\u003e plugin load  ~/.objection/plugins/Wallbreaker\n\n### 4. Use wallbreaker command\n\n\u003e plugin wallbreaker objectsearch java.util.HashMap \\\n\u003e plugin wallbreaker objectdump \u0026lt;object-handle\u0026gt;\n\n## Commands\n\n### Search\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cb\u003e wallbreaker classsearch \u0026lt;type-pattern\u0026gt; \u003c/b\u003e\u003c/summary\u003e\n\n```\n[return all matched class]\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cb\u003e wallbreaker objectsearch \u0026lt;instance-class-name\u0026gt;  \u003c/b\u003e\u003c/summary\u003e\n\n```\n[return all matched object-handle and toString]\n```\n\n\u003c/details\u003e\n\n### Dump\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cb\u003e wallbreaker classdump \u0026lt;class-name\u0026gt; [--fullname] \u003c/b\u003e\u003c/summary\u003e\n\n```\n[\n   pretty print class structure: fields declare, static field value, methods declare.\n      set --fullname to display package name of type name.\n]\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\u003cb\u003e wallbreaker objectdump \u0026lt;object-handle\u0026gt; [--fullname] [--as-class class-name] \u003c/b\u003e\u003c/summary\u003e\n\n```\n[\n   pretty print object structure: fields declare and value, methods declare.\n      set --fullname to display package name of type name;\n      set --as-class to cast instance type(super class, not interface).\n   if instance is a collection or map, dump all entries.\n]\n```\n\n\u003c/details\u003e\n\n## Demo\n\n[![asciicast](https://asciinema.org/a/XZf8yLWJylCKJfcaYzcKlNbIy.svg)](https://asciinema.org/a/XZf8yLWJylCKJfcaYzcKlNbIy)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhluwa%2FWallbreaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhluwa%2FWallbreaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhluwa%2FWallbreaker/lists"}