Geoff Chappell, Software Analyst

You are at the home page of a website that has grown over decades from an academic interest in studying what software actually does. Sadly, what software actually does is much too often not exactly what the manufacturer says the software does.

Reverse Engineering

You should know up front that pretty much everything at this website has been obtained by reverse engineering computer software from commercial manufacturers, not so their ideas can be stolen and reworked, but so the actual working of what they sell can be discovered and reported for public benefit.

I say my work is critical analysis, but if you think that reverse engineering can only be theft, then turn away now—or, better, browse this website’s thousands of pages to learn differently.


The software examined here is almost always Microsoft Windows or one of Microsoft’s programming tools for Windows.

Very little that I write about this software is intended for a general readership. If anything, almost all is at the other extreme: I take as granted that you have a sound understanding of advanced Windows programming in general and a good knowledge of what Microsoft has already documented of the particular topic. It has to be this way, not just from my disposition and temperament but for the practical matter that I could not otherwise get to the detail that Microsoft’s documentation does not.

Where I do cover material that Microsoft documents, it is not at all unusual that what I write conflicts with Microsoft’s documentation. That is much of the point to my proceeding with the intensive research that backs up the writing: you should be able to rely on me to be correct and Microsoft to be mistaken, because Microsoft at best documents what its programmers thought they coded into the software but my aim is to document what actually is there.


This is resolutely not one of those many websites that collate suppositions from who knows where on the Internet. Though I may slip up now and then, my intention is that all the substantive work 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 computer software is the software—not the product documentation, not even the source code, just the software as actually executed by the computer.

For more about the nature of this work and my reasons for doing it, please read Software Analysis by Reverse Engineering.


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 Browsing Guide.

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 for Windows programming. If you appreciate the research behind the site and the free publication of what I find time to write up, then please consult me for your Windows programming. If you have nothing to consult me on, then please recommend my consultation services as widely as possible.

Better, if you would like to see the research and writing become established as full-time work for the public good, then please recommend it to people (including companies and universities) who have the resources to fund it and may also have the will. If all you have is an idea for possible funding, it’s very possibly more than occurs to me with my limited mind for these things, so please send me your suggestion.