sdk

package
v0.0.0-...-f53375e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2025 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultHyperdbgServer = "http://127.0.0.1:8888/"
View Source
const MAX_NUMBER_OF_IDT_ENTRIES = 256
View Source
const MAX_NUMBER_OF_IO_APIC_ENTRIES = 400

Variables

View Source
var RegistersNames = []string{}/* 120 elements not displayed */

Functions

This section is empty.

Types

type DEBUGGER_DT_COMMAND_OPTIONS

type DEBUGGER_DT_COMMAND_OPTIONS struct {
	TypeName             string
	SizeOfTypeName       uint64
	Address              uint64
	IsStruct             bool
	BufferAddress        uintptr
	TargetPid            uint32
	AdditionalParameters string
}

type DEBUGGER_EDIT_MEMORY_TYPE

type DEBUGGER_EDIT_MEMORY_TYPE byte
const (
	EDIT_VIRTUAL_MEMORY DEBUGGER_EDIT_MEMORY_TYPE = iota
	EDIT_PHYSICAL_MEMORY
)

type DEBUGGER_READ_MEMORY

type DEBUGGER_READ_MEMORY struct {
	Pid            uint32 // Read from cr3 of what process
	Address        uint64
	Size           uint32
	GetAddressMode bool // Debugger sets whether the read memory is for diassembler or not
	//AddressMode    DEBUGGER_READ_MEMORY_ADDRESS_MODE // Debuggee sets the mode of address
	MemoryType  DEBUGGER_READ_MEMORY_TYPE
	ReadingType DEBUGGER_READ_READING_TYPE
}

type DEBUGGER_READ_MEMORY_ADDRESS_MODE

type DEBUGGER_READ_MEMORY_ADDRESS_MODE byte
const (
	DEBUGGER_READ_ADDRESS_MODE_32_BIT DEBUGGER_READ_MEMORY_ADDRESS_MODE = iota
	DEBUGGER_READ_ADDRESS_MODE_64_BIT
)

type DEBUGGER_READ_MEMORY_TYPE

type DEBUGGER_READ_MEMORY_TYPE byte
const (
	DEBUGGER_READ_PHYSICAL_ADDRESS DEBUGGER_READ_MEMORY_TYPE = iota
	DEBUGGER_READ_VIRTUAL_ADDRESS
)

type DEBUGGER_READ_READING_TYPE

type DEBUGGER_READ_READING_TYPE byte
const (
	READ_FROM_KERNEL DEBUGGER_READ_READING_TYPE = iota
	READ_FROM_VMX_ROOT
)

type DEBUGGER_SHOW_MEMORY_STYLE

type DEBUGGER_SHOW_MEMORY_STYLE byte
const (
	DEBUGGER_SHOW_COMMAND_DT DEBUGGER_SHOW_MEMORY_STYLE = iota + 1
	DEBUGGER_SHOW_COMMAND_DISASSEMBLE64
	DEBUGGER_SHOW_COMMAND_DISASSEMBLE32
	DEBUGGER_SHOW_COMMAND_DB
	DEBUGGER_SHOW_COMMAND_DC
	DEBUGGER_SHOW_COMMAND_DQ
	DEBUGGER_SHOW_COMMAND_DD
	DEBUGGER_SHOW_COMMAND_DUMP
)

type Debugger

type Debugger struct{}

func (Debugger) Assemble

func (Debugger) Assemble(assembly_code string, start_address uint64, buffer_to_store_assembled_data uint64, buffer_size uint32) bool

func (Debugger) AssembleGetLength

func (Debugger) AssembleGetLength(assembly_code string, start_address uint64, length uint32) bool

func (Debugger) CheckMultilineCommand

func (Debugger) CheckMultilineCommand(current_command string, reset bool) bool

func (Debugger) ConnectLocalDebugger

func (Debugger) ConnectLocalDebugger()

func (Debugger) ConnectRemoteDebugger

func (Debugger) ConnectRemoteDebugger(ip string, port string) string

