Winfingerprint ChangeLog: ------------------- Known Problems: 1. Winfingerprint DOES NOT run on Windows 9x most of the APIs used in winfingerprint are not available in Windows 9x. 2. If winfingerprint encounters a samba server it will of course fail on things like registry connections. NetGroupEnum() doesnt work on Windows9x NetServerGetInfo() NT & 9x -- winfingerprinting code ------------------- Winfingerprint 2.28 9/11/2000 Changed over to getopt_long. This makes it easier for us to add features. Fixed a bug in winfingerprint() that caused wrong number of logged on users to be printed. Fixed contributor email addresses. Made Network Addresses print in a more human readable format. Minor code cleanups. Winfingerprint 2.27 (1 year anniversary edition) 08/15/2000 vacuum@technotronic.com Added some missing HTML information and fixed a very old and overlooked bug in menu.html. Added Session Enumeration. Windows 9x machines will now enumerate Date & Time too. ---- Fixed Display bug in Domain and Lan Root reported by Egemen Tas (egement@karde.com.tr) Instead of changing fprintf("blah %s\n); to fprintf("blah %S\n); like Egemen suggested, I changed to fwprintf(L"blah %s\n"); just to be difficult ;) Winfingerprint 2.26 08/03/2000 vacuum@technotronic.com Winfingerprint now obtains Date and Time from target computer. Winfingerprint now enumerates Transports from target computer. Updated Usage to reflect changes, running out of sensible options so: -a Enumerates NetBIOS Shares, Users, Groups, Transports, Date & Time, and Services -s Enumerates Services, Transports, Date & Time Winfingerprint 2.25 06/16/2000 Changed 1999 references to 1999-2000. Corrected some grammatical errors. Now automatically opens html in default browser. Winfingerprint 2.24 03/21/2000 vacuum@technotronic.com added #pragma comment(lib, "****")'s so people who don't read the comments will be able to get winfingerprint to compile :) I have to search through my email to give proper credit for this patch. winfingerprint has ALWAYS improperly identified Windows 9x machines as Windows for Workgroups. FIXED! HTML Updates. Cleaned up frames, added background color to differentiate different machine names. Added sharename to share enumerations for easy browsing. (Very neat) Winfingerprint 2.23 01/06/2000 vacuum@technotronic.com Error messages are now only reported to stderr and are not placed in the html (much cleaner output). Finally implemented Global FILE descriptors. Cleaned up all the functions to just pass the computername instead of computername and file stream. Now -t \\computername will also create frame.html and menu.html. They aren't really needed, but consistency is nice. From now on, you can always open frame.html Mike / Vacuum Cleanups: Removed NOTE: If no server is supplied (e.g., No '-t') localhost is used. from Usage as this hasn't been true for quite some time. Removed iostream.h header (didn't use it). Removed lots of DEBUG that was put in to test things, I dont know why anyone would turn this on besides a developer. Winfingerprint 2.22 01/01/2000 vacuum@technotronic.com Many html output enhancements. continuing through all of winfingerprint's options. A frame.html is also now created by getnetwork() when -m is used. This is of course a framed html output that uses your -o filename.html as well as menu.html (for the menu). I have some logic bugs to work out I am sure, but I have been awake about 30 hours straight now. Winfingerprint 218 Fixed a problem reported by : 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. 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 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. : I included 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 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 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 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 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 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 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 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 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 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 207 09/21/99 Vacuum - Added -n option NullSession() which establishes a NULL session using wnetaddconnection2(). Winfingerprint 206 Mike & Vacuum CHANGELOG: Fixed many stability/logic issues within getopt(). Better error handling and User Friendly Error messages. 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 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 2.20 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. Winfingerprint 2.21 12/23/1999 vacuum@technotronic: sfaust@hartco.com introduced a minor bug in the options parsing that would cause winfingerprint to crash if you did not specify -m or -t. Fixed. Winfingerprint 203 08/20/1999 Vacuum's CHANGELOG: Added Service Enumeration. Check to see what services are running on remote machine (very detailed) 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 201 Vacuum's CHANGELOG: Added HTML Output Improved Error Handling Added the following information to NetServerEnum() Platform: Name: Version: Type: Winfingerprint 2 beta 2 Vacuum's CHANGELOG: Added User and Group Enumeration. 08/18/1999 Winfingerprint 2 beta 1 Vacuum's CHANGELOG: Initial release OS Detection and NetBIOS Share Enumeration. 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.