• Stars
    star
    196
  • Rank 198,553 (Top 4 %)
  • Language
    C++
  • License
    MIT License
  • Created over 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

x64Dbg plugin that enables C# plugins with hot-loading support and scripting.

DotX64Dbg (EARLY ALPHA)

Plugins and Scripting with C# for x64Dbg.

Create Plugins for X64Dbg with ease

DotX64Dbg aims to provide a seamless way to write and test plugins for X64Dbg using .Net 6.0 and C#.

You can create/edit/debug plugins without ever restarting x64Dbg. Live Coding

This gif showcases how you debug and edit your plugin at the same time, this also showcases how you can register custom commands for x64Dbg on the fly, the same works also for expressions.

No more binaries

DotX64Dbg does not load the plugins as binaries instead it will automatically compile your plugin code as soon something changes and reloads it, this also means all plugins will be shipped as pure code which means its a lot harder to hide malicious code in there.

Installing

There is currently no official release. You can grab the latest artifacts from the CI to try it out or build it yourself. Also older versions of x64dbg are not supported by this plugin, we recommend to use the latest builds.

Your first Plugin

Creating new plugins is as easy as creating a new folder with two new files. By default the DotX64Dbg plugins are located in the root directory of X64Dbg called dotplugins this can be however configured via dotx64dbg.json.

Simply create a new folder in dotplugins called SamplePlugin, plugins are required to have a file called plugin.json which should look like following:

{
  "Name": "Sample Plugin",
  "Description": "My awesome plugin",
  "Version": "1.0.0",
  "Author": "Bob",
  "Website": "http://github.com/[youruser]/yourplugin",
}

Without the plugin.json file plugins will not load. The last thing you need is some code that defines the plugin entry class, this is done by deriving from IPlugin, you can have only one class that derives from this interface. Create a file named SamplePlugin.cs, you can choose any filename you like. To bootstrap the plugin you need at least following minimal example:

using System;
using Dotx64Dbg;

public class SamplePlugin : IPlugin
{
    public SamplePlugin()
    {
        // Constructor, only called during first load
    }
    
    // Called as soon the plugin is fully initialized, this is called after
    // the constructor and only once the for the initial plugin load.
    public void Startup()
    {
        Console.WriteLine("Startup time!");
    }
    
    // Called before the plugin is about to be unloaded.
    public void Shutdown()
    {
        Console.WriteLine("We are about to go offline");
    }
}

After the two files are created DotX64Dbg will detect the changes and immediately starts compiling/(re-)loading the plugin. DotX64Dbg will also automatically generate a .csproj file with the correct assembly references being setup. If you want to debug your plugins simply attach Visual Studio to x64Dbg and place the breakpoints where you would like to stop, its as simple as that.

There is also a comprehensive example plugin available here

Scripting

DotX64Dbg also provides a scripting interface, unlike plugins a script will be without state and only executes once. Scripts can use the same APIs as plugins. To execute scripts use following command:

dotscript <path to script file>

You can find an example script here

Building

Requirements

  • Net 6.0 SDK.
  • Visual Studio 2019 Community or greater.

Building

After everything is setup you should be open Dotx64Dbg.sln and be able to build the entire solution.

Documentation

The plan is to document all public API which also makes the documentation available to Intellisense. A good starting point is to check the plugin example, a lot of functions and classes already have minimal documentation, the best way to find out whats there is to explore the Assembly in Visual Studio with the Object Explorer. Object Explorer

More Repositories

1

x64dbg

An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.
C++
44,182
star
2

ScyllaHide

Advanced usermode anti-anti-debugger. Forked from https://bitbucket.org/NtQuery/scyllahide
C++
3,404
star
3

GleeBug

Debugging Framework for Windows.
C
1,199
star
4

docs

Documentation repository.
Python
968
star
5

Scripts

A collection of x64dbg scripts. Feel free to submit a pull request to add your script.
C++
493
star
6

x64dbgida

Official x64dbg plugin for IDA Pro.
Python
446
star
7

TitanEngine

TitanEngine Community Edition. Debug engine used by x64dbg.
C++
374
star
8

XEDParse

XEDParse: A MASM-like, single-line plaintext assembler
C++
165
star
9

OllyDbg

Implementation of OllyDbg 1.10 plugin SDK for x64dbg.
Rich Text Format
100
star
10

