Software COP The Ultimate Software License Enforcer Version 1.1 Software COP v1.1a Designed and Coded by: BLAZE Technologies, Inc. 2100 S. 7th St. Rapid City, SD 57701 Phone: (605) 394-5777 Fax: (605) 394-5778 Email: sschlome@silver.sdsmt.edu sbauer@silver.sdsmt.edu Copyright: Copyright (c) 1993 by Blaze Technologies Other brand and product names are trademarks or registered trademarks of their respective holders. License Agreement : This software is provided on a trial base for a 45 day period. This is intended to allow 30 days for evaluation of this product and 15 days to order the product. If you do not purchase this product after the 45 day evaluation period, then you must remove all copies from your system. By using this software you are agreeing to these terms. Once you have purchased this software, you will be given a personalized copy for your site. This purchased copy may not be exchanged, sold or distributed. Warranty: This software is sold on an as-is basis. Blaze Technologies specifically disclaims all warranties, expressed or implied. In no event shall Blaze Technologies be liable for any loss of profit or any other damage including but not limited to special, incidental, consequential or other damages including damages to a third party. By using this software you are agreeing to these terms. If these terms are not agreeable, do not use this software. Table of Contents Synopsis 4 Installation 5 Usage 6 Wrapping Overlayed Programs 10 Limitations 11 Support 12 Appendix A 13 Ordering Instructions 16 Order Form 17 Synopsis As the growth of networks has exploded, complying with concurrent usage limits of a program has grown very difficult. Also, tracking the usage of an application that has been installed on a LAN is even more difficult. As it turns out, software publishers are becoming more aggressive about license enforcement. This has been demonstrated by the increase in the number of 'raids' and lawsuits filed against corporate users. Formerly, the lack of reliable tools made software metering almost impossible, but with the birth of the Software COP, the goal of software license compliance is easy to obtain. Software COP allows you to accomplish both goals of compliance and economy. It does this by allowing you, as a system administrator, to monitor the demand of a application and limit how many users can concurrently execute an application. For monitoring the demand of an application, Software COP provides various report formats. These reports consist of: * Overall usage for all monitored applications. * Daily application usage histogram. * Applications used by user. * Users that have used an application. Along with the monitoring of the demand, you can limit the actual number of concurrent users for an application. Since Software COP was designed to be very versatile, a couple of methods have been included to ease software metering. These are: * Pooled metering - One big limit that encompasses everyone. * Group metering - This is where the system administrator can assign different limits to individual Novell Netware groups. With all of these features one would assume that Software COP has grown very large. However, the design goals of the Software COP provided for these benefits: * Low memory overhead when running metered DOS applications - typically less than 1K. This was accomplished with the aid of Ralf Brown's spawno routines to reduce the memory overhead when shelling to other DOS programs. * No need for any TSRs. * No need for any special program to be loaded with Windows load= line. * No need for a PC dedicated to metering software. * Allows for the waiting of a program's availability. * Easy, simple installation on already established networks. Software COP will help you compile all the information you need to allocate your resources efficiently while documenting your network's compliance with current license limits Software COP Installation The installation of the software cop is very simple since there are not any dedicated machines that need to be set up or NLMs that need to be loaded. The following steps will guide one through the installation of the Software COP administration program onto the LAN system. The administration program, SOFTCOP.EXE, can either be installed on a server or on one's local hard drive. The benefit of having the program on a local hard drive is that the security is a little better since it is harder to get at. Other than that the software installation is the same for a server or a local hard drive. Before you begin the installation you should decide what the name of the log file will be. Also, you must decide which directory on the file server that you are going to use for the log files. The users must have full privileges to the log file directories so that they can log their data in the log file and merge the individual temporary files together. These are the general steps that are needed to install the Software COP: 1) Copy all of the files from the distribution media to the directory where you decided to install the Software COP administration program, SOFTCOP.EXE. These files are: SOFTCOP.EXE, DOSD.EXE and WIND.EXE. These files are the main files that Software COP uses. There will also be several other document files in the directory. Then create the needed log file directories on the file server(s). Remember that the users must have full rights to these directories for the logging to work correctly. Copy the DLL's to a directory that is in all of the users' paths on the server such as the public directory. 2) In the directory where SOFTCOP.EXE was installed, a simple configuration file must be created. This configuration file, SOFTCOP.CFG, tells the administration program what the valid log file paths and file names are. Below is a sample SOFTCOP.CFG file: LOGFILE SCLOG.DAT FS1\SYS:TMPFILES\LOGS\ FS2\SYS:TMPFILES\LOGS\ FS3\SYS:LOGS\ The first line contains the keyword LOGFILE and then the name of the log file. After the first line, the names of the paths for the log files are listed. There must be at least one path for each server volume that is going to have programs protected by Software COP. From the example file above, one can see that the paths include the server name, volume name and then the path with a final backslash. There can only be one log file path per file server - volume combination. After entering all of the log files, save the file with the name SOFTCOP.CFG, and the installation is complete. Congratulations! Software COP is now installed. You are ready to wrap the programs that you would like to protect! Software COP Usage Using the Software COP menu system is trivial. Simply use the arrow keys to move around the different menu items, and hit to make the selection. or can be used to move backwards in the menu scheme. MANAGE APPLICATION Under this menu item, software metering management is made easy. GSS files can be created and altered with the EDIT GSS FILE menu selection, and the wrapper can be installed for the desired program with WRAP APPLICATION. * EDIT GSS FILE The GSS file contains the information that the wrapper programs use to carry out the wishes of the LAN administrator. It is recommended that the GSS files be edited with the Software COP administration program only and not by hand unless the section in Appendix A has been thoroughly read and understood. After the EDIT GSS FILE menu item has been selected, a file dialog box with a directory structure will appear. Select [DRIVES] to go to the file server on which the program to be metered is located. Once inside the desired file server, simply traverse the directory tree with the arrow keys and . To see the .EXE, .COM, and .BAT files that are located in the selected directory, press . Once the desired file has been located, press to edit (or create if the GSS file does not exist) the program's GSS file. SPECIAL NOTE ON BATCH FILES: If the application to be metered is a batch file, and the GSS file for that application is not found, a dialog box will appear asking for a dummy filename. This dummy filename will be the new name of the batch file when the batch file is wrapped with the WRAP APPLICATION menu selection. The renamed batch file will be hidden, and a new batch file will be created with the name of the original application. This new batch file calls a hidden DOS wrapper, which calls the original batch file correctly. When in the GSS file editing dialog box, use or to move between fields. Pressing will also move between the fields unless the START MESSAGE field has the focus, then the dialog box will save the information upon approval. The GSS file will be flagged with the ROSH attributes. The follow section describes the various fields inside the GSS file editor dialog box. DESCRIPTION - A line of text describing the program. VERSION - The version number of the program to be metered. It is necessary for metering enforcement that the program's version be included if there are different versions of a program being run on a file server. OS TYPE - The operating system type of the metered program. It is important that this option be set to the proper OS type so that the correct program wrapper is installed. (Except when a BAT file is being wrapped, then the Software COP administrative program will put the correct BAT entry in the GSS file.) ENFORCE - Used to limit the number of copies that are concurrently run on a file server. WAITING - When this option is set to YES, the user can wait until a license of a program becomes available to use. MAX WAIT TIME - The maximum number of minutes that a user is allowed to wait for the next available license of an application. POOLED - Determines if maximum license usage should be based on a single number or on the individual number of copies allowed for each individual group. The groups are ignored if pooling is on. MAX POOLED - Sets the maximum number of concurrently used licenses. LOGGING - Determines if program usage data is gathered or not. GROUP - This is a list box of the different groups and their allocated licenses. Use to add a group and to remove a group. To change the number of licenses available for a group, press . It is all right if the number of copies for a group is left at zero if POOLED is on, otherwise, that group will not be able to run the program. START MESSAGE - This message is displayed whenever a program is run. DENIAL MESSAGE - This message is displayed to the user when all of the available licenses of an application are in use. * WRAP APPLICATION Wrapping the application occurs when this menu option is selected. Once the application has been located with the file selection dialog box, the Software COP administration program will attempt to wrap the application. If a corresponding GSS file is found, Software COP will rename the original application as filename.@@@ and will flag it with the ROSH attributes. Once the application has been renamed and hidden, Software COP copies either the DOS wrapper or the Windows wrapper to the applications directory and renames the wrapper as the original application name. For batch files, see the special section introduced above. It may be possible that Software COP cannot rename or flag a file. If this is so, the file that was to be wrapped is probably in use. STATISTICS Statistics gathering is one of the main tools that a successful LAN administrator uses to determine application usage on a file server. With the statistics gathering options of Software COP, intelligent decisions can be made on the purchasing of additional licenses for a specific program. * SELECT LOG FILE SERVER... Selection of the desired log file is accomplished here. It is necessary to pick a log file before any statistics gathering can be performed. * SELECT LOG PERIOD... The start and end dates (inclusive) of the log period in which statistics information is gathered is set with the familiar __/__/__ format. This log period is not used in the DAILY APPLICATION USAGE item. * OVERALL USAGE FOR ALL APPLICATIONS This option is used to obtain the total usage for all applications found in the specified log period. After this menu option has been selected and the log file processed, a list of application usage statistics will be displayed. Here are the meanings for the headers: DESCRIPTION - Application description. ENF - Is enforcing on? (F - False, T - True) LIM - Maximum limit if the licenses are pooled. TUT - Total usage time in hours:minutes:seconds. AUT - Average usage time in hours:minutes:seconds. REQ - Number of requests. C - Number of successful completions. DL - Denials because the maximum number of licenses were being used. DG - Denials because the user was not a member of the required group(s). Use , , , and to navigate through the list. saves the data to a file in tab delimited form, and will print to the desired printer port. * DAILY APPLICATION USAGE... A usage histogram of the maximum concurrent licenses for an application in use during each hour of a day can be obtained with this menu item. After the desired date has been entered, Software COP will look for all of the applications that were used during that date. Once the desired application has been selected, the usage histogram for that application will be displayed on the screen. Use to save the data in tab delimited format for inclusion in a spreadsheet. will print out a text graph to the desired printer port. * APPLICATIONS USED BY A USER... With this menu option, the overall usage statistics for the applications used in the specified log period by a certain person can be determined. This statistics gathering option could be useful if it is necessary to charge users for their usage of an application. Disclaimer: Although we(Blaze Technologies) have tested the usage times and do believe that the recorded usage time information is correct, Blaze Technologies assumes no responsibility regarding arguments a user may have about his or her usage time of an application. * APPLICATION'S USER LIST... This menu option gives the user names and their usage statistics about an application that they have used during the selected log file period. See the disclaimer under the APPLICATIONS USED BY USER section. ABOUT... Developer and copyright information about Software COP can be found here. EXIT Leave the services of Software COP. Wrapping Overlayed Programs Most overlayed programs will work correctly when they are wrapped. However, there are a few programs that will not work since they try to load the overlay from the executable file using a hard coded file name. These programs can still be metered by the Software COP, but these types of programs require special wrapping instructions which are given below. 1) Create a batch file that will run the problematic overlayed program. 2) Now wrap the batch file instead of wrapping the original executable. This allows the overlaid program to keep its original name. 3) Now run the batch file instead of directly calling the executable. That is all there is to protecting the problematic overlayed programs. Limitations Metering DOS Programs There have not been any problems found with the metering of DOS programs. Metering Windows Programs There is one small problem with metering windows applications - dealing with programs that have a loader. These type of programs (i.e. Charisma 2.1) have a small loader program that loads the actual program. This loader then terminates after the actual program is loaded. Software COP cannot monitor when the actual program is running and therefore cannot log the length of the program's execution nor can it tell how many copies are running at any specific time. Software COP Support Please send questions or comments concerning the use of Software COP to: via Internet mail: sschlome@silver.sdsmt.edu or sbauer@silver.sdsmt.edu via CompuServ mail: 72154,1463 via US Postal mail to: Blaze Technologies 2100 S. 7th St. Suite 223 Rapid City, SD, USA 57701 via Voice Phone: (605) 394-5777 Appendix A Wrapper configuration file options (filename.gss) This section is provided for information only. We do not plan to have you change any of the parameters by hand. The Software Cop Administration program will create all of the necessary entries in the configuration file. This configuration file is located in the same directory as the program that is being metered as a read only, hidden and sharable (rosh) file. It also has the same name as the original program except that it has the extension gss. [LIMITS] POOLED FALSE [MESSAGES] START This software is protected by Software COP! DENIAL Sorry, all available licenses are in use. [GENERAL] OS DOS VERSION 2.05 DESCRIPTION MEM for DOS LOGFILE FS1LOG.DAT LOGPATH FS1\SYS:LOGS\ WAITING 67 ENFORCE TRUE NAME FOOBAR.EXE [GROUPS] OURGROUP 1 Figure A-1 The above excerpt is the complete configuration file for the control of the program foobar.exe. The following section will describe the individual fields of the configuration file. [LIMITS] This section of the configuration file tells the wrapper if the usage of the program is pooled or if the usage is controlled by the individual groups. The keyword POOLED is followed by either FALSE, meaning that the entries in the GROUPS section control the usage of the program, or the number of concurrent users that are allowed to use the program. The syntax for the parameter is as follows: POOLED FALSE (entries in the GROUPS section control the program) or POOLED ### (where ### is the number of concurrent copies that can be used). [MESSAGES] This section contains the supervisor definable startup and denial messages that the user will see. Had the supervisor chosen to leave out a message then the keyword is left out of the configuration file. Otherwise, the format for the messages are as follows: START This is the only license! (Message shown on startup) DENIAL Sorry we are out of licenses. (Message shown on denial) [GENERAL] This section contains the general information that the wrapper program needs to log and to monitor the application. OS #### (Where ### is either DOS, WINDOWS or BAT) VERSION #### (Where ### is up to a 4 digit number including the decimal point) DESCRIPTION Notepad for Windows (Description of the program being wrapped) LOGFILE ### (Where ### is the name of the log file including extension) LOGPATH ### (Where ### is the path where the log file is stored including the fileserver's name) WAITING ### (Where ### is the number of minutes that the user can wait for a program to become available) ENFORCE #### (Where ### can be TRUE or FALSE - This determines if the limits are enforced or not) NAME #### (Where ### is the name of the program that is being wrapped) [GROUPS] This section is used to specify the groups that the metering program is supposed to meter the program for. For example, one can have the group OURGROUP have one program available and the group FACULTY have ten copies of the program available. This way only one person at a time from the group OURGROUP can run the program at a time, while up to ten people from the group FACULTY can be running the program at once. This section must always be at the bottom of the gss file. The syntax for this section is as follows: OURGROUP ## (Where OURGROUP is the name of the group and ### is the number of copies that are available to this group to be run) There can be up to 100 different groups per individual program that is metered. Software COP Ordering Instructions Below is the form that should be filled out and sent along with a check or money order to purchase the product. All currency should be in US dollars and made out to Blaze Technologies. The price for Software COP is as follows: $225 for the first file server and then $100 extra for each additional server. For example. I have a site that I will be installing Software COP on two file servers. The total cost for this site would be $325 which is $225 for the first machine plus $100 for the second server. After completing the order form below, please mail it along with the payment to: Blaze Technologies 2100 S. 7th St. Suite 223 Rapid City, SD 57701 Software COP Order Form Shipping Address __________________________ Send to: Blaze Technologies 2100 S. 7th St. Suite 223 Rapid City, SD, USA 57701 __________________________ __________________________ __________________________ __________________________ Person to contact in case of questions: __________________________ Title: __________________________ Email: __________________________ Voice: __________________________ Fax: __________________________ Software COP single server price $ 225 Number of additional copies required _____ @ $100 each $________ In South Dakota, USA add 4% sales tax $________ Total Due in US dollars $________ Ordering Date __/__/__ Netware version currently being used: __ V2.2 __ V3.1x __V4.0x What other network utilities would you like to see developed? ______________________________________________ ______________________________________________ ______________________________________________ Thank you for your support of Software COP! Software COP by Blaze Technologies V1.1 5