MarkEXE v2.5 Protect! EXE/COM v5.5 (C) 1993-1995 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 v2.5 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) 1995 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: _________________ The biggest change between this version and the last is simply that MarkEXE v2.5 actually works. I had to rewrite it so that it would work on files needing different amounts of header space, something that was brushed over before. The biggest problem left that can't be fixed is that if there happens to be an ASCII #26 (EOF) character in the first mandatory bytes of Page 3 the EXE header, the contents will not be displayed with the TYPE command. CONTACT: ________ Jeremy Lilley Protect! EXE/COM 2711 Oakview Circle Medford, Oregon 97504 Compuserve: 75060,2074 Internet: 75060.2074@compuserve.com