You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
+ ~/.vagd was moved to ~/.local/share/vagd
+ Dogd now supports Entrypoint overwrite
+ improved Dogd chaching (for symbols)
+ update template to improve --libs
Copy file name to clipboardexpand all lines: README.md
+8-22
Original file line number
Diff line number
Diff line change
@@ -4,24 +4,22 @@
4
4
5
5
VirtuAlization GDb integrations in pwntools
6
6
7
-
8
-
9
7
## Installation
10
8
11
9
```bash
12
10
pip install vagd
13
11
```
12
+
14
13
or from repo with
14
+
15
15
```bash
16
16
git clone https://github.com/gfelber/vagd
17
17
pip install ./vagd/
18
18
```
19
19
20
-
21
-
22
20
## Usage
23
21
24
-
+`vagd template [OPTIONS] [BINARY] [IP] [PORT]` to generate a template, list OPTIONS with help `-h`
22
+
-`vagd template [OPTIONS] [BINARY] [IP] [PORT]` to generate a template, list OPTIONS with help `-h`
25
23
26
24
```python
27
25
#!/usr/bin/env python
@@ -30,7 +28,7 @@ from pwn import *
30
28
IP=''# remote IP
31
29
PORT=0# remote PORT
32
30
BINARY=''# PATH to local binary e.g. ./chal
33
-
ARGS= [] # ARGS supplied to binary
31
+
ARGS= [] # ARGS supplied to binary
34
32
ENV= {} # ENVs supplied to binary
35
33
# GDB SCRIPT, executed at start of GDB session (set breakpoint here)
36
34
GDB=f"""
@@ -51,7 +49,7 @@ def get_target(**kw):
51
49
52
50
from vagd import Dogd, Qegd, Shgd
53
51
ifnot vm:
54
-
# Docker
52
+
# Docker
55
53
vm = Dogd(exe.path, image="ubuntu:jammy", ex=True, fast=True)
56
54
# or Qemu
57
55
vm = Qegd(exe.path, img="https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img", ex=True, fast=True)
@@ -65,7 +63,7 @@ t = get_target()
65
63
t.interactive()
66
64
```
67
65
68
-
+`vagd info BINARY` to print info about binary
66
+
-`vagd info BINARY` to print info about binary
69
67
70
68
```bash
71
69
# run as process in VM
@@ -78,13 +76,9 @@ t.interactive()
78
76
79
77
I recommend using [pwndbg](https://github.com/pwndbg/pwndbg).
80
78
81
-
82
-
83
79
## Files
84
80
85
-
All created files ares stored in the local `./.vagd/` directory. Additional large files (e.g. cloudimages) are stored in the home directory `~/.vagd/` or handled by tools themselfs (e.g. Docker).
86
-
87
-
81
+
All created files ares stored in the local `./.vagd/` directory. Additional large files (e.g. cloudimages) are stored in the home directory `~/.share/local/vagd/` or handled by tools themselfs (e.g. Docker).
A listed of known working Boxes can be found in the [Documentation](http://vagd.gfelber.dev/autoapi/vagd/box/index.html#module-vagd.box).
117
107
Other images might also work but currently only distributions that use `apt` and alpine for Docker are supported.
118
108
This limitation may be circumvented by creating a target yourself (with the dependencies gdbserver, python, openssh) and creating a ssh connection via Shgd.
119
109
120
-
121
-
122
110
## Troubleshooting
123
111
124
112
### background processes
@@ -135,9 +123,7 @@ files on the virtual instance are never overwritten this has performance reason
135
123
136
124
### gdb performance
137
125
138
-
Using gdbserver and gdb to index libraries can be very slow. Therefore an experimental feature is available that mounts libraries locally: `Dogd(..., ex=True, fast=True)`
139
-
140
-
126
+
Using gdbserver and gdb to index libraries can be very slow. Therefore an experimental feature is available that mounts libraries locally: `Dogd(..., ex=True, fast=True)`
0 commit comments