{"adoption": {"forks": 524, "observed_at": "2026-08-28T04:07:24.634774+00:00", "stars": 2838}, "canonical_url": "https://ross.abutalabs.com/products/pythonhackingbook1", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Python黑客编程之极速入门", "domain": ["security", "penetration-testing", "tutorials", "developer-tools", "networking", "web-development"], "enriched": true, "function": ["security", "penetration-testing", "developer-tools", "nlp"], "health_score": 20, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["xuanhun/PythonHackingBook1"], "name": "xuanhun/PythonHackingBook1", "platform": ["python", "cross-platform", "cli"], "pushed_at": "2023-06-25T07:49:07+00:00", "repo": "xuanhun/PythonHackingBook1", "stars": 2838, "tags": ["hacking", "python-hacking", "security-training", "exploit-development", "packet-sniffing", "reverse-engineering", "web-security", "chinese-language", "book", "course-material"], "topics": ["python", "hacking"], "urls": [], "use_cases": ["learn python for hacking and security from scratch", "write my own packet sniffing and injection tools", "understand how sql injection and xss attacks work in code", "learn to write exploits and PoCs in python", "get started with reverse engineering and debugging with pydbg", "automate vulnerability scanning and attack workflows", "beginner-friendly cybersecurity programming course"], "what_it_is": "An open-source Chinese-language tutorial book, 'Python Hacking Programming: Rapid Introduction', teaching Python programming from basics through security applications like packet sniffing, web exploitation, reverse engineering, and automation. It includes full source code examples on GitHub and is designed as a gentle on-ramp for aspiring security practitioners.", "when_to_avoid": ["you need an advanced, in-depth reference on a single security topic", "you require a maintained tool or library rather than educational material", "you cannot read Chinese, since the tutorial is written in Chinese"], "when_to_choose": ["you are a beginner wanting a smooth learning curve into security programming with Python", "you prefer hands-on examples with provided source code over heavy theory", "you want broad coverage from networking to web security to exploit writing in one resource"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pythonhackingbook1", "repo": "xuanhun/PythonHackingBook1", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "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:07:24.634774+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.634774+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:48:32.972727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bb53a1fe6954fcfc88e7dc38c6f58d4a2d3ec0b02b66f7a7c59503c68694af6b", "fetched_at": "2026-08-28T04:07:24.634774+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xuanhun/PythonHackingBook1"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2815, "days_push": 1165, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}