Geoff Chappell - Software Analyst
You are at the home page of a website that has grown out of an academic interest in studying what software actually does, which is much too often not exactly what the manufacturer says the software does. Put another way, this website presents results obtained from reverse engineering computer software, not so that ideas can be stolen and reworked, but so the actual working of existing software can be understood and reported.
This is not a website that collates suppositions from who knows where on the Internet. Though I may slip up now and then, my intention is that everything at this site is original research into primary sources, unless another source is noted, or is the application of that research to comment on a primary or secondary source. Let it be stressed: the only primary source in a study of software is the software—not the product documentation, not even the source code, just the software.
There are nearly 2,000 pages here. Some are merely placeholders for work that never properly got under way or for introductions that I probably never will get round to writing. Some just track what’s new or was. Others are statistics about what gets viewed. But the overwhelming bulk of pages here exist to say something new—often not important but new nonetheless—about the software it describes.
The software examined here is almost always either Microsoft Windows or one of Microsoft’s programming tools for Windows. Where something I write conflicts with Microsoft’s documentation, my aim is that you should be able to rely on me to be correct and Microsoft to be mistaken, because they at best document what they thought they coded into the software but I document what actually is there.
For more about the process of and reasons for producing all this original material, please read Software Analysis by Reverse Engineering.
Some of you apparently take my criticism of Microsoft as indicating that I am biased against them and even that I’m a Microsoft hater (whatever that might be). Certainly, if you’re reading an analysis and feel I haven’t made my case by reference to what’s in the code, then infer what bias you want. Better yet, write to me to alert me to what you’ve spotted as a defect in my argument. But if all you’re doing is weighing criticism against praise, then please ask yourself why you expect these to balance. This is not a site for reviewing the usability of software, even by programmers, or for instructing about software design, let alone for appraising good against bad. The whole purpose is to demonstrate that inspection from outside can show, in more detail than most think possible, that what is in the software is not exactly what is said to be. Where there’s no discrepancy, there’s nothing to praise.
There are far too many pages at this website for you to navigate without the expandable table of contents to the left of this page. If you see no such thing, then please check the Browser Advice. For an overall description of how these many pages are organised and of what little I expect of you for reading them, see About This Site.
To criticise me, thank me or submit a wish list, please read the page about feedback. I am especially concerned, of course, to hear about errors which I need to correct.
To ask for help with a technical problem, even one that I address at this site, please consult me formally and expect to pay for my time.
This website is funded from consultation services. If you appreciate the research behind the site and the free publication of what I find time to write up, then please recommend my consultation services as widely as possible. If you would like to see the research and writing up become established as full-time work for public benefit, then please consider ways that you might support this site.