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.
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!