All Projects → RKX1209 → bitvisor-gdb

RKX1209 / bitvisor-gdb

Licence: GPL-3.0 license
gdbserver implementation on BitVisor

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
C++
36643 projects - #6 most used programming language
assembly
5116 projects
perl
6916 projects

Projects that are alternatives of or similar to bitvisor-gdb

Noirvisor
Hardware-Accelerated Hypervisor solution for complex functions and purposes.
Stars: ✭ 186 (+708.7%)
Mutual labels:  hypervisor
vmdashboard
web-based open source virtualization management interface for QEMU and KVM virtual machines
Stars: ✭ 66 (+186.96%)
Mutual labels:  hypervisor
hello-world-gdb
Simple hello world program for debugging with gdb
Stars: ✭ 29 (+26.09%)
Mutual labels:  gdb
sonar
A Type-1 hypervisor aimed to implement kernel hotswapping
Stars: ✭ 23 (+0%)
Mutual labels:  hypervisor
asm2cfg
Python command-line tool and GDB extension to view and save x86, ARM and objdump assembly files as control-flow graph (CFG) pdf files
Stars: ✭ 42 (+82.61%)
Mutual labels:  gdb
CVIP
C/C++/Golang/Linux...知识整理
Stars: ✭ 62 (+169.57%)
Mutual labels:  gdb
Shadow Box For X86
Shadow-Box: Lightweight and Practical Kernel Protector for x86 (Presented at BlackHat Asia 2017/2018, beVX 2018 and HITBSecConf 2017)
Stars: ✭ 178 (+673.91%)
Mutual labels:  hypervisor
gdb-automatic-deadlock-detector
Script adds new command to GDB which allows automatically detect C/C++ thread locking and deadlocks in GDB debugger
Stars: ✭ 60 (+160.87%)
Mutual labels:  gdb
gdb-cheatsheet
GDB cheatsheet for reversing binaries
Stars: ✭ 20 (-13.04%)
Mutual labels:  gdb
raspberry-pi
Raspberry Pi distribution of Alpha
Stars: ✭ 39 (+69.57%)
Mutual labels:  gdb
gdbdump-ruby
Dump C level and Ruby level backtrace from living ruby process or core file using gdb
Stars: ✭ 15 (-34.78%)
Mutual labels:  gdb
esp-gdbstub
ESP8266 debugging tool
Stars: ✭ 13 (-43.48%)
Mutual labels:  gdb
frakti
The hypervisor-based container runtime for Kubernetes.
Stars: ✭ 669 (+2808.7%)
Mutual labels:  hypervisor
Invtero.net
inVtero.net: A high speed (Gbps) Forensics, Memory integrity & assurance. Includes offensive & defensive memory capabilities. Find/Extract processes, hypervisors (including nested) in memory dumps using microarchitechture independent Virtual Machiene Introspection techniques
Stars: ✭ 237 (+930.43%)
Mutual labels:  hypervisor
TheVimIDE
Modern Vim IDE with support for C/C++, Java, Python, Lua, PHP, JavaScript, Ruby and much more ...
Stars: ✭ 33 (+43.48%)
Mutual labels:  gdb
Vsock
Package vsock provides access to Linux VM sockets (AF_VSOCK) for communication between a hypervisor and its virtual machines. MIT Licensed.
Stars: ✭ 181 (+686.96%)
Mutual labels:  hypervisor
gdb-memstr
Generate arbitrary strings out of contents of ELF sections
Stars: ✭ 13 (-43.48%)
Mutual labels:  gdb
gdbface
GDB web frontend written in Javascript
Stars: ✭ 16 (-30.43%)
Mutual labels:  gdb
OverRide
Binary Exploitation and Reverse-Engineering (from assembly into C)
Stars: ✭ 69 (+200%)
Mutual labels:  gdb
stack-inspector
A gdb command to inspect the size of objects on the stack
Stars: ✭ 57 (+147.83%)
Mutual labels:  gdb

bitvisor-gdb

gdbserver implementation on Type1 Thin Hypervisor(BitVisor). You can debug Guest OS on BitVisor from your gdb on local machine.

Install

Firstly you need to download BitVisor. Plz read official document
To enable gdb remote debugging function, please edit defconfig as following.

struct config_data config = {
        .ip  = {
               .ipaddr = { 192, 168, 0, 5 },
               .netmask = { 255, 255, 255, 0 },
               .gateway = { 192, 168, 0, 1 },
        },
        .driver = {
                .pci = "driver=pro1000,net=ip,tty=1",
        },

If you wrote config as above, gdb server waits client connection at 192.168.0.5 on Intel PRO/1000 hardware.

Usage

Then you can start system(ex. Linux kernel) debugging like:

$ gdb -q
(gdb) target remote 192.168.0.5:1234
Warning: not running or target is remote
0xffffffff81428f41 in ?? ()
(gdb) hb *0xffffffff81055ab0     #Set breakpiont to do_page_fault()                                   
Hardware assisted breakpoint 1 at 0xffffffff81055ab0
(gdb) c
Continuing.
Breakpoint 1, 0xffffffff81055ab0 in ?? ()
(gdb) x/10i $rip
=> 0xffffffff81055ab0:  nop    DWORD PTR [rax+rax*1+0x0]
   0xffffffff81055ab5:  push   rbp
   0xffffffff81055ab6:  mov    rax,QWORD PTR gs:0xc440
   0xffffffff81055abf:  mov    rbp,rsp
   0xffffffff81055ac2:  push   r15
   0xffffffff81055ac4:  push   r14
   0xffffffff81055ac6:  push   r13
   0xffffffff81055ac8:  push   r12
   0xffffffff81055aca:  mov    r15,rdi
   0xffffffff81055acd:  push   rbx
(gdb) i r
rax            0x81784987       0x81784987
rbx            0xffffffff81784987       0xffffffff81784987
rcx            0x7f48fde0b9d0   0x7f48fde0b9d0
rdx            0x1      0x1
rsi            0xffff880087cb3e70       0xffff880087cb3e70
rdi            0xffff880087cb3e78       0xffff880087cb3e78
rbp            0x3      0x3
rsp            0xffff880087cb3e88       0xffff880087cb3e88
r8             0xffff880087cb0000       0xffff880087cb0000
r9             0x0      0x0
r10            0x3      0x3
r11            0x32683  0x32683
r12            0xffffffff818176a0       0xffffffff818176a0
r13            0xffff880034ca12c0       0xffff880034ca12c0
r14            0x3      0x3
r15            0xffff880034cca940       0xffff880034cca940
rip            0xffffffff81055ab0       0xffffffff81055ab0
eflags         0x83     [ CF SF ]
cs             0x10     0x10
ss             0x18     0x18
ds             0x0      0x0
es             0x0      0x0
fs             0x0      0x0
gs             0x0      0x0

NOTE: Port must be 1234.

Reference

You can check the information about Thin hypervisor and GDB remote protocol.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].