Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Signal strength (RadioTap.dbm_antsignal) not working #1379

Closed
calebmadrigal opened this issue Apr 28, 2018 · 6 comments · Fixed by #1381
Closed

Signal strength (RadioTap.dbm_antsignal) not working #1379

calebmadrigal opened this issue Apr 28, 2018 · 6 comments · Fixed by #1381

Comments

@calebmadrigal
Copy link

It seems there's not a clean way to get signal strength (like `frame[RadioTap].dbm_antsignal).

  • Scapy version: 2.4.0
  • Python version: 3.6.5
  • Operating System: Ubuntu 17.10
@calebmadrigal
Copy link
Author

Looks like this probably gives me what I need: signal_strength = -(256-ord(frame[RadioTap].notdecoded[-4:-3])), but I would think a cleaner solution would be better.

@gpotter2
Copy link
Member

Could you share a pcap ?

@calebmadrigal
Copy link
Author

@gpotter2 Python script to output pcap:

output_pcap.py:

import zlib
import base64

encoded_pcap = b"""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
JXGLbBI5JIm1AZ1b/wfFYgxo"""

decoded_pcap = base64.decodestring(encoded_pcap)
pcap = zlib.decompress(decoded_pcap)
with open('no_signal.pcap', 'wb') as f:
    f.write(pcap)

print('Output no_signal.pcap')

Steps to reproduce problem:

$ python3 output_pcap.py
$ python3
>>> from scapy.all import *
>>> x=rdpcap('no_signal.pcap')
>>> x[0]
<RadioTap  version=0 pad=0 len=25 present=TSFT+Flags+Rate+Channel+dBm_AntSignal+dBm_AntNoise+Antenna notdecoded='\x1fN\x0e\x98\x00\x00\x00\x00\x12\x0c\x99\x16@\x01\xb9\xa1\x01' |<Dot11  subtype=4 type=Management proto=0 FCfield= ID=0 addr1=ff:ff:ff:ff:ff:ff addr2=ae:52:1f:40:c9:4d addr3=ff:ff:ff:ff:ff:ff SC=7792 |<Dot11ProbeReq  |<Dot11Elt  ID=SSID len=0 info='' |<Dot11Elt  ID=Rates len=8 info='\x0c\x12\x18$0H`l' |<Dot11Elt  ID=45 len=26 info='c\x00\x17\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |<Dot11Elt  ID=127 len=8 info='\x04\x00\x08\x84\x00\x00\x00@' |<Dot11Elt  ID=107 len=7 info='\x0f\xff\xff\xff\xff\xff\xff' |<Dot11Elt  ID=191 len=12 info='2P\x80\x0f\xfe\xff\x00\x00\xfe\xff\x00\x00' |<Dot11Elt  ID=vendor len=11 info='\x00\x17\xf2\n\x00\x01\x04\x00\x00\x00\x00' |<Dot11Elt  ID=vendor len=8 info='\x00P\xf2\x08\x00\x0f\x00\x00' |<Dot11Elt  ID=vendor len=9 info='\x00\x10\x18\x02\x00\x00\x10\x00\x00' |<Dot11Elt  ID=21 len=18 info='\xaa(' |>>>>>>>>>>>>>

>>> x[0][RadioTap].dbm_antsignal  # exception

@gpotter2
Copy link
Member

gpotter2 commented Apr 30, 2018

Thanks !
It seems that the feature was not supported. Indeed, the implementation required a weird padding system, which makes that the position of the fields vary depending on the padding of the other fields, which is tricky to implement. Also, each field is padded differently depending on its length -_-

I’ve implemented the most common fields it in gpotter2@f5e10d7 ?

It should add support for those fields, but I did not tested it deeply. It Would be great if you could test if a bit

@gpotter2
Copy link
Member

gpotter2 commented Apr 30, 2018

Fixed in #1381 ! You might want to have a look

@calebmadrigal
Copy link
Author

I'll check it out later tonight!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants