Fix for inSSIDer Crash (and probably for Chanalyzer 3.1 too)
I received my WiSpy 2.4 yesterday, very neat, and I planned to get stuck into some fault-finding. Unfortunately I found that the Chanalyzer 3.1 software crashed whenever I tried to use my WiFi card. I tried inSSIDer, with the same result. I then tried changing from my laptop's internal WiFi to an Orinoco PCMCIA card. Still it crashed. I tried a SanDisk PCMCIA, same result. Then a GigaByte USB-stick WiFi, and finally it worked! But it clashed with the WiSpy for USB space.
Well, lucky for me inSSIDer source is available! I grabbed that from the SVN repo, and looked at my first C# program. And then installed VS2008, which took most of the rest of the day, and started debugging.
To cut a long story short, the existing code is only expecting the new NDIS_WLAN_BSSID_EX packet type in response to its OID_802_11_BSSID_LIST query, but most of my devices respond with the original (obsolete) NDIS_WLAN_BSSID packet. The original is a fixed 104 bytes in length, while the new one is >=120 bytes in length. The code in inSSIDer crashes on the old packet because it reads the non-extant IELength field as a huge number and tries to parse it.
I put a simple fix into IoctlNdis.cs which checks the size and patches the data read in (sets IELength to zero and clears the additional 8 Supported Rates), I don't know enough about C# to try fixing the marshalling calls yet. But now it works with al the devices except the Orinoco, which doesn't support BSSID_LIST queries (at least in its current firmware).
I'm assuming the problem with Chanalyzer 3.1 has the same cause, I'd really like to see a fix for it so I can start on this client's site!
I can push the changed IoctlNdis.cs into SVN if I'm given a login, or send it some other way, just let me know. It's just a few extra lines of code, in one location.
Cheers,
David
Thank you so much, cborn, for taking the time and effort to make inSSIDer better. We have been making some fixes in Chanalyzer the past couple of days, and hope to put out an update soon, the Chief Geek said you emailed him the solution. I assume we will get your fix into Chanalyzer along with the update.
We are planning to release a newer version of inSSIDer shortly thereafter. We have had a lot of good feedback from our customers, and we have been making some of the changes.
You really made our day, I hope you know that we really appreciate your effort!