{"id":29089874,"url":"https://github.com/0xgeorgii/clranalyzer","last_synced_at":"2025-06-28T04:05:21.917Z","repository":{"id":78296826,"uuid":"129150856","full_name":"0xGeorgii/ClrAnalyzer","owner":"0xGeorgii","description":".NET library for hooking and dumping Clr","archived":false,"fork":false,"pushed_at":"2024-06-11T06:39:37.000Z","size":122,"stargazers_count":41,"open_issues_count":2,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-11T07:50:04.351Z","etag":null,"topics":["clr","code-analysis","dotnet","jit","performance"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xGeorgii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-04-11T20:33:25.000Z","updated_at":"2024-06-11T06:39:40.000Z","dependencies_parsed_at":"2023-03-07T20:00:24.494Z","dependency_job_id":null,"html_url":"https://github.com/0xGeorgii/ClrAnalyzer","commit_stats":null,"previous_names":["0xgeorgii/clranalyzer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/0xGeorgii/ClrAnalyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGeorgii%2FClrAnalyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGeorgii%2FClrAnalyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGeorgii%2FClrAnalyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGeorgii%2FClrAnalyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xGeorgii","download_url":"https://codeload.github.com/0xGeorgii/ClrAnalyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xGeorgii%2FClrAnalyzer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262371681,"owners_count":23300597,"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":["clr","code-analysis","dotnet","jit","performance"],"created_at":"2025-06-28T04:05:21.114Z","updated_at":"2025-06-28T04:05:21.899Z","avatar_url":"https://github.com/0xGeorgii.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ClrAnalyzer\n.NET library for hooking and dumping Clr\n\nThe article with the descripntion can be found [here](https://0xgeorgii.github.io/articles/just-in-time-hooking)\n\nThe video with the demo of usage can be found [here](https://www.youtube.com/watch?v=NqHGiBimD7I)\n\nThe :ru: video from the DotNet meetup can be found [here](https://youtu.be/39fOc4Jr8lE) with the :uk: [slides](https://speakerdeck.com/dotnetru/gieorghii-plotnikov-just-in-time-hooking)\n\n## Example of output\n\n```\nnative size of code: 8\nIL code: 000001C923D7B380\n===\nIL_0000: ldarg.0\nIL_0001: call \u003c0x06000002\u003e\nIL_0006: nop\nIL_0007: ret\n===\nmethod attribs: 4800000\n===\n\tCORINFO_FLG_CONSTRUCTOR: This method is an instance or type initializer\n\tCORINFO_FLG_NOSECURITYWRAP: The method requires no security checks\n===\nnative size of code: 12\nIL code: 000001C923D7A5F0\n===\nIL_0000: nop\nIL_0001: ldarg.1\nIL_0002: conv.r8\nIL_0003: call \u003c0x0a00000e\u003e\nIL_0008: stloc.0\nIL_0009: ldloc.0\nIL_000a: conv.i4\nIL_000b: ldarg.2\nIL_000c: mul\nIL_000d: stloc.1\nIL_000e: br.s IL_0010\nIL_0010: ldloc.1\nIL_0011: ret\n===\nmethod attribs: 14000050\n===\n\tCORINFO_FLG_FINAL\n\tCORINFO_FLG_VIRTUAL\n\tCORINFO_FLG_NOSECURITYWRAP: The method requires no security checks\n\tCORINFO_FLG_DONT_INLINE: The method should not be inlined\n===\nnative size of code: 14\nIL code: 000001C923D7AAC0\n===\nIL_0000: nop\nIL_0001: ldarg.1\nIL_0002: conv.r8\nIL_0003: call \u003c0x0a00000e\u003e\nIL_0008: stloc.0\nIL_0009: ldloc.0\nIL_000a: conv.i4\nIL_000b: ldarg.2\nIL_000c: mul\nIL_000d: ldc.i4.2\nIL_000e: mul\nIL_000f: stloc.1\nIL_0010: br.s IL_0012\nIL_0012: ldloc.1\nIL_0013: ret\n===\nmethod attribs: 4000060\n===\n\tCORINFO_FLG_SYNCH\n\tCORINFO_FLG_VIRTUAL\n\tCORINFO_FLG_NOSECURITYWRAP: The method requires no security checks\n===\nnative size of code: 20\nIL code: 000001C923D7B070\n===\nIL_0000: nop\nIL_0001: ldarg.0\nIL_0002: conv.r8\nIL_0003: call \u003c0x0a00000e\u003e\nIL_0008: stloc.0\nIL_0009: ldloc.0\nIL_000a: conv.i4\nIL_000b: ldarga.s 0x01\nIL_000d: ldarg.0\nIL_000e: call \u003c0x0a00000f\u003e\nIL_0013: call \u003c0x0a000010\u003e\nIL_0018: mul\nIL_0019: ldc.i4.3\nIL_001a: mul\nIL_001b: stloc.1\nIL_001c: br.s IL_001e\nIL_001e: ldloc.1\nIL_001f: ret\n===\nmethod attribs: 4010008\n===\n\tCORINFO_FLG_STATIC\n\tCORINFO_FLG_FORCEINLINE: The method should be inlined if possible\n\tCORINFO_FLG_NOSECURITYWRAP: The method requires no security checks\n===\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xgeorgii%2Fclranalyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xgeorgii%2Fclranalyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xgeorgii%2Fclranalyzer/lists"}