ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ C R Y P T E X E ³Û ³ ³Û ³ Executable Files Crypter. ³Û ³ ³Û ³ Test Version 1.00 ³Û ³ ³Û ³ Copyright (C) 1994, Dmitriy Borisov ³Û ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß License. ~~~~~~~~~~ CRYPTEXE is a program you are encouraged to use, copy and share with other users all over the world absolutely free of charge on unlimited number of computers for NON-COMMERCIAL purposes, but this is not a freeware in the accepted sense of this term: any modifications of this program are NOT ALLOWED. Author disclaims all warranties as to this software, whether express or imlied, including without limitation any implied warranties of merchantability or fitness for a particular purpose. This is the only test version and may contain some bugs in it and the entire risk as to the quality and program perfomance is with you. Preamble. ~~~~~~~~~~~ CRYPTEXE is designed to let you protect any programs you wish not be run by another users. It may be some dangerous programs (such as FORMAT or any other) which may destroy something with unskilful use or any pro- grams revealing some confidential information you wish not to be accessed by others. Also it may be the best way to protect your copyrighted (NON- -COMMERCIAL) software against illegal using or modification, but be careful - I didn't test my method comprehensively yet and cannot guarantee that it will not be cracked by sophisticated hackers. CRYPTEXE processes files of two executable DOS types - with extensions 'COM' and 'EXE'. I did my best to force CRYPTEXE to distinguish DOS executable format of EXE programs and don't process non-DOS EXE files (such as Windows or OS/2 operating systems files), but I have a very little reliable information about format of these files and differences between them, so you may expect CRYPTEXE be deceived by any non-DOS EXE file format and may process it improperly. So better don't tempt CRYPTEXE by such things. One feature of CRYPTEXE. Some EXE programs you wish to encrypt may contain overlay (non-loadable at run time) data which may be read from the disk by this program during execution. This program expects overlays stored just after load module at some permanent distance from begin of this file. But if you encrypt this file its size may be changed and this means that that distance I told before will also be changed and it's very possible that this program will not be able to find overlays in its own body on the disk. And this is why there is some risk to encrypt such programs. But don't worry though: more often programs containing overlays have a big size (otherwise what's a reason to have overlays ?) and consequently a big relocation table (some table in header of EXE file). CRYPTEXE uses only half of this table, other half can be discarded without a harm. This gives decreasing of a size of output file and if relocation table is big enough (more than 2 KBytes) it's possible that size of load module of encrypted file will be equal or less of a one of original file. In this case overlay data in encrypted file will begin just at same distance from begin of a file as in original one and this program should find them with no problems. In both cases you'll be notified about what's a distance in a new encrypted file overlays begin from. Few words about encryption method: this method has been developed by me and based on encryption with strict dependence of a concrete password, so, if you forget your password, even I shall not be able to help you. Such technique gives high security level, but has one disadvantage - low speed: on the AT-286/12MHz machine 100KB program it processes nearly 6 seconds, so it restricts using of this method in processing of large programs on slow computers. For better protection of your programs try to use unique passwords 8-15 characters long with no reiteration of the same characters. Starting CRYPTEXE. ~~~~~~~~~~~~~~~~~~~~ CRYPTEXE works in a simply way - you specify in a command line name of a file you wish to protect and, if this file is not encrypted yet, you'll be prompted to enter encryption password. Type in a password 5-20 characters long and press . You then will be prompted to reenter your password for verification. Retype it once more. If program completed successfully you'll get new encrypted file. Try to run it immediately to see what changed with this file. At first you'll be prompted to enter your password. Have it done. Then wait a little while password will be verified. If you've entered password correctly - program will run normally, such as it did before encryption. If not - you'll see matching message and program will be terminated without any useful result. If you wish to restore encrypted program to original state - specify in a command line name of this file and specify option '-d' (decrypt) and, if this file is actually encrypted, you'll be prompted to enter your password. Type in your password you used to encrypt this program and press . Then this file will be decrypted and, if you've entered correct password, you'll get original program in such an image it had before encryption. Notice: if you encrypted program with case sensitive password (option '-c') - use this option again when decrypt it, otherwise all letters in a password will be automatically uppercased. During encrypting and decrypting CRYPTEXE shows you its progress in percents. If you see message 'Done' at the last line - process completed successfully. Command line parameters. ~~~~~~~~~~~~~~~~~~~~~~~~~~ CRYPTEXE accepts (and requires) command line parameters. In general view command line should look like: CRYPTEXE InputFile [OutputFile] [-Switche(s)] ( Optional parameters put in the brackets ) CRYPTEXE requires minimum one necessary parameter to normal work - input file name. First file name in a command line assumed as input file (to be processed), second file name (if any) assumed as a name for output file. You can also define only drive and/or path for output file. At this case output file with name of input one will be produced in that path. If second file name omitted - output file inherits input name. Switches may be put in any place of a command line - before file names, between or after them. You can get their brief description if run CRYPTEXE without command line. File names and switches must be separated by spaces. Switches must be prefaced by character '/' or '-'. Switch letters can be uppercased or lowercased, just as you like. Next command line switches are allowed: -a = Always crypt files with overlays. Has an effect when encrypt EXE file. If input EXE file has overlay (not loadable at run time) data this file will be encrypted without prompting you to get a consent to encrypt it. -b = Make backup copy of original file. If you've not specified output file name or output name is the same input one, CRYPTEXE assumes output file will overwrite input one and this option allows you to preserve old file with same name and extension 'BAK'. Note: if BAK file already exists it will be overwritten. -c = Case sensitive password. This option allows to distinguish uppercased and lowercased letters in a password. -d = Decrypt encrypted file. Restores original image of encrypted file as it was before encryption. Requires correct password. -e = Erase input file after processing. Forces CRYPTEXE phisically erase content of input file after processing. Use with care: information contained in this file will never be restored by any way. -n = Never crypt files with overlays. Has an effect when encrypt EXE file. Forbids encrypting files with overlay data. If that file you wish to encrypt contains overlay data, you'll be warned about this and CRYPTEXE will terminate. -o = Overwrite output file if it exists. If you've defined output file name and this file already exists this option forces CRYPTEXE to overwrite it without asking you to get a consent to do this. -t = Truncate overlay data. Has an effect if input EXE file contains overlay data. If you've specified this option overlay data will not be applied to the end of output file. Use with care: this discarded overlay data will never be restored, but that EXE program may need them. Note is that some switches combinations are incompatible, among them: - switches 'n' and 't' - CRYPTEXE will not be sure what it have to do: don't encrypt files with overlays or truncate them; - switches 'b' and 'e' also will puzzle CRYPTEXE: there is no reason to make backup copy of input file after it has been erased. In both these cases you'll be warned about this and CRYPTEXE will terminate. There is no switch for indicating that you wish to encrypt file, it assumed by default. But if you wish to decrypt an encrypted file - specify this explicitly by switch '-d'. What comes next ? ~~~~~~~~~~~~~~~~~~~ It's nearly all that you need to know to run CRYPTEXE. Run it now ! --------------------------------------------------------------------------- This program has been produced exclusively by Dmitriy Borisov, non-profit amateur developer. I'm interested in feedback, suggestions and constructive criticism. Report all detected bugs and any other suspicious behaviour. All remarks and advices will be accepted with pleasure. Special thanks to Oleg Mamontov for providing his e-mail node for this purpose (I have no mine). * * * If you find CRYPTEXE of value and convenient to use and you consider my skill can find a better applience in joint/exclusive job with/for you - send all proposals with no hesitation. I don't require any contribution from you, just let me know if you want to make business in any form with me. I'm so sick of being just a non-profit amateur ... You can reach me at dima@glvs.vladimir.su or write to Dmitriy Borisov P.O. Box 7 Kovrov, Vladimir region 601901 Russia I'll regard all your offers ! Thank you for using CRYPTEXE ! Dmitriy Borisov. 06.28.94 ---------------------------------------------------------------------------