{"id":13594747,"url":"https://github.com/dnSpyEx/dnSpy","last_synced_at":"2025-04-09T10:32:03.012Z","repository":{"id":37489076,"uuid":"371358850","full_name":"dnSpyEx/dnSpy","owner":"dnSpyEx","description":"Unofficial revival of the well known .NET debugger and assembly editor, dnSpy","archived":false,"fork":true,"pushed_at":"2025-03-25T10:35:31.000Z","size":40209,"stargazers_count":7986,"open_issues_count":116,"forks_count":518,"subscribers_count":143,"default_branch":"master","last_synced_at":"2025-03-25T11:32:30.628Z","etag":null,"topics":["baml","csharp","debug","debugger","decompile","decompiler","dotnet","dotnetcore","dotnetframework","mono","unity","vbnet","xaml"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"dnSpy/dnSpy","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnSpyEx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"ElektroKill"}},"created_at":"2021-05-27T12:04:22.000Z","updated_at":"2025-03-25T10:35:47.000Z","dependencies_parsed_at":"2023-10-13T10:17:55.238Z","dependency_job_id":null,"html_url":"https://github.com/dnSpyEx/dnSpy","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnSpyEx%2FdnSpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnSpyEx%2FdnSpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnSpyEx%2FdnSpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnSpyEx%2FdnSpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnSpyEx","download_url":"https://codeload.github.com/dnSpyEx/dnSpy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248020592,"owners_count":21034459,"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":["baml","csharp","debug","debugger","decompile","decompiler","dotnet","dotnetcore","dotnetframework","mono","unity","vbnet","xaml"],"created_at":"2024-08-01T16:01:38.693Z","updated_at":"2025-04-09T10:31:58.002Z","avatar_url":"https://github.com/dnSpyEx.png","language":"C#","readme":"# dnSpyEx\n\ndnSpyEx is an unofficial continuation of the [dnSpy](https://github.com/dnSpy/dnSpy) project which is a debugger and .NET assembly editor. You can use it to edit and debug assemblies even if you don't have any source code available. Main features:\n\n- Debug .NET and Unity assemblies\n- Edit .NET and Unity assemblies\n- Light and dark themes\n\nSee below for more features\n\n![debug-animated](images/debug-animated.gif)\n\n![edit-code-animated](images/edit-code-animated.gif)\n\n## Binaries\n\nLatest stable release: https://github.com/dnSpyEx/dnSpy/releases\n\nIf you like living on the edge you can use the latest \"beta\" builds from:\n[![](https://github.com/dnSpyEx/dnSpy/workflows/GitHub%20CI/badge.svg)](https://github.com/dnSpyEx/dnSpy/actions)\n\n## Building\n\n```PS\ngit clone --recursive https://github.com/dnSpyEx/dnSpy.git\ncd dnSpy\n# or dotnet build\n./build.ps1 -NoMsbuild\n```\n\nTo debug Unity games, you need this repo too: https://github.com/dnSpyEx/dnSpy-Unity-mono\n\n# Debugger\n\n- Debug .NET Framework, .NET and Unity game assemblies, no source code required\n- Set breakpoints and step into any assembly\n- Locals, watch, autos windows\n- Variables windows support saving variables (eg. decrypted byte arrays) to disk or view them in the hex editor (memory window)\n- Object IDs\n- Multiple processes can be debugged at the same time\n- Break on module load\n- Tracepoints and conditional breakpoints\n- Export/import breakpoints and tracepoints\n- Optional Just My Code (JMC) stepping filters for system libraries\n- Call stack, threads, modules, processes windows\n- Break on thrown exceptions (1st chance)\n- Variables windows support evaluating C# / Visual Basic expressions\n- Dynamic modules can be debugged (but not dynamic methods due to CLR limitations)\n- Output window logs various debugging events, and it shows timestamps by default :)\n- Assemblies that decrypt themselves at runtime can be debugged, dnSpy will use the in-memory image. You can also force dnSpy to always use in-memory images instead of disk files.\n- Bypasses for common debugger detection techniques\n- Public API, you can write an extension or use the C# Interactive window to control the debugger\n\n# Assembly Editor\n\n- All metadata can be edited\n- Edit methods and classes in C# or Visual Basic with IntelliSense, no source code required\n- Add new methods, classes or members in C# or Visual Basic\n- IL editor for low-level IL method body editing\n- Low-level metadata tables can be edited. This uses the hex editor internally.\n\n# Hex Editor\n\n- Click on an address in the decompiled code to go to its IL code in the hex editor\n- The reverse of the above, press F12 in an IL body in the hex editor to go to the decompiled code or other high-level representation of the bits. It's great to find out which statement a patch modified.\n- Highlights .NET metadata structures and PE structures\n- Tooltips show more info about the selected .NET metadata / PE field\n- Go to position, file, RVA\n- Go to .NET metadata token, method body, #Blob / #Strings / #US heap offset or #GUID heap index\n- Follow references (Ctrl+F12)\n\n# Other\n\n- BAML decompiler and disassembler\n- Blue, light and dark themes (and a dark high contrast theme)\n- Bookmarks\n- C# Interactive window can be used to script dnSpy\n- Search assemblies for classes, methods, strings, etc\n- Analyze class and method usage, find callers, etc\n- Multiple tabs and tab groups\n- References are highlighted, use Tab / Shift+Tab to move to the next reference\n- Go to the entry point and module initializer commands\n- Go to metadata token or metadata row commands\n- Code tooltips (C# and Visual Basic)\n- Export to project\n\n# List of other open source libraries used by dnSpy\n\n- [ILSpy decompiler engine](https://github.com/icsharpcode/ILSpy) (C# and Visual Basic decompilers)\n- [Roslyn](https://github.com/dotnet/roslyn) (C# and Visual Basic compilers)\n- [dnlib](https://github.com/0xd4d/dnlib) (.NET metadata reader/writer which can also read obfuscated assemblies)\n- [VS MEF](https://github.com/microsoft/vs-mef) (Faster MEF equals faster startup)\n- [ClrMD](https://github.com/microsoft/clrmd) (Access to lower level debugging info not provided by the CorDebug API)\n- [Iced](https://github.com/icedland/iced) (x86/x64 disassembler)\n- [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) (JSON serializer \u0026 deserializer)\n- [NuGet.Configuration](https://github.com/NuGet/NuGet.Client) (NuGet configuration file reader)\n\n# Translating dnSpy\n\n[Click here](https://crowdin.com/project/dnspy) if you want to help with translating dnSpy to your native language.\n\n# Wiki\n\nSee the [Wiki](https://github.com/dnSpyEx/dnSpy/wiki) for build instructions and other documentation.\n\n# License\n\ndnSpy is licensed under [GPLv3](dnSpy/dnSpy/LicenseInfo/GPLv3.txt).\n\n# [Credits](dnSpy/dnSpy/LicenseInfo/CREDITS.txt)\n","funding_links":["https://github.com/sponsors/ElektroKill"],"categories":["C# #","C#","C\\#","Decompilation","Reverse Engineering Tools","Modding","Software Tools","Tools"],"sub_categories":["Metadata Tools","Language Specific Decompilers","Windows"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FdnSpyEx%2FdnSpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FdnSpyEx%2FdnSpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FdnSpyEx%2FdnSpy/lists"}