seemoo-lab / mobisys2018_nexmon_software_defined_radio

Proof of concept project for operating Broadcom Wi-Fi chips as arbitrary signal transmitters similar to software-defined radios (SDRs)
Other
758 stars 69 forks source link

How to determine the success of the signal transmission #24

Open moshangqingfeng opened 2 months ago

moshangqingfeng commented 2 months ago

Dear author, I execute the "bash myframe.sh" command with no error, but how do I see data being sent in wireshark? Why is there no signal after I use "wlan.addr == 82:7b:be:f0:96:e0" filtering? Is "wlan.addr == 82:7b:be:f0:96:e0" the MAC address of network port wlan0?

jlinktu commented 2 months ago

If you apply the mentioned filter wlan.addr == 82:7b:be:f0:96:e0 while having a capture file open in Wireshark, only frames that contain that address in any of its fields will be shown. Hence, if there are no frames shown after applying this filter, there are no frames in your capture file that have this address. So you probably haven't sent out any matching frames or did not receive/capture any of them. For more info on how Wireshark filters work have a look at Wireshark's Manual Page.

There are many options on how you could determine if a device sends out frames. E.g. you could use a device in monitor mode, or a software-defined radio receiver, a spectrum analyzer, ...

Verifying that you have loaded the correct firmware might be a good start though. The output of nexutil -Iwlan0 -V should contain the string nexmon.org/sdr. If that is not the case, you haven't loaded the firmware that is required for the myframe.sh script to work.

Another source of error could be that your sender and receiver are not on the same wifi channel.

moshangqingfeng commented 2 months ago

Dear Professor, I copied 'myframe.sh' file into '/home/pi/su' and execute it like this, It shouldn't be a problem? 3

Then I used 'ifconfig -a' to check the interface like this, I don't know if there's a problem. ![Uploading 4.jpg…]()

moshangqingfeng commented 2 months ago

4

jlinktu commented 2 months ago

The pre-generated myframe.sh will configure the chip to transmit frames on Wi-Fi channel 1 of the 2.4 GHz band. Make sure to listen on the same channel with your monitor device.

moshangqingfeng commented 2 months ago

Dear Professor, I use Wirehark software on my computer to collect it, I just set up the capture filter 'wlan.addr == 82:7b:be:f0:96:e0' like this, but I don't know if it's WIFI-channel 1 of 2.4GHz. 5

jlinktu commented 2 months ago

There are countless tutorials online that explain how to configure and use Wi-Fi monitor interfaces. Please make yourself familiar with the topic on your own before continuing here.

moshangqingfeng commented 1 month ago

Dear Professor, Recently I learned the IEEE 802.11 protocol. I changed the source address of "mac_packet" in "generate_frame.m" to my Raspberry PI network port address and generated a new "myframe.sh" script, I set the wireless card to monitor mode to capture the packet, I was able to capture the packet, But I can't find the one I sent (I can't find the packet whose source address and BSSID is my Raspberry PI network port address, destination address is ff:ff:ff:ff:ff:ff:ff, frame type is Beacon frame). How do I find the packet I want to send?

moshangqingfeng commented 1 month ago

@jlinktu Dear Professor, I'm sorry to trouble you again. Although I loaded the correct firmware and used wireshark to detect the packets containing the Raspberry PI network port address, none of the received packets matched the characteristics of the sent frame in terms of length, frame type, source address, destination address and SSID. I think the frame may have not been sent. Is there any way to judge if "bash myframe.sh" really send the frame? Or if the frame has already been transmitted what are the characteristics of the frame that the receiver receives?