MarkEXE v3.0 Protect! v6.0 (C) 1993-1996 Jeremy Lilley All Rights Reserved INTRODUCTION: ------------- MarkEXE is a simple utility that imbeds your copyright messages at the beginning of any normal EXE file. Simply specify the executable file name and the file containing the copyright message: MarkEXE [ProgName[.EXE]] [Message.Msg] for example: MarkEXE MyProg MyProg.Msg MarkEXE v3.0 was designed to be used with Protect!, but it can be used on any normal DOS executable file (it will work on a few larger files not supported by Protect!, and it is even possible to use on Windows and OS/2 executables if you see the instructions below). MarkEXE will place the message as close to the beginning of the EXE as possible, which is at byte 32 of a Protected exectuable. It will try to recover unused header space first to minimize the file's expansion. It is important that you run MarkEXE only *after* and not before running Protect! on a file because Protect! removes MarkEXE messages. Also, MarkEXE's messages will not be Protected from modification by Protect! because they are not loaded into memory when the file is run. EXAMPLE: ________ The message that MarkEXE puts in executable files is viewable from any command or program that can look at the file itself, including the DOS TYPE command and other utilities such as DiskEdit: C:\>TYPE MyProg.EXE MyProg (C) 1996 John Doe Enterprises Please read MyProg.DOC for instructions. John Doe Enterprises 123 Main Street Anyplace, USA 12345 (123) 456-7890 jdoe@anynet.com SUGGESTIONS: ____________ You may want to add an ANSI clear screen command (like ESC[2J) at the beginning of the file to clear the display Page 2 (because MarkEXE can't put the message until after the first 32 bytes, ridding the screen of garbage, at least on ANSI systems, is a good idea). Also, the message file for MarkEXE is different from the modification message file that is used in the registered version of Protect!, but they could conceivably be the same or almost the same file. WINDOWS / OS/2 EXECUTABLES: --------------------------- If you write Windows or OS/2 programs, it is possible to add a copyright message with MarkEXE even though Protect! won't work on them. DON'T just try to add the message to the EXE file (because that will cause problems and conflicts with many of the pointers of the Windows / OS/2 portion that MarkEXE was not designed to deal with). What you need to do is go back to your compiler and create a .DEF file and include it in the program's project or make-file (if one doesn't already exist). In the DEF file, add a STUB statement: STUB 'EXE_STUB.EXE' Now, create the EXE_STUB.EXE file (name it whatever you want) with a DOS compiler. This STUB file is what is executed when you try to run a Windows program from DOS. Normally, the compiler defaults to a small program that tells you to load the file from Windows, but with the STUB command, you can specify your own message or even a DOS version of your program. Once you have created your own EXE_STUB.EXE, you just use MarkEXE on it, compile/link the Windows or OS/2 executable, and your new message should appear at the beginning of the Windows or OS/2 executable. LICENSING: __________ This program must be distributed with Protect! EXE/COM and be used under the same terms. You must register this package before distributing the finished EXE files. In testing and using, you agree not to hold the author responsible for damages that may result from the use or misuse of this program. CHANGES/PROBLEMS: _________________ There have been very few changes from MarkEXE v3.0; mostly minor changes to make it work better with Protect! v6.0. There is still the problem that if there is an arbitrary End Of File marker in the first 32 bytes of the EXE file, the message can't be displayed with the TYPE command. You can get around this by compressing or not compressing (i.e. changing the Page 3 file size) in most cases. There is little that can be done inside of MarkEXE for this. CONTACT: ________ Jeremy Lilley Protect! EXE/COM 2711 Oak View Circle Medford, Oregon 97504 Email: jjlilley@mit.edu Compuserve: 75060,2074 URL: http://web.mit.edu/jjlilley/www/protect.html