func (Debugger) Continue

func (Debugger) Continue()

func (Debugger) ContinuePreviousCommand

func (Debugger) ContinuePreviousCommand() bool

func (Debugger) CpuReadVendorString

func (Debugger) CpuReadVendorString() string

func (Debugger) DebugCloseRemoteDebugger

func (Debugger) DebugCloseRemoteDebugger() bool

func (Debugger) DebugCurrentDeviceUsingComPort

func (Debugger) DebugCurrentDeviceUsingComPort(port_name string, baudrate uint32) bool

func (Debugger) DebugRemoteDeviceUsingComPort

func (Debugger) DebugRemoteDeviceUsingComPort(port_name string, baudrate uint32, pause_after_connection bool) bool

func (Debugger) DebugRemoteDeviceUsingNamedPipe

func (Debugger) DebugRemoteDeviceUsingNamedPipe(named_pipe string, pause_after_connection bool) bool

func (Debugger) DebuggerGetKernelBase

func (Debugger) DebuggerGetKernelBase() uint64

func (Debugger) DisableTransparentMode

func (Debugger) DisableTransparentMode() bool

func (Debugger) EnableTransparentMode

func (Debugger) EnableTransparentMode(ProcessId uint32, ProcessName string, IsProcessId bool) bool

func (Debugger) GetIdtEntry

func (Debugger) GetIoApic

func (Debugger) GetIoApic(io_apic IO_APIC_ENTRY_PACKETS) bool

func (Debugger) GetLocalApic

func (Debugger) GetLocalApic(local_apic PLAPIC_PAGE, is_using_x2apic bool) bool

func (Debugger) HwdbgScriptRunScript

func (Debugger) HwdbgScriptRunScript(script string, instance_filepath_to_read string, hardware_script_file_path_to_save string, initial_bram_buffer_size uint32) bool

func (Debugger) InstallVmmDriver

func (Debugger) InstallVmmDriver() string

func (Debugger) LoadVmmModule

func (Debugger) LoadVmmModule() string

func (Debugger) Pause

func (Debugger) Pause()

func (Debugger) ReadAllRegisters

func (Debugger) ReadAllRegisters(guest_registers GUEST_REGS, extra_registers GUEST_EXTRA_REGISTERS) bool

func (Debugger) ReadMemory

func (Debugger) ReadMemory(target_address uint64, memory_type DEBUGGER_READ_MEMORY_TYPE, reading_Type DEBUGGER_READ_READING_TYPE, pid uint32, size uint32, get_address_mode bool, address_mode DEBUGGER_READ_MEMORY_ADDRESS_MODE, target_buffer_to_store []byte, return_length uint32) bool

func (Debugger) ReadTargetRegister

func (Debugger) ReadTargetRegister(register_id REGS_ENUM, target_register uint64) bool

func (Debugger) RegisterShowAll

func (Debugger) RegisterShowAll() bool

func (Debugger) RegisterShowTargetRegister

func (Debugger) RegisterShowTargetRegister(register_id REGS_ENUM) bool

func (Debugger) RunCommand

func (Debugger) RunCommand(command string) string

func (Debugger) ScriptEngineWrapperTestParserForHwdbg

func (Debugger) ScriptEngineWrapperTestParserForHwdbg(Expr string)

func (Debugger) SetBreakPoint

func (Debugger) SetBreakPoint(address uint64, pid uint32, tid uint32, core_numer uint32)

func (Debugger) SetCustomDriverPath

func (Debugger) SetCustomDriverPath(driver_file_path string, driver_name string) bool

func (Debugger) SetupPathForFileName

func (Debugger) SetupPathForFileName(filename string, file_location string, buffer_len uint32, check_file_existence bool) bool

func (Debugger) ShowMemoryOrDisassemble

func (Debugger) ShowMemoryOrDisassemble(style DEBUGGER_SHOW_MEMORY_STYLE, address uint64, memory_type DEBUGGER_READ_MEMORY_TYPE, reading_type DEBUGGER_READ_READING_TYPE, pid uint32, size uint32, dt_details DEBUGGER_DT_COMMAND_OPTIONS)

func (Debugger) ShowSignature

func (Debugger) ShowSignature() string

func (Debugger) StartProcess

func (Debugger) StartProcess(path string) bool

func (Debugger) StartProcessWithArgs

func (Debugger) StartProcessWithArgs(path string, arguments string) bool

func (Debugger) SteppingInstrumentationStepIn

func (Debugger) SteppingInstrumentationStepIn() bool

func (Debugger) SteppingInstrumentationStepInForTracking

func (Debugger) SteppingInstrumentationStepInForTracking() bool

func (Debugger) SteppingRegularStepIn

func (Debugger) SteppingRegularStepIn() bool

func (Debugger) SteppingStepOver

func (Debugger) SteppingStepOver() bool

func (Debugger) SteppingStepOverForGu

func (Debugger) SteppingStepOverForGu(last_instruction bool) bool

func (Debugger) StopVmmDriver

func (Debugger) StopVmmDriver() string

func (Debugger) TestCommandParserShowTokens

func (Debugger) TestCommandParserShowTokens(command string) string

func (Debugger) UninstallVmmDriver

func (Debugger) UninstallVmmDriver() string

func (Debugger) UnloadVmm

func (Debugger) UnloadVmm() string

func (Debugger) UseDefaultDriverPath

func (Debugger) UseDefaultDriverPath()

func (Debugger) VmxSupportDetection

func (Debugger) VmxSupportDetection() bool

func (Debugger) WriteMemory

func (Debugger) WriteMemory(destination_address uint64, memory_type DEBUGGER_EDIT_MEMORY_TYPE, process_id uint32, source_address uint64, number_of_bytes uint32) bool

func (Debugger) WriteTargetRegister

func (Debugger) WriteTargetRegister(register_id REGS_ENUM, value uint64) bool

type GUEST_EXTRA_REGISTERS

type GUEST_EXTRA_REGISTERS struct {
	CS     uint16
	DS     uint16
	FS     uint16
	GS     uint16
	ES     uint16
	SS     uint16
	RFLAGS uint64
	RIP    uint64
}

type GUEST_REGS

type GUEST_REGS struct {
	// contains filtered or unexported fields
}

type INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS

type INTERRUPT_DESCRIPTOR_TABLE_ENTRIES_PACKETS struct {
	KernelStatus uint32
	IdtEntry     [MAX_NUMBER_OF_IDT_ENTRIES]uint64
}

type IO_APIC_ENTRY_PACKETS

type IO_APIC_ENTRY_PACKETS struct {
	ApicBasePa uint64
	ApicBaseVa uint64
	IoIdReg    uint32
	IoLl       uint32
	IoArbIdReg uint32
	LlLhData   [MAX_NUMBER_OF_IO_APIC_ENTRIES]uint64
}

type LAPIC_PAGE

