-
Notifications
You must be signed in to change notification settings - Fork 143
Home
WPF HexEditor is a full binary analysis IDE for Windows built entirely with WPF and .NET 8.0. Think Visual Studio for binary files — with a VS-style docking engine, a plugin system, an integrated terminal, a code editor with LSP support, a XAML visual designer, a multi-format document editor, and a powerful hex editor control at its core.
flowchart LR
subgraph IDE["WpfHexEditor IDE v0.6.4.2"]
App["IDE Application\nWpfHexEditor.App"]
Editors["12+ Editors\nHex · Code · XAML Designer · Text\nTBL · JSON · Image · Entropy\nDiff Viewer · Structure · Document · Script"]
Panels["20+ Panels\nSolution Explorer · Terminal · Parsed Fields\nAssembly Explorer · Archive Explorer\nBreakpoint Explorer · Call/Type Hierarchy\nPlugin Manager · Plugin Monitoring · ..."]
Plugins["Plugin System\nSDK (SemVer 2.0 frozen) + PluginHost\n15+ first-party plugins"]
end
Control["Standalone HexEditor Control\nembeddable in any WPF app"]
App --> Editors
App --> Panels
App --> Plugins
IDE -.->|reuses| Control
| Getting Started | Clone, build and run the IDE in minutes |
| Architecture | Complete IDE + control architecture with Mermaid diagrams |
| ↳ Docking Engine | XAML setup, layout persistence, panel registration |
| ↳ Project System |
.whsln / .whproj / VS .sln, ISolutionLoader, build system |
| ↳ Editor Registry |
IDocumentEditor contract, format-aware editor selection |
| ↳ ContentId Routing | Tab & panel ID mapping, duplicate prevention |
| Plugin System | Build your own plugin with the SDK |
| Terminal | 31+ commands, scripting, plugin API |
| Plugin Monitoring | Real-time CPU/memory charts per plugin |
| ByteProvider | Virtual view, PositionMapper, undo/redo, smart save |
| Rendering Engine | DrawingContext pipeline, 99% faster than V1 |
| Search Architecture | LRU cache, Boyer-Moore, SIMD, parallel search |
| FAQ | Frequently asked questions |
| Contributing | How to contribute |
| Feature | Description |
|---|---|
| VS-Style Docking | Float, dock, auto-hide, colored tabs — 100% in-house (WpfHexEditor.Shell), 19 themes |
| Project System |
.whsln / .whproj, VS .sln / .csproj, open-folder mode, format migration |
| Build System |
IBuildAdapter + MSBuild/dotnet CLI adapter plugin, parallel builds, progress bar, error panel |
| Workspace System |
.whidews — ZIP+JSON workspace snapshots, theme/layout/solution/files restore |
| Plugin System |
IWpfHexEditorPluginV2, .whxplugin packages, hot-unload, sandbox isolation, permissions, 22 terminal commands |
| Terminal | 31+ built-in commands, HxScriptEngine, mode badge, session export, plugin command API |
| Plugin Monitoring | Per-plugin CPU% + memory charts, PerformanceCounter + GC, 1 s polling |
| 400+ Format Detection |
.whfmt v2.0 — repeating/union/versionedBlocks/pointer/checksums/assertions/forensic/aiHints; 20 critical formats |
| Inline Search |
Ctrl+F quick bar + Ctrl+Shift+F advanced (Hex/Text/Regex/TBL/Wildcard) |
| LSP Engine | Full JSON-RPC LSP 3.17 client — 13 providers, OmniSharp / fsautocomplete / clangd |
| Debugger | VS-style debug UI, breakpoints, step over/into/out, execution line highlight, call stack, watch, locals |
| Options | VS2026-style settings — 20+ pages across all categories with live apply |
| 19 Themes | Dark · Light · VS2022Dark · DarkGlass · Minimal · Office · Cyberpunk · VisualStudio · and 11 more |
| Unit Testing Panel |
dotnet test runner, TRX parser, pass/fail/skip counters, auto-run on build success |
| Assembly Explorer | .NET PE inspection, C# + IL decompilation → Code Editor tab |
| Block Undo/Redo | Coalescing (500 ms), transactions, VS-style history dropdown across editors |
| Diff Viewer | Byte-level + text + structure diff — GlyphRun canvas, DiffHub launcher, overview ruler |
| Editor | Progress | Notes |
|---|---|---|
| Hex Editor | ~65% | Insert/overwrite, 400+ formats, bookmarks, scroll markers, breadcrumb bar, column/row highlight |
| Code Editor | ~85% | LSP, navigation bar, sticky scroll, inline hints, bracket pair colorization, color swatch, auto-close, end-of-block hints, find all references, word highlight, minimap, split view |
| XAML Designer | ~40% | Split-pane live canvas, bidirectional sync, adorners, snap, 9 panels, overkill undo |
| Document Editor | ~35% | RTF/DOCX/ODT — WYSIWYG canvas renderer, cursor, text input, undo, tables, images, page settings |
| TBL Editor | ~75% | Character table editor for ROM hacking |
| Text Editor | ~40% | Encoding support, zoom, word wrap |
| Diff Viewer | ~65% | Binary/text/structure diff — GlyphRun canvas renderer, DiffHub, overview ruler |
| Entropy Viewer | ~30% | Entropy graph for binary analysis |
| Image Viewer | ~40% | Zoom/pan, rotate/flip/crop/resize pipeline |
| Structure Editor | ~30% |
.whfmt binary template editor |
| Disassembly Viewer | ~20% | x86/x64 instruction decoding (stub) |
| Script Editor | ~40% | HxScript + C#Script, CodeEditorSplitHost, ILocalCompletionProvider |
| Panel | Progress | Notes |
|---|---|---|
| Solution Explorer | ~75% | Virtual/physical folders, D&D, lazy source outline |
| Parsed Fields | ~65% | 400+ format detection, FormatNavigator, forensic alerts |
| Data Inspector | ~60% | 40+ byte interpretations at caret |
| Assembly Explorer | ~30% | .NET PE tree, C# decompilation |
| Archive Explorer | ~45% | ZIP/RAR/7z/TAR, extract, in-place hex preview |
| Call Hierarchy | ~65% | LSP 3.17 — incoming/outgoing call tree (Shift+Alt+H) |
| Type Hierarchy | ~65% | LSP 3.17 — supertypes/subtypes (Ctrl+Alt+F12) |
| Breakpoint Explorer | ~55% | Solution-scoped breakpoints, hit counts, enable/disable |
| File Comparison | ~55% | DiffHub launcher + full diff viewer as document tab |
| Terminal Panel | ~65% | Multi-tab, ITerminalService plugin API |
| Output Panel | ~70% | Build channel, severity colors, auto-scroll |
| Error Panel | ~65% | Diagnostics from any IDiagnosticSource editor |
| Properties Panel | ~50% | Context-aware (F4), 400 ms debounce |
| Plugin Manager | ~55% | Browse, enable/disable, uninstall |
| Plugin Monitoring | ~50% | Real-time CPU% + memory charts |
| Options | ~70% | 20+ pages — Environment, Hex Editor, Code Editor, Text Editor, Debugger, Build & Run |
| Unit Testing | ~65% | dotnet test runner, TRX parser, color-coded outcomes |
| Quick Search | ~60% | Inline Ctrl+F overlay |
| Advanced Search | ~40% | 5 modes: Hex, Text, Regex, TBL, Wildcard |
The WpfHexEditor.HexEditor UserControl can be embedded in any WPF application without the IDE:
-
99% faster rendering — custom
DrawingContextvs legacy ItemsControl - 10-100x faster search — LRU cache + Boyer-Moore + SIMD + parallel multi-core
-
80-90% less memory —
Span<T>+ArrayPool - 21 specialized services — MVVM, 100% testable
- 19 languages — instant runtime switching
- Handles files from bytes to gigabytes
- Breadcrumb bar, column/row highlight, scroll markers, block undo/redo
- Options tree reorganization — Code Editor section with "Appearance & Colors", "Inline Hints", "Navigation", "Features", "Language Servers"
-
Bracket pair colorization (#162) —
CE_Bracket_1/2/3/4depth tokens,BracketDepthColorizerpipeline, synthetic bracket rule from.whfmtbracketPairs - Color swatch preview (#168) — 12×12 inline swatch for CSS/XAML/C# color literals
- Format-on-save (#159 partial) — toggle in settings applied to Code Editor on open
- DocumentEditor WYSIWYG (ADR-DOCEDIT-WYSIWYG) — cursor, text input, tables, images, undo, page settings, keyboard navigation, find/replace, styles panel; RTF/DOCX/ODT loaders
-
HexEditor block undo/redo (ADR-UNDO-01) — paste/cut/delete as single step,
UndoGroupcomposite, coalescence, VS-style history dropdown - Breakpoint overkill upgrade — hover popup, solution-scoped persistence, hit counts, Explorer panel
- DiffViewer — GlyphRun canvas renderers, DiffHub document tab, structure diff, format field overlay
See CHANGELOG for full history.
git clone https://github.com/abbaye/WpfHexEditorIDE.gitOpen WpfHexEditorControl.sln → set WpfHexEditor.App as startup → F5.
Embed the control in your own WPF app:
<ProjectReference Include="..\WpfHexEditor.Core\WpfHexEditor.Core.csproj" />
<ProjectReference Include="..\WpfHexEditor.HexEditor\WpfHexEditor.HexEditor.csproj" /><hex:HexEditor FileName="data.bin" />The V1 NuGet package (
WPFHexaEditor) remains available but is no longer maintained. V2 targets .NET 8.0-windows exclusively.
- Author: Derek Tremblay (derektremblay666@gmail.com)
- Contributors: Claude Sonnet 4.6 · ehsan69h · Janus Tida
- License: GNU Affero General Public License v3.0
- Issues: GitHub Issue Tracker
- Discussions: GitHub Discussions
✨ Wpf HexEditor user control, by Derek Tremblay (derektremblay666@gmail.com) coded for your fun! 😊🤟
- API Reference
- Performance
- Services
- Core Components
- ByteProvider
- Rendering Engine
- Search Architecture
- Bracket pair colorization (
CE_Bracket_1/2/3/4) - Color swatch preview (CSS/XAML/C#)
- Format-on-save toggle
- Options tree reorganized (Code Editor section)
- DocumentEditor WYSIWYG (RTF/DOCX/ODT)
- HexEditor block undo/redo (
UndoGroup, history dropdown) - Breakpoint overkill upgrade (hit counts, explorer)
- DiffViewer GlyphRun canvas + DiffHub