{"adoption": {"forks": 789, "observed_at": "2026-08-28T04:08:46.250303+00:00", "stars": 4348}, "canonical_url": "https://ross.abutalabs.com/products/xhook", "card": {"archived": false, "artifact_type": "library", "description": "🔥 A PLT hook library for Android native ELF.", "domain": ["developer-tools", "mobile-development", "operating-systems"], "enriched": true, "function": ["security", "developer-tools"], "health_score": 37, "homepage": null, "language": "C", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["iqiyi/xHook"], "name": "iqiyi/xHook", "platform": ["cpp", "c"], "pushed_at": "2025-06-27T05:34:48+00:00", "repo": "iqiyi/xHook", "stars": 4348, "tags": ["plt-hook", "elf", "native-code", "android-ndk", "inline-hooking-alternative", "android"], "topics": ["android", "hook", "elf", "plt", "got"], "urls": [], "use_cases": ["hook native library function calls in an Android app", "intercept libc calls like malloc or open in my NDK project", "monitor or replace PLT symbol calls in loaded ELF shared libraries", "debug and trace native API usage on Android without root", "patch third-party native library behavior at runtime"], "what_it_is": "xHook is a PLT (Procedure Linkage Table) hook library for Android native ELF binaries and shared libraries, written in C. It lets native code intercept calls to imported symbols in loaded ELFs without root permissions, supporting Android 4.0-10 across major ABIs.", "when_to_avoid": ["you need to hook non-PLT calls such as inline or function-entry hooks", "you target Android versions above 10 or need active feature development", "you need a general-purpose instrumentation framework like Frida"], "when_to_choose": ["you need to hook imported (PLT/GOT) symbol calls in Android native code without root", "you need broad compatibility with Android 4.0-10 and multiple ABIs", "you want a small C library with no third-party dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xhook", "repo": "iqiyi/xHook", "role": "main", "score": 45}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "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:08:46.250303+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:46.250303+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:21:33.530656+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7d1ad97e186826efbacad3d47996732c571abede47fba0085a6620cb5280f6bf", "fetched_at": "2026-08-28T04:08:46.250303+00:00", "kind": "readme", "missing": false, "url": "https://github.com/iqiyi/xHook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 28, "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": 3059, "days_push": 432, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 45, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}