-
Notifications
You must be signed in to change notification settings - Fork 51
/
CHANGES
202 lines (196 loc) · 9.38 KB
/
CHANGES
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
PyRIC CHANGES
v 0.0.2 to 0.1.0
o added ifconfig/iwconfig functions to pyw
o reworked exception handling
- all exceptions from libnl, libio & pyw are pyric.error
- pyw will allow pyric to pass through
- reworked errorcodes to derive from errno
o added _iostub_, _nlstub_ and reworked traditiona commands to utilize these
o finished porting nl80211_h and nl80211_c (for attribute policies)
o pyw no longer provides familyid as a public function, rather it now uses a
private global value for the nl80211 family id and will instantiate it one
time only. In this way, callers do not not have to worry about retrieving and
passing it
o regdom get & set implemented
o info implemented
o removed radio/Radio class (shouldn't be the responsibility of this)
o added channels.py (provides channel/freq functions)
o added RFI page for notes/observations/questions
o changed utils.py to device.py
o updated libnl
o added channel set & get
- channel get only works when device is associated
- channel set only works when card is in monitor mode and all other interfaces
have been deleted
o added device add & delete
o rewrote pyw function to handle one-time & persistent functions using a
single function interface for each command
o added Card class and wrote functions to handle it in pyw
o implemented basic help functionality (for nl80211)
o added monitor flag(s) support in devadd
o began work on a user guide
o added nested attribute handling
o added partial phyinfo handles all but supported channels/bands
o fixed bugs in devinfo and phyinfo
o added setup.py and required files
o at least one card (ath9k_htc) has an unknown supported command, added a
wrapper around the list IFTYPES to handle commands not listed
o libnl: attribute related i.e. nla_* moved out of GENLMsg class and made as
standalone functions
o in pyw
- added modeset/modeget in pyw
- readded freqset in pyw
- added devcmds in pyw
- annotated (in comments) if fcts needed root privileges
- added functions to get/set ip address, netmask and broadcast
- fixed PEP8 errors
- added function pulling supported freqs out NL80211_ATTR_WIPHY_BANDS
* ATT using _getfreqs_ which attempts to find the packed version of every
freq
* nl80211_c.nl80211_parse_freqs works but is slower than _getfreqs_ and
uses several hacks which may make it invalid for certain cards
- added 4.9GHz frequencies to channels.py
- fixed _validmac_ to validate both uppercase & lowercase hex characters
- added devfreqs, devchs
o unittest completed 61 tests ran in 5.360s
o added rfkill (still working on it)
o production release
v 0.1.1 - 0.1.2
desc: wireless nic library: wireless radio identification, manipulation, enumeration
includes: /nlhelp /lib /net /utils pyw 0.1.2
changes:
o restructured hierarchy
- renamed device to hardware
o added mac address related functions to hardware
o split rfkill into functions file and definition file
o added block/unblock to pyw
o updated pyw to handle the newest version of libnl.py's processing of nested
attributes
v 0.1.3
o added this File, a revision history
o fixed issues
- # 13: Failed to process commands.help
- # 14: nlmsg_fromstream can incorrectly return error based on stream size
- # 11: MemoryError on nla_parse_nested()
o added nla_put_flag to libnl
o identified (unopened issue) and fixed error with ouifetch having invalid path
of default oui file
o moved parseoui from hardware to ouifetch renaming to parse
o removed ouifetch execution ability - parse and fetch must be called w/in
python console. Will eventually add this capability as as top-level program
o added ieee80211_h.py to net/wireless
o added supported ciphers to pyw.phyinfo dict
o added functions
- pwrsaveset and pwrsaveget
- covclassset
- retryshortset
- retrylongset
- rtsthreshset
- fragthreshset
v 0.1.4
o added functions:
- isup
- covclassget
- retryshortget
- retrylongget
- ifinfo
o modified devadd. User is allowed to submit a Card object or a physical index
o removed hardcoded values for covclassset, retry(short|long)set, retsthreshet and
fragrthreshset
- constants now defined in wlan.h (see below)
o removed return True where redundant i.e. when setting mac address we can assume
it worked if no error was thrown
o renamed ieee80211_h to wlan
o didn't like the incestual circular pyric error (libnl shouldn't know about pyric)
- replaced pyric.error with defined error in libnl and libio
- pyw has to catch libnl and libio errors and reraise as pyric errors
- retooled exception messages
o added new functions from 0.1.3 and 0.1.4 to unittests
o updated nl80211_h w/ additional constants included in kernel v 4 header
o added propietary concept of set to netlink processing
- nl80211 appears to define a set of like-sized elements (see cipher_suites)
o modified pyric exceptions
- imports errno codes into pyric, conforming how functions access error codes
v 0.1.5 Begin STA associated functionality
o added functions:
- isconnected
- disconnect
- link
- stainfo
- devset
- phylist
- openconnect (doesn't currently work)
- phyadd (renamed from original devadd, iw phy <phy> interface add ...)
- devadd (iw dev <dev> interface add ....)
o updated nested netlink attribute handling - my understanding of it was incomplete
- There are still occasional errors
- nested attributes are parsed as 'far' as possible
o reupdated nested netlink attribute handling - this time it really works :)
- nested attributes are now parsed correctly, any errors are a result of
incorrect packing on the other side or packet corruption and the entire
unparsed attribute will be returned.
- nla_parse_nested has been changed to return a list of tuples
t = (index,attribute) which (TODO #41) eases the burden on the calling
function
- fixed 're'nesting of nested attributes
- parsing wiphy bands (issue #7) is now fully functional and no longer relies
on a hacked fix
o devstds now uses phyinfo to determine standards Card supports
o completely 'remodeled' functions in pyw to take advantage of new parsing
from libnl (have left some of the error checking in place as a backup until
testing confirms that the new nla_parse_nested is bug-free)
o fixed error on devadd during restoration in examples/pentest.py
o fixed output error, incorrect labeling
o fixed output error ASW max tx power
o added phylist w.r.t issue #17
o fixed devfreqs, devchs after updating phyinfo
o add support for python3 (keeping compability with python2.7)
- urllib2 vs urllib
- replaced map with list comprehensions
- replaced xrange with range
- python 3.5 compatible. python 3.0 is compatible except for examples and
pyw.unittest.pyw (see corresponding files for reasons)
- python 2.7 is the preferred (for me at least) 'medium' and compatibly issues
with python 3 have been rectified at the expense of python 3 and not python 2
o fixed incorrect frequencies in unii_5_C2F in utils/channels
o updated pyw.unittest for python 3.5 and for added functions
o added by band to channels and freqs in utils/channels.py
v 0.1.6 Continue with STA functionality
o Issue #21 resolved. openconnect (renamed to connect) now works. (had to fix
how the ssid was being passed. as a string with an affixed null byte, it would
fail but as unspec, it succeeded)
- issue 1: wpa_supplicant must be turned off
- issue 2: caller/user must configure dhcp request or inet themselves
- issue 3: only works on open networks
o Issue #24 (TODO #50) resolved. getcard which is the entry point for any
nl80211 functionality uses devinfo to retrieve the Card tuple. devinfo will
now report No Such device as two seperate errors one identifying when there
is no device currently present on the machine and one identifying when the
specified dev's driver does not support nl80211
o fixed TypeError resulting from raising pyric.error incorrectly
o phyadd accepts either a card or a phy
o added freqget
o Note: w.r.t https://wraithwireless.wordpress.com/2016/07/24/linux-kernel-bug/
have tested further, phyadd,devadd will work (i.e. not rename the card)
under the following conditions a) the type is not managed or b) there is no
other device currently associated with the new card's phy. Have also determined
that integrated cards are also suspect to this bug?
o made pyric error messages less ambiguous
o changed template and stub so that all pyw functions can now use named parameters
if desired
- i.e. pyw.freqset(card=<Card>,rf=2412,nlsock=<nlsocket>) or
pyw.freqset(<Card>,2412,None,<nlsocket>)
o renamed the following functions:
- inetget to ifaddrget
- inetset to ifaddrset
- ip4set to inetset
- netmaskset to maskset
- broadcastset to bcastset
o adddres related functions mac and ifaddr return True on success, False otherwise
o commented out constants in sockios_h that are not being used
- no significant change but will reduce bytecode size
o fixed error in iswireless (referenced in wifiphisher #329)
o fixed phylist failure for OpenWRT as pointed out by sarom5
o Corrected README.md (Issue #27)
o Added scripts directory
- added ouiupdate.py to scripts directory