21/08/93 Ady is proud to present Another pure Assembler work X-OPEN ÄÍÍÍÍÍÍÍÍÄ Evaluation Version 3.20 þ CONTENTS These subject contained in this document, by appearance order: I. The legal stuff II. General III. Basic usage IV. Options V. Examples VI. Known programs VII. Generic COM extractor VIII. Branch IX. ExecLog utility (New freeware utility) X. Errorlevels XI. Protection XII. Bugs XIII. Support XIV. Prices XV. Contact XVI. History (See what's new) I. The legal stuff: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ THIS PROGRAM COMES 'AS IS'. I CANNOT BE HELD RESPONSIBLE FOR ANY DAMAGE CAUSED BY THE USE OR MISUSE THIS PROGRAM AND THE ACCOPANYING DOCUMNET. I CANNOT GUARANTEE THE FITNESS OF THIS PROGRAM FOR ANY PARTICULAR PURPOSE. IF THIS PROGRAM TURNS OUT TO BEHAVE UNEXPECTEDLY OR ERRONEOUSLY THE USER IS RESPONSIBLE, AND I CANNOT BE FORCED TO SUPPLY THE USER WITH A FIX. THE EVALUATION VERSION OF X-OPEN MAY BE DISTRIBUTED ONLY IN THE ORIGINAL, UNCHANGED PACKAGE AND NO ONE MAY CHARGE MONEY OR USE THE X-OPEN EVALUATION VERSION TO PROFIT MONEY OR ANY OTHER FORM OF PROFIT. NO ONE IS ALLOWED TO ADD, CHANGE OR REVERSE ENGINEER ANYTHING IN THE X-OPEN PACKAGE AS RECEIVED. THE REGISTERED VERSION IS ON A PERSONAL BASIS ONLY, AND MUST BE USED ONLY BY THE ONE THAT HAS PAID FOR IT. IT MAY NOT BE COPIED TO ANYONE, ANYWHERE, AT NO TIME AND UNDER NO CIRUMSTANCES WITHOUT THE AUTHOR'S WRITTEN PERMISSION. IT MAY NOT BE MODIFIED IN ANY WAY, PERMANENTLY OR NOT. IT MAY NOT BE OPENED, DEBUGGED, RECOMPILED OR REVERSE ENGINEERED BY ANYONE EXCLUDING MYSELF (Ady). * Also see improtant note at the PROTECTION section. --- BY USING THIS PRODUCT YOU AGREE TO BE BOUND BY THE TERMS OF --- --- THIS NOTICE --- 2. General ÍÍÍÍÍÍÍÍÍÍ X-OPEN expands "shrinked" .EXE and .COM files. It supports more than 60 different types of shirinkers, encrypters, and stickers. The fully, most updated list is in the program itself and can be seen with the -L option (see options below). X-OPEN does not rely on the unused areas of the .EXE header that can be removed (like LZ or PK signature). Also, X-OPEN throws out all unused information in the header it founds. X-OPEN tries to get as close to the original file size as it can, but for safety and convenience, it almost never gets to the original size exactly. Also, some parts of the .EXE header are not saved exactly as the original .EXE but this almost always has no effect on correct operation of the program. X-OPEN in most cases uses the generic method in identifing and extracting the modified .EXE and .COM files. The generic method has many advantages, in comparision to other methods used to open files. "Generic" can identify and successfully handle many types of .EXE files, in one detection and extraction scheme. For example, the PKLite (Generic) handles all PKLite version 1.00-1.15, except for the new PKLite 1.15/1.20 with extra compression which is covered by a different generic. Even if one will modify the PKLite expansion code a little, and will wipe the unused header, it is more than likely that X-OPEN will still handle it correctly! However, due to the nature of this method, false ID could occur. So don't panic if X-OPEN identifies a program with certain ID, but still can't get it opened correctly, displays errors, or even if the computer get hanged (Worst scenario). III. Basic usage: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ X-OPEN requires MS-DOS 3.0+ (or compatible). At runtime, it takes about 40Kb for itself, so that is the minimum conventional memory required. However, to successfully extract a program, there should be also enough memory to load that program to memory. Usually 600Kb should be more than enough, although they might be rare cases in which a few extra Kilobytes may be required. X-OPEN should work on every IBM XT or compatiable. A 80286 with MS-DOS 5.0+ is recommended, and the faster the computer is and more memory it has, the better. X-OPEN is quite simple to operate, and the structure of the command line looks like this: XO [Options] [Options] [Target [.EXE]] [Parameters] XO is the default name of X-OPEN program (XO.EXE) means that the respective parameter is mandatory (must be supplied) [x] means that the respective parameter is optional (doesn't have to be supplied) Source is the "shrinked" .EXE or .COM file. This must be specified. Target is the extracted .EXE file (result of X-OPEN). If no target is specified, than X-OPEN will use a temporary file, and after successfull operation will replace it with the original file. Note: In usual extraction, source and target must be specific names. Wildcards such as ? or * are not accepted, and will result in a "File not found" error message. Wildcards are only allowed in ID (Identification) operation (see -I option). When extracting certain EXEs, X-OPEN will first try to identify them. If the source has been found to be processed by a known program, a message will appear and X-OPEN will ask if you want to open it. If you answer O (for Open), X-OPEN will try to extract it to the target file. After that, X-OPEN will try to identify the result to see if it is processed by with more known programs, and will ask permission to open it. This repeats itself until you press Q (Quit) or X-OPEN doesn't identify the result code to be processed by any known program. X-OPEN results are almost always .EXE files. If the source file was originaly a .COM file, you can try to convert it back using EXE2BIN. If this doesn't work, you can always try one of the EXE2COM programs widely available. Beginning with version 2.00 of X-OPEN, source can also be a .COM file. You can also use my very own COM2EXE, which is included in this package. X-OPEN may ask some additional questions in some cases. If overlays are detected in the source file, and there is a target specified, X-OPEN will ask if you want to include them in the target. Usually these are found in big .EXE files, but not only. If overlays are found, you should usually choose Overlays to include them in the target. However, there are some cases in which overlays are not required (and can be Ignored): 1) .EXEs with misadjusted header. In these cases the overlays are smaller than 512 bytes, and if you don't know for sure that these are not overlays, include them in the target. Some programs processed with Eliashim's CodeTrack have this problem. 2) Shrinking programs that transfer the original program to overlays. Not many are around. In fact, I can think of only one program that does this: SeaAxe. Note also that programs with overlays should be double checked because they are more likely to cause problems after opened. Special messages should appear when stickers are detected. Stickers are programs that put together in one .EXE two programs, which run one after the other. Famous stickers are Ady's GLUE (mine), The Message Sticker (by Paz Hameiri) and the newley written GUM (by Nir Oren). In these cases, X-OPEN will ask if you want to open the sticker too. If you answer Open, STICKER.COM or STICKER.EXE is created and this file holds the sticked program. This way you can also keep the sticked prorgams themselves. This is critical for "backward sticking". What I call "backward sticking" is to stick the original program to the main .EXE or .COM, instead of the other way around. Ady's GLUE can be used to do that, since it sticks EXE2EXE and the order can be easily replaced. IV. Options: ÍÍÍÍÍÍÍÍÍÍÍÍ All of the options can be specified marked with / or - (hyphen). Options can be anywhere on the command line. To mark the I and K options you can write: XO -i -k source or XO /K source -I But NOT: -ik (there must be a / or a - before every option) Here are the options themselves: (options with a [+] can be used on the registered version only) ? Or no parameters Display the built-in help screen. L Display list of known programs handled by X-OPEN. O [x] Assume Open on all questions related. That means that X-OPEN will not wait for anwsers from the user and will open as much as it can. Also, overlays are not mentioned (included anyway), and stickers are always seperated from the main .EXE or .COM. This is for .EXE closed with many programs. However, stickers may be overwritten if several are found, and the last one to be extracted will be the one in STICKER.COM or STICKER.EXE. The [x] stands for an extra character that can be added in the registered version, and that character will be assumed on all warnings messsages. This character can be B for Boot, I for Ignore, F for Fix or L for Loopback. I Only identify .EXE and .COM files. If this option is used, wildcards (? and *) may be used. This is usefull when you have many files in a directory, and wish to know under what programs they are processed. K Used only with the I option. Causes X-OPEN to display only the files that it knows how to handle, and to ignore new exeutables (non DOS EXEs). A quick can let you see which .EXEs are compressed and with what program. M Causes X-OPEN to write target EXEs with memory demands of its size only. That means that DOS can load it into memory, if available memory equals the EXE size only. Almost any program that compress the EXE needs to have extra memory while running, but after it is opened it does not requires any memory, except for the EXE itself. Use this option if you get 'Insufficent memory' while running X-OPEN or the opened files. R [+] X-OPEN's default relocation space is 32Kb. Sometimes, with huge .EXE files this may not enough. This switch increases the relocation space to 128KB which is the maximum relocation table that DOS can handle. Use this option if you get 'Relocation overflow'. C [+] Generic COM extractor (GCE). See special section. 1 By default, after extracting files processed with certain programs, X-OPEN will reload the result to determine if it is still processed with another known program. If it finds such a program, X-OPEN will prompt the user, asking whether to Open it or Quit. This option will omit the need for such a prompt, as it will quit immidiately, and without even checking the file again. Rarely, checking the file again causes problems. If you do encounter problems, try using this option. U Normally X-OPEN should recognize any file processed with one of the known programs. However, to avoid false ID, sometimes I put sequence marks that are not used by the extraction routine in the ID scheme. Therefore, there might be a situation where X-OPEN could handle a file and extract it, although it wouldn't ID it! That's why I added this option. When it is used, X-OPEN will prompt you for every known program in the list, and you'll have to decide what extraction routine should be used. Beware! Wrong choice of a Generic type will probably lead to a Generic Error, but non Generic types will surely lead to a system crash. G Ignore Generic error if cause is lack of relocation items space. This option will allow X-OPEN to extract a rare variant of EXEPack (and that's its original purpose) but might also resolve other Generic errors, though this is not likely to happen... Z Zero SOURCE .EXE's minimum memory field. You can try this if X-OPEN fails to even LOAD a program complaining there's insufficent memory. Although this option is almost always safe to use, even when not needed, know that it changes the source EXE, in a way that can't be reversed. ! Forces X-OPEN not to clean memory before loading an executable. Use this option if you get many memory allocation errors or failures after X-OPEN runs, though it can lead to some false ID of generic types (in which case, the problem can be solved using the -U option). - Ignores any furher switches found in th command line. This is useful for processing files which start with a - (hyphen). D Verify that the this (the file you are reading now) is a copy of the original XOPEN.DOC V. Examples: ÍÍÍÍÍÍÍÍÍÍÍÍ þ To open an EXE called 1.EXE into 2.EXE: XO 1.exe 2.exe or XO 1 2 þ To do the above, but with no questions asked (Open till end): XO -o 1.exe 2.exe or XO 1 /o 2 þ To open an .EXE called 1.EXE which is closed by TinyProg, with the password password VX: XO 1.exe 2.exe vx or XO 1 2 vx þ To open a .COM file called 1.COM (beginning with X-OPEN version 2.00), with a listed program (i.e.: NOT the generic COM scheme): XO 1.com 2.exe or XO 1.com 2 þ To open a .COM file called 1.COM using generic COM extractor: XO 1.com -c 2.com þ To identify every .EXE in the directory C:\AAT XO -i c:\aat\*.exe or XO c:\aat\* /i þ To identify only EXEs in the current directory that X-OPEN can handle: XO -i -k *.exe or XO /k * -i þ To list all the programs X-OPEN knows how to handle: XO -l or XO /l VI. Known programs: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ To get the full, most updated list use XO -L (see the -l option). Items marked as generic can include several versions and modified ones. Also, X-OPEN can rarely open an a program processed by an unsupported one, given that the unsupported program uses a method similar to a known program. Items marked with * mean that the support is not full, because I had only a few files to test it on. If you have a program that produces these, or similar files, contact me, and you might be awarded (see Support). In brackets are (Program type, abilities, rate). Here is the list for X-OPEN version 3.20: TinyProg (Generic) Tested on Tiny 3.3, 3.5, 3.6 with password, and with the /d option. Should also open Tinys with text inside and other kinds. To open a "tiny" with a password, you have to know the password. Also, a new kind of tinys with large text files in them is supported. By Tranzoa, Co. (Compress, CRC check, .EXE only, good) EXE Pack (Generic) There are plenty of ExePack versions. This supports most of them but I have seen at least one that causes Generic Error. It can be avoided now. By MicroSoft corp. (The company who brought you EdLin!) (Compress, .EXE only, old and deffective) LZEXE 0.90-0.91 No mutations found. 0.90 has also a CRC check. By Fabrice Bellard. (Compress, .EXE only, old and freeware) Ady's GLUE V0.10-1.01 (Registered & UnRegistered) Yes. This is my program. I promised a long ago I'll do UnGlue and an "open program" (see Glue 0.10 docs). Here it is. Here XOpen also knows to seperate the sticked file (for "backward sticking"). By Ady. (EXE2EXE Sticker, Excellent!!!, see Support) Message Sticker (Generic) / (Stick Kit COM2EXE) Removes and seperates Message Sticker versions 4.00-4.31 at least (I haven't found others yet). Also removes Stick Kit COM2EXE sticker, because it is the Message Sticker itself. By Paz Hameiri. (COM2EXE Sticker, moderate) Message "Remover" This was a program that sticked a small ISR (Interrupt & Stay Resident) to a program that was processed with the Message Sticker. Since the "remover" caused many problems, this will maybe enable you to revive defective programs. Registered users will see V1 warning for the change of INT 33d (21h). If this is the only interrupt changed, ignore it. UnRegistered users will have to quit right after removing that, since X-OPEN won't remove the ISR! By Paz Hameiri. (ISR, EXE, bad) PKLite (Generic) and 1.15+ extra The regular is for 1.00-1.15 regular, 1.15+ extra had a different scheme (they did it, thiking that this will be harder to extract). By PKWare (Phil Katz's). (Compress, EXE & COM, the best compression) ProPacker (Generic) I only have version 2.08, but I tried it with all the options, including the "lock". BTW, it operates on Amiga and other machines as well. Also known as RNC. By Rob Northern Computing, UK. (Compress, .EXE only, good) LEXEM / Diet 1.02-1.20 I know LEXEM only thanks to CHK4COMP. This one is based on few files only. Diet 1.02-1.20 is by the DIET author (see below) LEXEM: (Compress, ?, ?) Diet (Generic) Diet 1.44+ and maybe whats between 1.20-1.44. Diet is also capable of acting like STACKER - "double" your HD in the background. (Which option is not supported by X-OPEN, ofcourse) By Teddy Matsumoto. (Compress, EXE & COM, good) Diet (1.00) Diet 1.00 EXE files (based on few). GDS Anti ISR The program used by GDS (R.I.P.) to clean your memory and avoid ISR ("removers" like Paz's). I knew someone that suffered from it a lot... It always comes after some packer (usually TinyProg). Beginning with version 2.20, another type was added, which also cleans the video memory buffer. Therefore this type is less compatible and if not removed might cause even more troubles. (Anti ISR, EXE, bad) BoniJoni IntroMaker This nice IntroMaker has built-in linker in it. Now you can remove it (X-OPEN includes the version with the STX in the file). Evaluation version will open V0.2 and V0.1 only. Standalone intros will be identified as BJIM, but on Open should cause a Generic Error. By BoniJoni. (IntroMaker, Intro only, very good) KVETCH (Tal Nevo's) I haven't studied this yet. By Tal Nevo. (Compress, EXE & COM, Good) TNT Immunization The immunize option in the TNTVirus. I tried it with one or two versions only, but should work on all. BTW, I wouldn't recommend using TNT immune only to protect your files from viruses. Removes CPAV as well, since it is based on Carmel's, as far as I know. By Carmel Software Engineering. (Immunize, EXE & COM, not who-knows-what) EXE2COM (+Compression) Found in two versions. Was a little annoying getting off. By Realia (?) (exe->com, .EXE, good for its time) EXE2COM (Regular) The simple one, that handles only compressed EXE files (0 relocation). (exe->com, .EXE, quite rotten) SeaAxe 1.0-2.0 I found only a few files of this antique. But I want the program, if someone has it. If you are opening it, overlays warning will always appear. You can drop them (Ignore). Version 2.0 is supported in UnRegistered too. By SeaSoft International (?) (Compress, .EXE ?, ?) PGMPak (Generic) I think it was made to be hard to extract. But, it wasn't that hard. If you have it, I recommend not to use it, since it doesn't give you full memory (and not 100% safe). Also, PGMPak keeps its name in the end of the compressed file as an overlay, so you can usually ignore overlays when extracting it. By Todor Todorov. (That name made me think it was a trojan!) (Compress, .EXE, good) Eliashim's CodeTrack Encryption program that has many anti-debugging in it (this is NOT the Eliashim copy protection). Sometimes makred as containing overlays, but doesn't have ones, so you can usually ignore them. By EliaShim MicroComputers. (Encryption, .EXE, very good) AsiLinker A quite old but good program to concat 80x25 color text screens to .EXE programs, so that they are displayed on runtime, and wait for the user to press a key. By Asi A. (bin2exe sticker, good) Amir Message This program was found on a few .EXE files, and carries a text message linked to the program. Has anti debugging routine. Not generic. (Sticker) Message Sticker / (Stick Kit TXT2EXE) Removes Message Sticker v3.00 and below (TXT2EXE). These old versions attached only .TXT file to the .EXE. Also removes StickKit TXT2EXE program, which is actually the Message Sticker! No need to see the message - X-OPEN skips it on remove time. By Paz Hameiri. (txt2exe sticker, not something) MCLock Was probably written back in 1989. By Noam Herzenstien. (Simple encryptor, COM, moderate) EPW Another quite old program, but this one is really good. It encrypts programs with password, and when running them, prompts for the password so without you cannot run the program. By Alan D. Jones. (Encryptor, EXE & COM, good) Some lamers from Israel changed the program text and claimed that they did "Scramble Utilitie" (the misspelling error was in the original). This was just a modified version of EPW, that was spread quickly with different names. Also, I have heard that there were some fools who even bought it (!) from the modifiers... I wonder what will the original EPW author say about that... EXE2COM (Limited) This seems like a simple EXE2COM. (exe->com, good) DRS Probably a short for DR. unknown Scrambler. Although it is defined by its author as "Executable File Packer and Scrambler" it is neither a packer nor a scrambler - it only handles the relocation table and leaves the program as it is, with an option to link a short message. X-OPEN opens all of these, but you might have to use the -U to force DRS routine. By Lev Zeslavski. PACK An old & small program compressor. By M. Sotoodeh (?) (Compress, .EXE & .COM, good) ANSI Sticker A simple ANSI sticker. I don't have the program which sticks them, but it doesn't seem too interesting. OPTLink This is the program used on all Norton's programs. As far as I know, this program was not distributed. ExcellNet Scrambler Some scrambler found on files from ExcellNet Ltd. I don't have the program, and I assume there will be more similar scramblers around there soon... Net 1 Intro Yes, I finally added, to the request of some registered users the 1st VGA intro linked in Israel. No matter how old is this, still it was a nice intro. By 'Warlock'. Protect! EXE / COM All versions before 3.0 were a joke. However, V3.0 is somewhat improved. There are few, simple V3.0 [+] anti debugging tricks. Note, that I hasn't tested X-OPEN with the registred versions of Protect, so if I understood right, it won't open them (although it CAN open the PROTEXCM.EXE itself). For the .COMs created by it, with versions prior 3.0, use the GCE. By Jeremy Lilley. Hybrid Intro When I first saw this intro, I thought it was a one-time occurance, and will not be sticked again. But when I saw it in another place as well, I realized I should have added to X-OPEN. So, here it is. By 'the Sarge'. Relocation 1 [+] Probably the Relocation Shrinker. By Roi Buchnik. Relocation 3 [+] ? Anti TNTImmunize [+] A program used to neutralize the TNT immunization added files (see how safe the immunize is). By Amir Biran & Amit Bueno. Scrnch A program to compress .COM files only, can also convert text files to self extracting .COMs. It's old and not effective. By Graeme W. McRae Shrink An even older and worse program. For .COMs only, again. By Thomas G. Hanlin III N-REMOVE [+] An old program that was made to neutralize NET 1 intros. GalLinker [+] A .COM to .EXE sticker. Nir's GUM [+] Finally, another EXE2EXE sticker except for my own GLUE, of course. This one is a freeware and does its job quite well, even though its author's major field is music programming. A well done program... By Nir Oren. Fake PKLite signatures These small code portions are optionally added by DisLite / UNP to emulate PKLite's PK signature in the PSP. End of list, for now. Registered users can ask me to open programs compressed with all PKLite versions. (Including the mutations in PKZIP 1.93). Since these are rare and found in a few programs only, I didn't add them to the general X-OPEN. VII. Generic COM extractor (GCE): ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ This option can extract any file that was originally a .COM program and was processed with no Anti Debugging techniques. For example, GCE can extract a .COM file processed with PKLite, Diet, TinyProg (even though the result is an .EXE file), etc. That's a very wide collection of known and unknown programs. Also, GCE can also skip several programs, until it reaches a .COM file. Therefore, a .COM program that was converted to an .EXE and then compressed with some .EXE compression program can be extracted with GCE. However, GCE can not open an .EXE processed with program like EXE2COM (because it was originally an .EXE program), or a .COM file processed with MCLock because it has enough Anti Debugging to crash the computer when activating GCE. Furthermore, GCE can also miss other programs for various reasons. Another disadvantage of GCE is that the result .COM file is almost always about 2-20Kb larger than the original, up to the maximum normal .COM size (64KB). Also, GCE extraction is quite slow, about 10 times slower than regular open, or even more. (but that's not really important). For summary, use GCE only when: 1. X-OPEN does not identify the file as any known program, or cause generic errors. 2. The file was originally a .COM file. and: 3. When extracting with GCE expect to wait up to a few minutes on slow machines. 4. Check the result COM file. VIII. Branch: ÍÍÍÍÍÍÍÍÍÍÍÍÍ The branch method was added as a regular program, but in order to use it you must specify the -B option, because it has not limited ID and can work on many many programs. This is a simple method that can handle mostly simple scramblers, ANSI stickers, little messages etc... These programs are easy to make, so many variants of them exist, and will be made. Now the new method handles them all. Branch can handle even more sophisticated programs, given that after the branch there is some program like PKLite or TinyProg, that X-OPEN knows perfectly. Use the branch option on programs with LAME stickers typically, after reaching no ID with standard methods, but before trying the -U option. Try branching on a different EXE and not on the source (specify a second .EXE name), because branch might not work and cause unexpected results. When X-OPEN suspects that the branch operation was not successfull, it will prompt a warning, but rarely X-OPEN might display a false warning, or X-OPEN might not display warning when needed, so doublecheck the resultant .EXE. Sepcify -Bf to tell X-OPEN to ignore suspecious situations (forward reference). To show how well this method works, I'll mention supported programs that can be handled perfectly with the branch, if I hadn't added them: GDS Anti ISR (all types), ANSILinker(s), Excellnet scramblers, Net1 and similar intros (with -BF option), Hybrid intro (-BF), Many COM packers (-BF), and maybe few others. IX. ExecLog Utility: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ExecLog is an external, freeware, small TSR (terminate and stay resident) program which logs all executes of external programs after it is loaded, until removed. It puts the programs name and its parameters, if any, in the log file. Default log file is C:\EXEC.LOG but other can be specified when running ExecLog, as parameter. If the log file already exists, new enries will be appended at end of the file. After loaded, ExecLog will use less then 1KB of memory, and will be uninstalled when ExecLog is called again. Note: it is highly recommended to use full path if specifing new log filename, else ExecLog will create new files in each directory/drive if changed after executed... This utility can have many uses. First, it can detect easily the original program file if it is not executed directly, but through some loader. A lame known trick is to rename the original EXE into some other name, and to make a loader that executes it. X-OPEN will not discover that trick, so ExecLog will, after logging the software. Usually if this is used you will see a file name with no .EXE or .COM in its end, but other extentions. You can rename it to .EXE and run it as a usual program. Second, there are loaders which does not rename the executable, but garble it with password, found in the loader, so the loader must be executed every time. ExecLog will show you the parameters used, so you can use X-OPEN with the password to open the program. After the loader is not needed, you can delete it, saving both memory and disk space. Finally, ExecLog can be used as a primitive log program. For example, 4DOS's internal log handles only programs executed from the DOS level, and not in shells, programs, etc... X. Errorlevels: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ On exit, X-OPEN will deliver error codes according to the circumstances which caused it to exit. This is useful for batch operations such as BBSs upload scanners, general virus searchers, etc. Error levels can be obtained using the ERRORLEVEL batch value, or using the AL value of INT 21, AH=4Bh. Code³Cause of the code ³Meaning ÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 1-99³DOS regular error code. See X-OPEN explanation/DOS ref. ³Various DOS err 128³ID operation with at least one matching file ³ID success 129³Memory allocation error ³Memory error 130³Out of relocation space ³Use the -R next 131³Program terminated before end of operation ³Open error 132³X-OPEN has reached a program it cannot extract anymore ³Open success 133³Terminated on user manual request or because of -1 option³Open success 134³X-OPEN unerg'd has identified a reg'd only program ³Register! 135³File open error ³File not found 136³Generic error ³Open error 137³Relocation needed but not loaded ³Use the -R next 138³Out of disk space ³Not enough room XI. Protection: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ This section refrences a special problem that could happen when using X-OPEN. X-OPEN executes part of the processed program, if it ID the program as compressed, Glued or whatever. However, different commands could be implented into the program, causing ALMOST ALL programs to ID it as regular compressed program, even though that while running it, it will run the implented commands (used typically to cause damage). But the commands can even be made to causing damage, while opening the program using X-OPEN or SIMILAR UTILITY. Therefore, beginning with version 1.11 of REGISTERED X-OPEN, built-in protection exists to avoid hostile operations while opening the program. Note that this protection is only found in the REGISTERED version! However, I am not responsible for any damage that may be caused using X-OPEN as the warranty tells. This activity can sometimes cause 'Error - Program terminated to DOS!', or 'Generic error!', but not every message like that indicates hostile operation, and not every hostile operation causes the messages above. For now this kind of activity is very rare, and I only wrote it due to one new rare virus, that is known to me (thanks to C.A). Just be warned, and don't panic... Summary: 1. See warranty. 2. X-OPEN identifiy procedure DOES NOT run any part of a compressed program, and therefore can't execute implented hostile code or viruses. 3. X-OPEN open procedure DOES run part of a compressed program, and therefore can execute implented hostile code, or special viruses that were made for this target (at least one like this exists). 4. X-OPEN registered version has built-in sophisticated protection against hostile operations in open procedure. This protection is in the same league of the newest commercial Anti-Viruses (although X-OPEN does not scan for known viruses, nor does it remove any). Beginning with version 3.00 the warning can lead to several ways of action: Ignore - Ignore the problem, and do nothing about it. Fix - Fix the problem if possible, else ignore it. Will deactivate ISR programs like the message 'remover'. Loopback - Ignore the problem, and also continue processing the program in memory, w/o any action taken by X-OPEN. This choice will save the file as usual (version 3.10+). It will activate all ISR loaded such as the message 'remover' or the Anti TNTImmunize. This is the recommended choice. Just be sure you know what to do. XII.Bugs: ÍÍÍÍÍÍÍÍÍ Contact me if you find any bugs in X-OPEN. You may get a free registered version! XIII. Support: ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ X-OPEN required and will require a lot of time and effort from me. I could be selfish, and not distribute it at all! But I have distributed an Evaluation version, that knows to extract some programs. If you use it, or want to use it, contact me and order now the full version! Registered users will receive for free the next five (5) releases or all the releases within 60 days from registering time (the best of the two, for him). After that, for every update he will be charged a minimal fee. This fee will encourage me to write new versions every time. Registered users may also bring me files they want to extract (that X-OPEN will not be able to open) and I'll maybe add them to the program, or just return it to him extracted. If I will add it to X-OPEN, the user probably will get a bonus - more releases for free (depends on its quality). Registered users also get up to 50% discount on registering all other programs of mine (for now - only Ady's GLUE). There is a new version of GLUE (V1.10) now which has some different encrtyption, and also there will be a version with better encryption. BTW, registered users of GLUE have up to 50% discount on registering X-OPEN, ofcourse. It is recommended that registered users have a modem, or have access to one. This is the fastest and the cheapest way to get updates. Otherwise, they will have to pay for P&P (Postage and Packing). XIV. Prices (as of July 30th, 1993) for full versions: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ady's GLUE ...................... 1.10 .... 15 $ or 30 NIS Ady's X-OPEN .................... 3.20 .... 15 $ or 30 NIS COM2EXE ......................... 1.00 .... Free IntroMaster ................................ Discontinued Ady's GLUE & X-OPEN ............. STILL..... 25 $ 50 NIS <<< Special Offer >>> 5 X-OPEN registers (each one has 5 free updates) or 3 X-OPEN & GLUE regs (") for ONLY............ 50 $ or 100 NIS ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ þ If you work in a computer store, or have some old/new computer stuff, maybe we can forget the money. My equipment is quite poor for now and I can always use things like sound cards, modems, extra RAM, or things like that. Leave me a specified message and we'll chat or talk voice about it. Donations are always excepted, ofcourse. þ GOOD software will also be accepted (when I say good, I mean GOOD). XV. Contact: ÍÍÍÍÍÍÍÍÍÍÍÍ Contact me to register or to report unknown .EXE files or BUGS! If you have stickers and programs X-OPEN can't open and doesn't identify, then I probably haven't seen that program, but I can add it in few minutes to X-OPEN, so tell me about it! If I'll add it, you'll probably get a FREE registration!!! X-OPEN new versions are uploaded right away to the support BBSs, where I can be reached (all in Israel for now): BBS Name BBS Number SysOp Baud Hrs ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Support BBS º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ ºThe Ace Base +972-53-358599 Ari Margules 2400-14K 24h (2 Nodes) º º +972-53-358899 (Ring down) 2400 MNP º º Adresses: FidoNet 2:401/112 TechNet IRC 111:40/0 EZNet 255:3110/103 º º Host 111:400/0 º º 111:400/1 º º InterNet Ari.Margules@f112.n401.z2.fidonet.org º º Available file request (FREQ), under magic name X-OPEN º º º ºBattle Axe +972-2-941324 Cnaan Aviv 2400 20-08 (ISR time)º º Adresses: FidoNet 2:401/400 º º InterNet Cnaan.Aviv@f400.n401.z2.fidonet.org º º Available file request (FREQ), under magic name XOPEN º º º º1 Man Crew +972-4-PRIVATE Dr. Donatello 9.6-16.8K 24h (2 Nodes) º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º Distribution Sites º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ ºGold Star +972-3-5711129 Gilad Bilu 2.4-14.4K 24h (3 Nodes) º º Addresses: Fidonet: 2:403/15 [Excellnet site] º º º ºFreak +972-3-585818 Ronen K. 2.4-14.4K 24h (2 Nodes) º º Addresses: Fidonet: 2:403/58 [ICCA site] º º º ºMulti System +972-4-758811 Eran Rithes 2400 V42 24-06 º º Addresses: Fidonet: 2:401/257 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Consult the SysOps and leave a message to Ady. All registrations are done exclusivly by me, and the registration fee should be sent to me ONLY. Support sites get the latest version of X-OPEN, when it is released. I also call there often, to check mail etc. Distribution sites get all new X-OPEN versions after the support site. You can leave messages there as well, but I usually call there only weekly. Also the distribution site SysOp's do not always know much about X-OPEN and acts as a DISTRIBUTION site ONLY. XVI. History: ÍÍÍÍÍÍÍÍÍÍÍÍÍ Date format is DD-MM-YEAR. 10-01-1993 Version 1.00 released. 25-01-1993 Version 1.10 released. + Programs added: DIET 1.00, AsiLinker + After opening certain programs, and then compressing it with TinyProg the file was corrupted. This was due to a bug in TinyProg, but X-Open will now not activate this bug. (The bug can also be avoided by using PK's HDROPT.EXE before Tiny) + Now options available only in registered version are marked [+] + Tal Nevo's program was reported to be KVETCH + Since now the programs' list is longer than 25 lines, after every page there is a pause until a key is pressed. + Added the -M switch (Minimum meory zero) + Added the -R switch (huge Relocation) + BoniJoni IntroMaker handle was improved: now XO skips the intro, and it does not try to open Stand Alone intro. But the evaluation version opens only BJIM V0.2! 01-03-1993 Version 2.00 released. + Programs added: Amir Message, Message Sticker 3.00 / Stick Kit TXT2EXE, MCLock, EPW (see comments), BJIM V0.1 + COM files now can be directly opened (no need to use COM2EXE!) + Fixed a bug considered huge source relocations (stucked XO) + ID procedure little quicker + Changes in PSP are reported [+] + Improved PKLite 1.15 extra open & ID + Tal Nevo's programs were merged into one entry + Generic COM extractor added (-C) [+] 06-03-1993 Version 2.10 released. + Programs added: EXE2COM (Limited), Message "Remover" + Added note when a file could be a .COM file or converted to such with a program as EXE2BIN. It is marked as [BIN] + Added proper message when no files found during ID operation + Now when only source name is given, X-OPEN will create a temporary file called XOTEMP.$$$ and delete it if the computer wouldn't crash... The true overwriting that was done before was supposed to enable opening file even when you had very small disk space left. However, that method ignored overlays in file, so it sometimes caused irreversible damage... I am sorry for anyone who has lost data because of it, but I recommended to use target name also! + More accurate size when opening TinyProg (1-3KB saved) 26-03-1993 Version 2.20 released. + Programs added: DRS, PACKP, ANSI Sticker, GDS Anti ISR with screen blanker + OPTLink was added to the general, registered version (it was finished before, but till now no one asked me to add it). + Minor bug in the int comparsion fixed and int numbers are now displayed in hex instead of decimal. + Memory is cleaned before loading program to avoid false ID becuase of data left from last operation. + In prior versions, X-OPEN original command line was passed if no third parameter was given. Now in that case a null command line would be passed. + Message Sticker extractor was modified to handle a crippled version which had no sticker. * The above procedure was used in TTG Scrambler, which is actually based on Paz's Message Sticker. Besides that trick, it also checked the command line to see if the first parameter was the EXE name. This, till now, was passed if no third parameter was specified. 10-04-1993 Version 2.21 released. + Programs added: Message Sticker 1.00-2.00, Excellnet Scrambler, Net 1 Intro + Generic COM operations was leaving temp file. Fixed. 13-05-1993 Version 3.00 released. + Programs added: Protect! EXE/COM, Hybrid Intro, Relocation 1 Relocation 3, Anti TNTImmunize, LZExe 0.90 (about time!) PKLITE (COM), ProPacker (COM), Scrnch, Shrink V1.0 + Amir Message enhanced to remove any of its kind including JOKER ads + Message Sticker enhanced again, now to support 'TTG Sticker', which is another modification of Paz's Message Sticker... + Due to users' requests, I have added COM identification to the major compressors, although the GCE extracts them anyway! However, this would do the extraction automatically, and is usually available in the evaluation version too... + PKLITE 1.15 EXTRA compression now turned on in the Evaluation version, because similar PD can open it too (like DISLite) + Added options: -1 (1 extraction only) and -U (User's manual ID) + Added errorlevel results (see ERRORLEVEL) + From now on, the document is not within the EXE file, to speed its run time and for flexibility. However, you can verify it's unchanged with the -D option (although it's not 100% reliable). + Fixed a tiny bug that caused too small DIETed files + Fixed another bug that sometimes had hanged the computer after extraction + Viral warnings options has changed a little, and is now enhanced. + Documented the -G option (was made a long time ago). 30-07-1993 Version 3.10 released. + Programs added: N-REMOVE, Protect! EXE/COM 2.0 (EXE), GalLinker, Nir's GUM 1.0, Sea Axe 2.0 + Enhanced pklite generic COM to handle more versions, I didn't checked this one before because of the GCE existence... + Enhanced NET 1 Intro to support more variants. + Enhanced DRS routine to support more version, like the 2.20pro. X-OPEN might not identify DRSs with long messages, and for that case use the -U to force DRS routine. + Added the special method BRANCH, which is very powerfull, and can remove many programs like ANSI stickers, DRSs, simple scramblers, etc... without any addition to the program. [+] ofcourse Thanx goes to Nir Oren for the XOA... + Added optional warnings override, used as -Ox + Added last switch mark -- or /-, so after it you can mention names that contain - or / + Added -! to tell X-OPEN not to clean memory before loading. + Added -Z option to Zero source EXE minimum memory + Found a tiny bug, that made GCE to make almost always 64KB files instead of smaller ones. Now, it is quite accurate in size, on most programs such as Protect EXE/COM (COM) and many others, as it was in earlier versions, before I added this bug... 21-08-1993 Version 3.20 released. + Programs added: Protect! 3.0 (EXE/COM) [+], PKLite signature fakes (by UNP/DisLite) + Many of the registered only programs are made available in the unregistred too, due their existence in other programs: Cracked SBust 2.40 and UNP. This is not meant to become an habit, and not all currently registered will become unreg'd too. So, registration will always entitle you for special features and, of course, technical support and updates. + Included in the unregistered package, as a freeware, the small EXECLOG which tracks executes of programs, so you can reveal the original executable if someone has added his own loader, etc. See special chapter for more info. + Improved size determining with -BF option. + -Z option now will check if source file is a .COM, and if so, will not change it. In version 3.10, the .COM would have been corrupted. + Added new executables' identification (OS/2, MS-Windows, etc.). These normally cannot be handled with X-OPEN. Still, you will be asked whether to open it (unless -O used), so DOS programs that has also other portions in them, would be extracted (only the DOS part). If -I mentioned, extra ID is displayed, and -K ignores it. + Added Break capturing, so if CTRL-C or CTRL-Break are pressed, XO will make a cleanup, and display a message. The End