{"adoption": {"forks": 232, "observed_at": "2026-08-28T04:06:29.040677+00:00", "stars": 2230}, "canonical_url": "https://ross.abutalabs.com/products/java-memshell-generator", "card": {"archived": false, "artifact_type": "cli-tool", "description": "一款支持自定义的 Java 内存马生成工具｜A customizable Java in-memory webshell generation tool.", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["penetration-testing", "security", "cli", "gui"], "health_score": 53, "homepage": null, "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["pen4uin/java-memshell-generator"], "name": "pen4uin/java-memshell-generator", "platform": ["jvm", "cross-platform", "cli"], "pushed_at": "2025-08-21T10:21:10+00:00", "repo": "pen4uin/java-memshell-generator", "stars": 2230, "tags": ["memshell", "webshell", "java-security", "red-team", "payload-generation", "offensive-security", "desktop"], "topics": ["memshell", "webshell", "payload", "java", "real-world"], "urls": [], "use_cases": ["generate java memshell payloads for tomcat or weblogic", "create in-memory webshells for penetration testing engagements", "generate listener or filter memshells compatible with antsword or behinder", "customize memshell payloads for spring webflux or undertow", "produce bcel or base64 encoded payload output for security research", "test web application defenses against in-memory webshell attacks"], "what_it_is": "A highly customizable Java in-memory webshell (memshell) generator supporting multiple middleware servers, frameworks, shell types, and output formats, with both GUI and command-line interfaces. It is intended for security research and penetration testing, with integration support for tools like AntSword, Behinder, Godzilla, Neo-reGeorg, and Suo5.", "when_to_avoid": ["you need a defensive detection tool rather than an offensive payload generator", "your target stack is not Java-based", "you cannot legally or ethically use offensive security tooling in your jurisdiction"], "when_to_choose": ["you need a customizable memshell generator covering many Java middleware and frameworks", "you want payload output in multiple formats (BASE64, BCEL, CLASS, JAR, JSP) for different post-exploitation tools", "you prefer both GUI and CLI usage in red team or security research workflows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/java-memshell-generator", "repo": "pen4uin/java-memshell-generator", "role": "main", "score": 37}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:29.040677+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:44:38.705503+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44a32c705bb6c321d96105baefd5ff6119bb4a47eb69f98fe8ab366264fd7ace", "fetched_at": "2026-08-28T04:06:29.040677+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pen4uin/java-memshell-generator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 38, "longevity": 84, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1187, "days_push": 377, "days_rel": 609, "gap_med": null, "n_releases_24m": 1}, "score": 37, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}