type LAPIC_PAGE struct {
	Reserved000             [0x10]byte // 偏移 0x00-0x0F
	Reserved010             [0x10]byte // 偏移 0x10-0x1F
	Id                      uint32     // 偏移 0x020 - APIC ID
	Reserved024             [0x0C]byte // 偏移 0x024-0x02F
	Version                 uint32     // 偏移 0x030 - 版本号
	Reserved034             [0x0C]byte // 偏移 0x034-0x03F
	Reserved040             [0x40]byte // 偏移 0x040-0x07F
	TPR                     uint32     // 偏移 0x080 - 任务优先级
	Reserved084             [0x0C]byte // 偏移 0x084-0x08F
	ArbitrationPriority     uint32     // 偏移 0x090 - 仲裁优先级
	Reserved094             [0x0C]byte // 偏移 0x094-0x09F
	ProcessorPriority       uint32     // 偏移 0x0A0 - 处理器优先级
	Reserved0A4             [0x0C]byte // 偏移 0x0A4-0x0AF
	EOI                     uint32     // 偏移 0x0B0 - 中断结束寄存器
	Reserved0B4             [0x0C]byte // 偏移 0x0B4-0x0BF
	RemoteRead              uint32     // 偏移 0x0C0 - 远程读寄存器
	Reserved0C4             [0x0C]byte // 偏移 0x0C4-0x0CF
	LogicalDestination      uint32     // 偏移 0x0D0 - 逻辑目标寄存器
	Reserved0D4             [0x0C]byte // 偏移 0x0D4-0x0DF
	DestinationFormat       uint32     // 偏移 0x0E0 - 目标格式寄存器
	Reserved0E4             [0x0C]byte // 偏移 0x0E4-0x0EF
	SpuriousInterruptVector uint32     // 偏移 0x0F0 - 伪中断向量
	Reserved0F4             [0x0C]byte // 偏移 0x0F4-0x0FF
	ISR                     [8]uint32  // 偏移 0x100-0x13F (实际32位数组,分8个32位组存储)
	//_                           [0x40]byte   // 对齐填充 0x140-0x17F
	TMR [8]uint32 // 偏移 0x180-0x1BF (实际32位数组,分8个32位组存储)
	//_                           [0x40]byte   // 对齐填充 0x1C0-0x1FF
	IRR [8]uint32 // 偏移 0x200-0x23F (实际32位数组,分8个32位组存储)
	//_                           [0x40]byte   // 对齐填充 0x240-0x27F
	ErrorStatus         uint32     // 偏移 0x280 - 错误状态寄存器
	Reserved284         [0x0C]byte // 偏移 0x284-0x28F
	Reserved290         [0x60]byte // 偏移 0x290-0x2EF
	LvtCmci             uint32     // 偏移 0x2F0 - CMCI中断向量
	Reserved2F4         [0x0C]byte // 偏移 0x2F4-0x2FF
	IcrLow              uint32     // 偏移 0x300 - 中断命令寄存器低32位
	Reserved304         [0x0C]byte // 偏移 0x304-0x30F
	IcrHigh             uint32     // 偏移 0x310 - 中断命令寄存器高32位
	Reserved314         [0x0C]byte // 偏移 0x314-0x31F
	LvtTimer            uint32     // 偏移 0x320 - 定时器中断向量
	Reserved324         [0x0C]byte // 偏移 0x324-0x32F
	LvtThermalSensor    uint32     // 偏移 0x330 - 热传感器中断向量
	Reserved334         [0x0C]byte // 偏移 0x334-0x33F
	LvtPerfMonCounters  uint32     // 偏移 0x340 - 性能监控计数器中断向量
	Reserved344         [0x0C]byte // 偏移 0x344-0x34F
	LvtLINT0            uint32     // 偏移 0x350 - LINT0中断向量
	Reserved354         [0x0C]byte // 偏移 0x354-0x35F
	LvtLINT1            uint32     // 偏移 0x360 - LINT1中断向量
	Reserved364         [0x0C]byte // 偏移 0x364-0x36F
	LvtError            uint32     // 偏移 0x370 - 错误中断向量
	Reserved374         [0x0C]byte // 偏移 0x374-0x37F
	InitialCount        uint32     // 偏移 0x380 - 初始计数寄存器
	Reserved384         [0x0C]byte // 偏移 0x384-0x38F
	CurrentCount        uint32     // 偏移 0x390 - 当前计数寄存器
	Reserved394         [0x0C]byte // 偏移 0x394-0x39F
	Reserved3A0         [0x40]byte // 偏移 0x3A0-0x3DF
	DivideConfiguration uint32     // 偏移 0x3E0 - 分频配置寄存器
	Reserved3E4         [0x0C]byte // 偏移 0x3E4-0x3EF
	SelfIpi             uint32     // 偏移 0x3F0 - 自中断寄存器(X2APIC)
	Reserved3F4         [0x0C]byte // 偏移 0x3F4-0x3FF(X2APIC保留)
}

