1
- # Facedancer 2.9
1
+ # Facedancer 3.0
2
2
3
3
This repository houses the next generation of Facedancer software. Descended from
4
4
the original GoodFET-based Facedancer, this repository provides a python module
5
- that provides expanded Facedancer support-- including support for multiple boards
5
+ that provides expanded Facedancer support -- including support for multiple boards
6
6
and some pretty significant new features.
7
7
8
+
8
9
## Installation
10
+
9
11
Install this package with the following command:
10
- ```
11
- pip install .
12
- ```
12
+
13
+ pip install .
14
+
13
15
After that you can import the facedancer package as usual:
14
- ```
15
- $ python
16
- >>> import facedancer
17
- ```
16
+
17
+ $ python
18
+ >>> import facedancer
19
+
18
20
19
21
## Where are my scripts?
20
22
21
- In preparation for the 3.0 release of Facedancer, scripts in the "old" style have
22
- been moved to ` legacy-applets ` . Their functionality should be unchanged.
23
+ The Facedancer 3.0 core features a ground-up rewrite of the original
24
+ emulation core which does not support legacy scripts.
25
+
26
+ If you're using scripts or training materials that depend on features
27
+ or APIs deprecated in ` v3.0.x ` you can install the latest ` v2.9.x `
28
+ release of Facedancer with:
29
+
30
+ pip install "facedancer<=3"
31
+
32
+ Legacy applets and examples can be found in the [ ` v2.9.x ` ] ( https://github.com/greatscottgadgets/facedancer/tree/v2.9.x )
33
+ branch.
34
+
23
35
24
36
## What is a Facedancer?
25
37
26
38
Facedancer boards are simple hardware devices that act as "remote-controlled" USB
27
39
controllers. With the proper software, you can use these boards to quickly and
28
- easily emulate USB devices-- and to fuzz USB host controllers!
40
+ easily emulate USB devices -- and to fuzz USB host controllers!
29
41
30
42
This particular software repository currently allows you to easily create emulations
31
43
of USB devices in Python. Control is fine-grained enough that you can cause all
@@ -39,9 +51,9 @@ For more information, see:
39
51
## USBProxy 'Nouveau' and Protocol Analysis
40
52
41
53
A major new feature of the newer Facedancer codebase is the ability to man-in-the
42
- middle USB connections-- replacing one of the authors' original [ USBProxy] ( https://github.com/dominicgs/usbproxy )
43
- project. This opens up a whole new realm of applications-- including protocol analysis
44
- and live manipulation of USB packets-- and is especially useful when you don't control
54
+ middle USB connections -- replacing one of the authors' original [ USBProxy] ( https://github.com/dominicgs/usbproxy )
55
+ project. This opens up a whole new realm of applications -- including protocol analysis
56
+ and live manipulation of USB packets -- and is especially useful when you don't control
45
57
the software running on the target device (e.g. on embedded systems or games consoles).
46
58
47
59
```
@@ -82,33 +94,33 @@ export BACKEND=greatfet
82
94
83
95
## What boards are currently supported?
84
96
85
- * All GoodFET-based Facedancers, including the common Facedancer21 (``` BACKEND=goodfet ``` )
97
+ * The [ Cynthion USB Test Instrument ] ( http://greatscottgadgets.com/cyntion/ ) (``` BACKEND=cynthion ``` )
86
98
* The [ GreatFET One] ( http://greatscottgadgets.com/greatfet/ ) (``` BACKEND=greatfet ``` )
87
99
* The NXP LPC4330 Xplorer board. (``` BACKEND=greatfet ``` )
88
100
* The CCCamp 2015 rad1o badge with GreatFET l0adable (``` BACKEND=greatfet ``` )
101
+ * All GoodFET-based Facedancers, including the common Facedancer21 (``` BACKEND=goodfet ``` )
89
102
* RPi + Max3241 Raspdancer boards (``` BACKEND=raspdancer ``` )
90
103
91
104
Note that hardware restrictions prevent the MAX3420/MAX3421 boards from emulating
92
- more complex devices-- there's limitation on the number/type of endpoints that can be
93
- set up. The LPC4330 boards-- such as the GreatFET-- have fewer limitations.
105
+ more complex devices -- there's limitation on the number/type of endpoints that can be
106
+ set up. The LPC4330 boards -- such as the GreatFET -- have fewer limitations.
94
107
95
108
For a similar reason, the MAX3420/MAX3421 boards (` BACKEND=goodfet ` or ` BACKEND=raspdancer ` )
96
109
currently cannot be used as USBProxy-nv MITM devices. All modern boards (` BACKEND=greatfet ` )
97
110
should be fully functional.
98
111
99
112
## What boards could be supported soon?
100
113
101
- * The [ LUNA USB multitool] ( https://github.com/greatscottgadgets/luna ) .
102
114
* Any Linux computer with gadgetfs support (e.g. the Pi Zero or Beaglebone Black)
103
115
* Anything supporting USB-over-IP.
104
116
105
117
## What features do you plan on adding?
106
118
107
- The roadmap is hazy , but in addition to multi-board support, this repository
108
- eventually will be home to some cool new features, such as :
119
+ The roadmap is under development , but in addition to multi-board support, this repository
120
+ will eventually be home to some cool new features, including :
109
121
110
122
* High-speed ("USB 2.0") device emulation on devices with USB 2.0 PHYs.
111
- * On-the-fly
123
+ * On-the-fly generation of USB device controllers in gateware.
112
124
113
125
## Whose fault _ is_ this?
114
126
0 commit comments