{"adoption": {"forks": 189, "observed_at": "2026-08-28T04:03:24.972371+00:00", "stars": 1058}, "canonical_url": "https://ross.abutalabs.com/products/monohook", "card": {"archived": false, "artifact_type": "library", "description": "hook C# method at runtime without modify dll file (such as UnityEditor.dll), works on Windows, Mac, Android il2cpp(armv7a and armv8a)", "domain": ["developer-tools"], "enriched": true, "function": ["security", "developer-tools"], "health_score": 20, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["Misaka-Mikoto-Tech/MonoHook"], "name": "Misaka-Mikoto-Tech/MonoHook", "platform": ["windows", "cpp", "c"], "pushed_at": "2023-09-22T09:16:32+00:00", "repo": "Misaka-Mikoto-Tech/MonoHook", "stars": 1058, "tags": ["unity", "method-hooking", "runtime-patching", "il2cpp", "mono", "jit", "reverse-engineering", "game-development", "macos", "android"], "topics": ["unity", "hook", "jit", "dll", "unityeditor", "il2cpp", "android", "mac"], "urls": [], "use_cases": ["hook UnityEditor.dll methods at runtime without modifying the dll", "patch C# method behavior in Unity at runtime", "redirect calls to a Unity engine method to custom code", "hook methods on Android il2cpp arm builds", "wrap original method calls while overriding behavior in Unity"], "what_it_is": "MonoHook is a C# library for Unity that hooks C# methods at runtime by patching JIT/AOT-compiled native code in memory, without modifying DLL files. It supports Unity Editor on Windows and Mac, Android (mono/il2cpp armv7a/armv8a), and Windows mono/il2cpp.", "when_to_avoid": ["you need to hook non-Unity .NET applications", "you need a general-purpose detour library for native C/C++ code", "your Unity version changes the mono runtime in unsupported ways"], "when_to_choose": ["you need to modify Unity editor or engine behavior without editing or rebuilding DLLs", "you need runtime method hooking that preserves debugging and stack traces", "you target Unity mono or il2cpp on Windows, Mac, or Android"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/monohook", "repo": "Misaka-Mikoto-Tech/MonoHook", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "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:03:24.972371+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:24.972371+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:57:32.291664+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4460e34c94a63cbb8fe180823405be5452ea89032cfebab237e1e9d200d73c0a", "fetched_at": "2026-08-28T04:03:24.972371+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Misaka-Mikoto-Tech/MonoHook"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2992, "days_push": 1076, "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}}