diff options
author | Marc <foxtrot@malloc.me> | 2021-11-30 22:39:26 +0000 |
---|---|---|
committer | Marc <foxtrot@malloc.me> | 2021-12-01 16:54:44 +0000 |
commit | ae6c98a48da409d040604aeffb84a38155fb5bac (patch) | |
tree | c27a8e28972209581ce3fba2130bf0c2b4f9c9c0 /README.md | |
download | libwifi-ae6c98a48da409d040604aeffb84a38155fb5bac.tar.gz libwifi-ae6c98a48da409d040604aeffb84a38155fb5bac.tar.bz2 libwifi-ae6c98a48da409d040604aeffb84a38155fb5bac.zip |
Initial Commit
Signed-off-by: Marc <foxtrot@malloc.me>
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..2be5699 --- /dev/null +++ b/README.md | |||
@@ -0,0 +1,88 @@ | |||
1 | # libwifi | ||
2 | 802.11 Parsing / Generation library | ||
3 | |||
4 | | Build Status | OS | Architecture | | ||
5 | | ---------------------------------------------------------------------------------- | ------| ------------ | | ||
6 | | | Linux | x86_64 | | ||
7 | |||
8 | ## What is this? | ||
9 | libwifi is a C library with a permissive license for generating and parsing a wide variety of 802.11 wireless frames (see the [Feature Checklist](#feature-checklist) below) on Linux with a few lines of straight forward code (see the [Examples section](#examples) below). | ||
10 | |||
11 | It is written with a simple-to-use approach while also exposing features that allow more advanced use, with clean and readable code being a priority. Other goals of the library include cross-architecture support, clean compilation without warnings and strict error checking. | ||
12 | |||
13 | The library is fully documented with code comments in both the headers files and the code files, and also has doxygen HTML documentation in `docs/html`. | ||
14 | |||
15 | ## Building and Installing | ||
16 | ### Linux | ||
17 | ``` | ||
18 | $ mkdir build | ||
19 | $ cd build | ||
20 | $ cmake .. | ||
21 | $ make | ||
22 | $ sudo make install | ||
23 | ``` | ||
24 | |||
25 | ## Examples | ||
26 | Some examples are available in the `examples/` directory, which show the general flow of how libwifi is used to generate and parse different types of 802.11 frame. | ||
27 | |||
28 | ## Feature Checklist | ||
29 | - Generation | ||
30 | - [X] Radiotap Header | ||
31 | - Management | ||
32 | - [X] Association Request | ||
33 | - [X] Association Response | ||
34 | - [X] Reassociation Request | ||
35 | - [X] Ressociation Response | ||
36 | - [X] Probe Request | ||
37 | - [X] Probe Response | ||
38 | - [X] Timing Advertisement | ||
39 | - [X] Beacon | ||
40 | - [X] ATIM | ||
41 | - [X] Disassociation | ||
42 | - [X] Deauthentication | ||
43 | - [X] Action | ||
44 | - [X] Action No ACK | ||
45 | - Control | ||
46 | - [X] RTS (Request-to-Send) | ||
47 | - [X] CTS (Clear-to-Send) | ||
48 | - Data | ||
49 | - [ ] Data Frame | ||
50 | - [ ] QoS Data Frame | ||
51 | - [ ] EAPOL | ||
52 | |||
53 | - Parsing | ||
54 | - [X] Radiotap Header | ||
55 | - Management | ||
56 | - [X] Association Request | ||
57 | - [X] Association Response | ||
58 | - [X] Reassociation Request | ||
59 | - [X] Ressociation Response | ||
60 | - [X] Probe Request | ||
61 | - [X] Probe Response | ||
62 | - [ ] Timing Advertisement | ||
63 | - [X] Beacon | ||
64 | - [ ] ATIM | ||
65 | - [X] Disassociation | ||
66 | - [X] Deauthentication | ||
67 | - [ ] Action | ||
68 | - [ ] Action No ACK | ||
69 | - Control | ||
70 | - [ ] RTS (Request-to-Send) | ||
71 | - [ ] CTS (Clear-to-Send) | ||
72 | - Data | ||
73 | - [X] Data Frame (Partial) | ||
74 | - [X] QoS Data Frame (Partial) | ||
75 | - [X] EAPOL | ||
76 | |||
77 | ## Running Tests | ||
78 | ``` | ||
79 | $ cd tests/ | ||
80 | $ mkdir build | ||
81 | $ cd build | ||
82 | $ cmake .. | ||
83 | $ make | ||
84 | $ sudo iw <interface> set type monitor && sudo ip link set dev <interface> up | ||
85 | $ ./test-program | ||
86 | ``` | ||
87 | |||
88 | |||