PluginTemplate

Plugin template for x64dbg.
C++
93
star
11

yarasigs

Various Yara signatures (possibly to be included in a release later).
YARA
83
star
12

SlothBP

Collaborative Breakpoint Manager for x64dbg.
C
79
star
13

x64dbgbinja

Official x64dbg plugin for Binary Ninja
Python
68
star
14

InterObfu

Intermediate x86 instruction representation for use in obfuscation/deobfuscation.
C++
53
star
15

x64dbgpylib

Port of windbglib to x64dbgpy, in an effort to support mona.py in x64dbg.
Python
51
star
16

PluginManager

Plugin manager plugin for x64dbg.
C#
42
star
17

btparser

Lexer/Parser for 010 Editor's Binary Templates
C++
31
star
18

strmatch

Simple string matching plugin for x64dbg. Supports UTF8, UTF16 and Local codepages.
C
31
star
19

LabelPEB

Plugin to label PEB addresses.
C
28
star
20

QtPlugin

Plugin demonstrating how to link with Qt.
C
26
star
21

StaticAnalysis

Static analysis plugin for x64dbg (now deprecated).
C
26
star
22

AutoExportPatches

Plugin that automatically stores patches in the database and restores them on restart.
C
25
star
23

Classroom

Plugin of x64dbg to help you analyze object-oriented applications
C
25
star
24

testplugin

Example plugin for x64dbg.
C
24
star
25

PluginDevHelper

Simple utility that allows you to automatically unload/reload an x64dbg plugin while developing with Visual Studio.
C
21
star
26

asmjit_xedparse

XEDParse emulator based on asmjit/asmtk.
C++
21
star
27

ODbgScript

C++
17
star
28

LLVMDemangle

Standalone DLL that implements LLVM's demangling functionality.
C++
17
star
29

sdk

Offical x64dbg SDK repository.
C
17
star
30

deps

16
star
31

PyQt5

Compile scripts for PyQt5 (Qt 5.6.0), Python 2.7.11 and MSVC 2013.
Batchfile
16
star
32

capstone_wrapper

C++ wrapper for capstone (x86 only)
C
15
star
33

QtDraggingPane

Visual Studio-like draggable windows in Qt
C++
15
star
34

x64dbgpy3

WIP python3 plugin for x64dbg
C++
14
star
35

blog

Blog for x64dbg.
CSS
13
star
36

x64dbg_headless

Proof of concept headless GUI DLL
C
12
star
37

x64dbg.github.io

Website
HTML
11
star
38

DbGit

Simple plugin to automatically add x64dbg databases to version control.
C
7
star
39

ldconvert

Library to convert 80-bit long double to and from strings.
C++
7
star
40

QtGraph

Some graphing stuff with OGDF
C++
6
star
41

QtSettings

Automated settings dialog.
C++
6
star
42

x64dbg_saxparser

Proof of concept JSON parsing strategy for x64dbg that will drastically improve performance and memory usage.
C++
5
star
43

wiki

Repository for the community wiki.
5
star
44

Fuck1481

Fixes x64dbg/x64dbg#1481
C
5
star
45

system

Plugin to execute system commands.
C
4
star
46

gitee-test

Repo to test syncing with gitee
4
star
47

QtStructView

Structure viewing & mapping window built in Qt
4
star
48

QtEntropyGraph

Entropy Graph in Qt
C++
4
star
49

Translations

Auto-generated Qt English translation file.
C#
4
star
50

ogdf

Compiled version of the OGDF library.
C++
4
star
51

FrozenStorm

FrozenStorm is a project to make cryptography, hashing, checksumming, compression and transformation algorithms available over a unified interface.
C
4
star
52

SnowmanDummy

Dummy DLL for snowman.
C++
3
star
53

TypeRepresentation

Representation of types.
C++
2
star
54

x64dbg_forwarder

Export forwarder for compatibility with old plugins.
C++
2
star
55

workflows

Repository for workflows to perform various maintenance tasks across the x64dbg organization.
1
star
56

BinaryNinjaDisassembly

C++ port of Binary Ninja
C++
1
star
57

GetCharABCWidthsI_cache

Plugin to improve performance of QWindowsFontEngine::getGlyphBearings.
C
1
star
58

x64_dbg_old

https://bitbucket.org/mrexodia/x64_dbg_old
C
1
star