FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
voltron/examples/command.py at master · bcpx/voltron · GitHub
bcpx
/
voltron
Public
forked from
snare/voltron
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
voltron
/
examples
/
command.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
66 lines (57 loc) · 1.99 KB
Breadcrumbs
voltron
/
examples
/
command.py
Copy path
File metadata and controls
66 lines (57 loc) · 1.99 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""
Example command plugin
Copy this to your ~/.voltron/plugins directory. It will be loaded when
Voltron is initialised, and register a debugger command that works as follows:
$ lldb /tmp/inferior
Voltron loaded.
Run `voltron init` after you load a target.
(lldb) target create "/tmp/inferior"
Current executable set to '/tmp/inferior' (x86_64).
(lldb) b main
Breakpoint 1: where = inferior`main, address = 0x0000000100000cf0
(lldb) run
Process 12561 launched: '/tmp/inferior' (x86_64)
Process 12561 stopped
* thread #1: tid = 0x1d33f, 0x0000000100000cf0 inferior`main, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x0000000100000cf0 inferior`main
inferior`main:
-> 0x100000cf0: push rbp
0x100000cf1: mov rbp, rsp
0x100000cf4: sub rsp, 0x50
0x100000cf8: mov dword ptr [rbp - 0x4], 0x0
(lldb) example
rax 0000000100000CF0
rbx 0000000000000000
rcx 00007FFF5FBFFA70
rdx 00007FFF5FBFF978
rbp 00007FFF5FBFF958
rsp 00007FFF5FBFF948
rdi 0000000000000001
rsi 00007FFF5FBFF968
rip 0000000100000CF0
r8 0000000000000000
r9 00007FFF5FBFEA08
r10 0000000000000032
r11 0000000000000246
r12 0000000000000000
r13 0000000000000000
r14 0000000000000000
r15 0000000000000000
Provided you stick to the adaptor API that is implemented in every *DBAdaptor
class, custom command plugins should work across all debugger hosts.
This is a quick example that will only work on an x86_64 target.
"""
import
blessed
import
voltron
from
voltron
.
plugin
import
CommandPlugin
from
voltron
.
command
import
VoltronCommand
class
ExampleCommand
(
VoltronCommand
):
def
invoke
(
self
,
*
args
):
regs
=
voltron
.
debugger
.
registers
()
reg_list
=
[
'rax'
,
'rbx'
,
'rcx'
,
'rdx'
,
'rbp'
,
'rsp'
,
'rdi'
,
'rsi'
,
'rip'
,
'r8'
,
'r9'
,
'r10'
,
'r11'
,
'r12'
,
'r13'
,
'r14'
,
'r15'
]
for
name
in
reg_list
:
print
(
"{t.bold}{:3} {t.normal}{:0=16X}"
.
format
(
name
,
regs
[
name
],
t
=
blessed
.
Terminal
()))
class
ExampleCommandPlugin
(
CommandPlugin
):
name
=
'example'
command_class
=
ExampleCommand
Back
|
FazBrowse Home
|
New Git URL