LAPIC_PAGE 表示本地高级可编程中断控制器(LAPIC)的寄存器页面布局 总大小固定为 0x400 字节 (1024 字节)

type PLAPIC_PAGE

type PLAPIC_PAGE *LAPIC_PAGE

PLAPIC_PAGE 是指向 LAPIC_PAGE 的指针类型

type REGS_ENUM

type REGS_ENUM byte
const (
	REGISTER_RAX REGS_ENUM = iota
	REGISTER_EAX
	REGISTER_AX
	REGISTER_AH
	REGISTER_AL
	REGISTER_RCX
	REGISTER_ECX
	REGISTER_CX
	REGISTER_CH
	REGISTER_CL
	REGISTER_RDX
	REGISTER_EDX
	REGISTER_DX
	REGISTER_DH
	REGISTER_DL
	REGISTER_RBX
	REGISTER_EBX
	REGISTER_BX
	REGISTER_BH
	REGISTER_BL
	REGISTER_RSP
	REGISTER_ESP
	REGISTER_SP
	REGISTER_SPL
	REGISTER_RBP
	REGISTER_EBP
	REGISTER_BP
	REGISTER_BPL
	REGISTER_RSI
	REGISTER_ESI
	REGISTER_SI
	REGISTER_SIL
	REGISTER_RDI
	REGISTER_EDI
	REGISTER_DI
	REGISTER_DIL
	REGISTER_R8
	REGISTER_R8D
	REGISTER_R8W
	REGISTER_R8H
	REGISTER_R8L
	REGISTER_R9
	REGISTER_R9D
	REGISTER_R9W
	REGISTER_R9H
	REGISTER_R9L
	REGISTER_R10
	REGISTER_R10D
	REGISTER_R10W
	REGISTER_R10H
	REGISTER_R10L
	REGISTER_R11
	REGISTER_R11D
	REGISTER_R11W
	REGISTER_R11H
	REGISTER_R11L
	REGISTER_R12
	REGISTER_R12D
	REGISTER_R12W
	REGISTER_R12H
	REGISTER_R12L
	REGISTER_R13
	REGISTER_R13D
	REGISTER_R13W
	REGISTER_R13H
	REGISTER_R13L
	REGISTER_R14
	REGISTER_R14D
	REGISTER_R14W
	REGISTER_R14H
	REGISTER_R14L
	REGISTER_R15
	REGISTER_R15D
	REGISTER_R15W
	REGISTER_R15H
	REGISTER_R15L
	REGISTER_DS
	REGISTER_ES
	REGISTER_FS
	REGISTER_GS
	REGISTER_CS
	REGISTER_SS
	REGISTER_RFLAGS
	REGISTER_EFLAGS
	REGISTER_FLAGS
	REGISTER_CF
	REGISTER_PF
	REGISTER_AF
	REGISTER_ZF
	REGISTER_SF
	REGISTER_TF
	REGISTER_IF
	REGISTER_DF
	REGISTER_OF
	REGISTER_IOPL
	REGISTER_NT
	REGISTER_RF
	REGISTER_VM
	REGISTER_AC
	REGISTER_VIF
	REGISTER_VIP
	REGISTER_ID
	REGISTER_RIP
	REGISTER_EIP
	REGISTER_IP
	REGISTER_IDTR
	REGISTER_LDTR
	REGISTER_GDTR
	REGISTER_TR
	REGISTER_CR0
	REGISTER_CR2
	REGISTER_CR3
	REGISTER_CR4
	REGISTER_CR8
	REGISTER_DR0
	REGISTER_DR1
	REGISTER_DR2
	REGISTER_DR3
	REGISTER_DR6
	REGISTER_DR7
)

type Type

type Type interface {
	cmp.Ordered |
		bool |
		[]byte |
		void
}
Type type Ordered interface {
	~int | ~int8 | ~int16 | ~int32 | ~int64 |
		~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
		~float32 | ~float64 |
		~string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL