Winfingerprint ChangeLog: 

Winfingerprint 1 (no longer developed)
Winfingerprint 1 was written in the Windows Interface Language and was slow and bulky. It had an ugly
interface and also contained a connect() based portscanner which was also very slow.

Winfingerprint 2 (currently under development)

Winfingerprint 2 beta 1
Vacuum's CHANGELOG:
Initial release 
OS Detection and NetBIOS Share Enumeration.

Winfingerprint 2 beta 2
Vacuum's CHANGELOG:
Added User and Group Enumeration.
08/18/1999

Winfingerprint 201
Vacuum's CHANGELOG:
Added HTML Output
Improved Error Handling
Added the following information to NetServerEnum()
Platform:
Name: 
Version: 
Type: 

Winfingerprint 202
08/19/1999
Vacuum's CHANGELOG:
Changed the hardcoded 'winfingerprint.html' file to a userdefineable output name.
Corrected a HTML output bug found by interrrupt.

Winfingerprint 203
08/20/1999
Vacuum's CHANGELOG:
Added Service Enumeration. Check to see what services are running on remote machine (very detailed)

Winfingerprint 204
08/21/1999
Mike's CHANGELOG:
OK, first I added custom coded 'getopt()'. Fear. You can use -option or /option.
I did a lot of aesthetic stuff. Like switching \n's to html breaks.
I also set it so that if no putput is specified (-o) it will default to winfingerprint.html.
Added DisplayUsage().

Winfingerprint 205 
Officially added Mike to the developer list.
08/23/99
Mike's CHANGELOG:
Well I first functionized the 'WinFingerPrinting' part and then added an option 
to allow you to scan your entire Network NeighborHood.  NOTE: When you do -m -s -u, it does
that scan for ALL machines in the network.  Also added the 'Comment' field to
the server information output and as always added stuff for aesthetics.
Look for an update soon with the portscanning of a target as an option.
Added #ifdef DEBUG
Vacuum's ChangeLog
Changed Error output so that if an error was encountered winfingerprint did not exit()
Changed Error messages to FormatMessage() against LastError() for 'User Friendly' Error messages.

Winfingerprint 206 
Mike & Vacuum CHANGELOG:
Fixed many stability/logic issues within getopt(). Better error handling
and User Friendly Error messages.

Winfingerprint 207 
09/21/99 Vacuum - Added -n option NullSession()
which establishes a  NULL session using wnetaddconnection2().
 
Winfingerprint 208 
09/22/99 Mike - cleaned up some of NullSession() code
09/23/99 Vacuum - Totally rewrote getnetwork function. Old version worked,
this new version handles errors more elegantly. 
Rewrote parts of diskenum() function.

Winfingerprint 209 
09/27/99 Vacuum - Added Registry Querying Function
Currently queries the service pack level. 
I will add hotfix enumeration in a day or two.

Winfingerprint 210 
09/28/99 Vacuum - Forgot to add RegCloseKey()
Updated getopt() options 'a' and default to include Null Sessions & Registry Querying
09/29/99 Vacuum - Added hotfix [QXXXXXX] style enumeration. Minor HTML output cleanup.
You will have to lookup these Q numbers yourself for now. RegEnumKeyEx() copies only
the name of the subkey, not the full key hierarchy, to the buffer. Someday I will 
RegQueryValueEx() the Fix Description.

Winfingerprint 211 
09/30/99 Vacuum - darlok@hotmail.com was the first to report RegQueryEx() error 1734
when using the -r RegConnection() function. Shame on me for only testing against localhost.
Fixed by properly allocating the size of dwBufLen. As a bonus, I now use FORMATMESSAGE to
provide more friendly error messages for this function.

Winfingerprint 212 
10/1/99 Vacuum - New diskenum() logic. In the past, winfingerprint's NetShareEnum()
ran at 'level 502' which required Admin or comm, print, or server operator group membership
to successfully complete. Now, upon failure we return(3); and proceed to execute diskenum95() which runs at 'level 1' . While it doesn't return as much information (no administrative$ shares), does NOT require any special access.
Fixed error where last applied hotfix was shown TWO times in HTML (reported by darlok@hotmail.com).

Winfingerprint 213 
10/2/99 Vacuum & Mike - Fixed error checking within getnetwork() function. Converted all functions to return(0) on success and return(1) on failure. Bugfixes, NEW HTML layout. 
Added switch(ret) feature. Removed diskenum95() function. Looks like we will have to use Wnetenumresource().


Winfingerprint 214 
10/3/99 Vacuum - Added internal NullDisconnect() function that uses WNetCancelConnection2()
to disconnect your NULL IPC$ session after all other command line options are complete. All previous versions of winfingerprint did not disconnect your ipc$ sessions.

Winfingerprint 215
10/3/99 Mike- fixed numerous errors in diskenum95() that Vacuum added in 212. Since it didnt work this code was absent in 213 and 214.
10/3/99 Vacuum - Added Fix Description to HOTFIXES! 

Winfingerprint 216 -- Current Stable Release --
Jason_Jordan@omron.com reported a bug  where one of the GetLastError() calls wasnt set to a DWORD causing an exception error. 
10/8/99 Mike changed all errors to return(-1); and impelmented a universal ErrorHandle() function.

Winfingerprint 217 

Jason pointed out the error addressed in 216 and also submitted a patch to the 216 release.
Pending his acceptance, Jason will also be doing the GUI frontend.
<Jason_Jordan@omron.com>:
I included <string> for using wstring(the STL wide string container)
I added using namespace std so I wouldn't have to use std:: everywhere
I appended .begin() to all ErrorHandle() calls. This returns a point to the 
start of the string.
In the ErrorHandle function I copied the message buffer to the wstring, free
the message buffer, and return the wstring.

Winfingerprint 218
Fixed a problem reported by <Jason_Jordan@omron.com>:
On line 749 in the main winfingerprint app there is a bug. The line was:
else printf("Registry Connected [%S]\n", szServer +2);

and it should be:
else printf("Registry Connected [%d]\n", szServer +2);

Also the debut of Jason's GUI frontend. We are still trading ideas back and forth, but I am letting everyone else check it out too.

Jason Updated the GUI that did not coincide with a winfingerprint release. Added Launch button that would launch your web browser with winfingerprint results in it. Nice!

Winfingerprint 219 -- Current Stable Release --
neil lehrer [nlehrer@ibb.gov] reported a problem when winfingerprint was run only with the -r switch. Fixed by adding error handling that forces either a -t \\COMPUTERNAME or a -m.

<Jason_Jordan@omron.com> updated the GUI, it now is able to accept input in the
computer name box. The executable path is also persistent now. So once you
enter the executable path once, it will remember that path the next time you
execute it.

[sfaust@hartco.com] created a French port of winfingerprint-218.

Winfingerprint 2.2
sfaust@hartco.com supplied a huge patch to the getnetwork() code. Sacha and I have been exchanging code and
talking back and forth about being able to scan more than just your "Network Neighborhood" This version should
be considered a critical upgrade to anyone with a large NT domain model or an administrator who manages multiple
domains. 

