{"id":28586121,"url":"https://github.com/x64dbg/dotx64dbg","last_synced_at":"2025-06-11T06:33:05.874Z","repository":{"id":37792328,"uuid":"375723461","full_name":"x64dbg/DotX64Dbg","owner":"x64dbg","description":"x64Dbg plugin that enables C# plugins with hot-loading support and scripting.","archived":false,"fork":false,"pushed_at":"2024-04-12T01:19:42.000Z","size":2682,"stargazers_count":189,"open_issues_count":7,"forks_count":22,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-04-12T04:27:42.031Z","etag":null,"topics":["csharp","dotnet","hot-reload","managed-plugins","plugins","scripting","x64dbg","x64dbg-plugin"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/x64dbg.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-06-10T14:20:01.000Z","updated_at":"2024-04-10T14:15:06.000Z","dependencies_parsed_at":"2024-03-16T19:55:02.729Z","dependency_job_id":"d229b21b-86ae-49df-83f8-d08e912707ef","html_url":"https://github.com/x64dbg/DotX64Dbg","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x64dbg%2FDotX64Dbg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x64dbg%2FDotX64Dbg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x64dbg%2FDotX64Dbg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x64dbg%2FDotX64Dbg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/x64dbg","download_url":"https://codeload.github.com/x64dbg/DotX64Dbg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/x64dbg%2FDotX64Dbg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259214338,"owners_count":22822863,"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":["csharp","dotnet","hot-reload","managed-plugins","plugins","scripting","x64dbg","x64dbg-plugin"],"created_at":"2025-06-11T06:30:53.249Z","updated_at":"2025-06-11T06:33:04.657Z","avatar_url":"https://github.com/x64dbg.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DotX64Dbg (EARLY ALPHA)\nPlugins and Scripting with C# for x64Dbg.\n\n# Create Plugins for X64Dbg with ease\nDotX64Dbg aims to provide a seamless way to write and test plugins\nfor X64Dbg using .Net 6.0 and C#.\n\nYou can create/edit/debug plugins without ever restarting x64Dbg.\n![Live Coding](.github/media/livecoding.gif?raw=true)\n\nThis gif showcases how you debug and edit your plugin at the same\ntime, this also showcases how you can register custom commands for\nx64Dbg on the fly, the same works also for expressions.\n\n## No more binaries\nDotX64Dbg does not load the plugins as binaries instead it will\nautomatically compile your plugin code as soon something changes\nand reloads it, this also means all plugins will be shipped as pure\ncode which means its a lot harder to hide malicious code in there.\n\n# Installing\nThere is currently no official release. You can grab the latest artifacts\nfrom the CI to try it out or build it yourself. Also older versions of\nx64dbg are not supported by this plugin, we recommend to use the latest\nbuilds.\n\n# Your first Plugin\nCreating new plugins is as easy as creating a new folder with two new files.\nBy default the DotX64Dbg plugins are located in the root directory of X64Dbg \ncalled ```dotplugins``` this can be however configured via ```dotx64dbg.json```.\n\nSimply create a new folder in ```dotplugins``` called ```SamplePlugin```, plugins\nare required to have a file called ```plugin.json``` which should look like\nfollowing:\n```json\n{\n  \"Name\": \"Sample Plugin\",\n  \"Description\": \"My awesome plugin\",\n  \"Version\": \"1.0.0\",\n  \"Author\": \"Bob\",\n  \"Website\": \"http://github.com/[youruser]/yourplugin\",\n}\n```\nWithout the ```plugin.json``` file plugins will not load. The last thing\nyou need is some code that defines the plugin entry class, this is done by\nderiving from ```IPlugin```, you can have only one class that derives from \nthis interface. \nCreate a file named ```SamplePlugin.cs```, you can choose any filename you like. \nTo bootstrap the plugin you need at least following minimal example:\n```csharp\nusing System;\nusing Dotx64Dbg;\n\npublic class SamplePlugin : IPlugin\n{\n    public SamplePlugin()\n    {\n        // Constructor, only called during first load\n    }\n    \n    // Called as soon the plugin is fully initialized, this is called after\n    // the constructor and only once the for the initial plugin load.\n    public void Startup()\n    {\n        Console.WriteLine(\"Startup time!\");\n    }\n    \n    // Called before the plugin is about to be unloaded.\n    public void Shutdown()\n    {\n        Console.WriteLine(\"We are about to go offline\");\n    }\n}\n```\nAfter the two files are created DotX64Dbg will detect the changes\nand immediately starts compiling/(re-)loading the plugin. DotX64Dbg\nwill also automatically generate a ```.csproj``` file with the correct\nassembly references being setup. If you want to debug your plugins\nsimply attach Visual Studio to x64Dbg and place the breakpoints where\nyou would like to stop, its as simple as that.\n\nThere is also a comprehensive example plugin available [here](bin/dotplugins/example)\n\n# Scripting\nDotX64Dbg also provides a scripting interface, unlike plugins a script\nwill be without state and only executes once. Scripts can use the same\nAPIs as plugins. To execute scripts use following command:\n```\ndotscript \u003cpath to script file\u003e\n```\nYou can find an example script [here](bin/dotscripts/TestScript.cs)\n\n# Building\n\n## Requirements\n- Net 6.0 SDK.\n- Visual Studio 2019 Community or greater.\n\n## Building\nAfter everything is setup you should be open Dotx64Dbg.sln and be able\nto build the entire solution.\n\n# Documentation\nThe plan is to document all public API which also makes the documentation\navailable to Intellisense. A good starting point is to check the plugin\nexample, a lot of functions and classes already have minimal documentation, \nthe best way to find out whats there is to explore the Assembly in Visual Studio \nwith the Object Explorer.\n![Object Explorer](.github/media/objectexplorer.png?raw=true)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fx64dbg%2Fdotx64dbg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fx64dbg%2Fdotx64dbg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fx64dbg%2Fdotx64dbg/lists"}