RoboDBG
Loading...
Searching...
No Matches
debugger.h File Reference

Main Debugger file. More...

#include <windows.h>
#include <string>
#include <vector>
#include <tlhelp32.h>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <unordered_map>
#include <tchar.h>
#include <stdio.h>
#include <psapi.h>
#include <map>
#include <fstream>
#include <winternl.h>
#include <intrin.h>
#include "util.h"

Go to the source code of this file.

Classes

struct  RoboDBG::thread_t
 Represents a thread in a debugged process. More...
struct  RoboDBG::hwBp_t
 Hardware breakpoint configuration. More...
struct  RoboDBG::MemoryRegion_t
 Represents a memory region in a process. More...
class  RoboDBG::Debugger
 Main Debugger class. More...

Enumerations

enum  RoboDBG::BreakpointAction { RoboDBG::BREAK , RoboDBG::RESTORE , RoboDBG::SINGLE_STEP }
 Specifies the action to take when a breakpoint is hit. More...
enum class  RoboDBG::AccessType { EXECUTE , WRITE , READWRITE }
 Specifies the type of memory access that triggers a hardware breakpoint. More...
enum class  RoboDBG::DRReg {
  NOP = -1 , DR0 = 0 , DR1 = 1 , DR2 = 2 ,
  DR3 = 3
}
 Hardware debug registers used for breakpoints. More...
enum class  RoboDBG::BreakpointLength { BYTE = 0 , WORD = 1 , DWORD = 2 , QWORD = 3 }
 Length of the hardware breakpoint watch. More...
enum class  RoboDBG::Flags32 : DWORD {
  CF = 1 << 0 , PF = 1 << 2 , AF = 1 << 4 , ZF = 1 << 6 ,
  SF = 1 << 7 , TF = 1 << 8 , IF = 1 << 9 , DF = 1 << 10 ,
  OF = 1 << 11
}
 x86 CPU status flags. More...
enum class  RoboDBG::Register32 { }
 32-bit x86 general-purpose registers. More...

Detailed Description

Main Debugger file.

Author
Milkshake

Definition in file debugger.h.

Enumeration Type Documentation

◆ AccessType

enum class RoboDBG::AccessType
strong

Specifies the type of memory access that triggers a hardware breakpoint.

Enumerator
EXECUTE 

Trigger when executing instructions at the address.

WRITE 

Trigger when writing to the address.

READWRITE 

Trigger when reading from or writing to the address.

Definition at line 47 of file debugger.h.

◆ BreakpointAction

Specifies the action to take when a breakpoint is hit.

Enumerator
BREAK 

Stop execution at the breakpoint.

RESTORE 

Restore the original instruction at the breakpoint.

SINGLE_STEP 

Perform a single-step execution after hitting the breakpoint.

Definition at line 37 of file debugger.h.

◆ BreakpointLength

enum class RoboDBG::BreakpointLength
strong

Length of the hardware breakpoint watch.

Enumerator
BYTE 

1 byte.

WORD 

2 bytes.

DWORD 

4 bytes.

QWORD 

8 bytes.

Definition at line 69 of file debugger.h.

◆ DRReg

enum class RoboDBG::DRReg
strong

Hardware debug registers used for breakpoints.

Enumerator
NOP 

No register assigned.

DR0 

Debug register 0.

DR1 

Debug register 1.

DR2 

Debug register 2.

DR3 

Debug register 3.

Definition at line 57 of file debugger.h.

◆ Flags32

enum class RoboDBG::Flags32 : DWORD
strong

x86 CPU status flags.

Enumerator
CF 

Carry Flag.

PF 

Parity Flag.

AF 

Auxiliary Carry Flag.

ZF 

Zero Flag.

SF 

Sign Flag.

TF 

Trap Flag.

IF 

Interrupt Enable Flag.

DF 

Direction Flag.

OF 

Overflow Flag.

Definition at line 132 of file debugger.h.

◆ Register32

enum class RoboDBG::Register32
strong

32-bit x86 general-purpose registers.

Enumerator
EIP 

Instruction Pointer.

Definition at line 160 of file debugger.h.