ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ UX 0.55, Executable File Expander, written by Misha ³ January 15, 1995 ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ PROTECT 4.0/5.0 þ OPTLINK þ PKLITE þ LZEXE þ TINYPROG þ EXEPACK þ DIET ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ >>>>>>>>>> E-mail: an182076@anon.penet.fi <<<<<<<<<<< >>>>>>> Especially UCF members! need to talk <<<<<<<< >>> or call 201/908 boards, INFINITY or ACE sites <<< Notes on different compressors: Protect! 4.0 & 5.0 Not a compressor, but an encrypting program Difficult (impossible?) to unpack without a 386. UX has a built-in support for this. Protect is put on files compressed with PKLITE/DIET/TINYPROG, etc. so UX bypasses Protect and proceeds to extract the file. (unProtected file is never saved). NOTE: UX should work fine with _most_ Protect5 programs, try the -1...-9 and/or -z options, only if UX fails. I see that there's no perfect (real mode) solution for the problem caused by the mutating code (when UX locks up after identifying Protect5), so here are the -1...9 switches! Basically every non-zero # on the command line will inc the pre-set addr UX uses to find the Protect5 code. For example: -123 // 1+2+3=6 -6 // 6=6 -111111 // 1+1+1+1+1+1=6 -321 // 3+2+1=6 The above examples are all equivalent (the addr will be inc'd by 6 in every case). So, if your program doesn't unpack (and is identified as having Protect5, start looking for your 'lucky' number! Very good 'lucky' numbers to try: UX -1 p5prog.exe UX -88 p5prog.exe UX -7 p5prog.exe UX -12345 p5prog.exe UX -9 p5prog.exe UX -199 p5prog.exe In general only combos from 1 to 999 make any sense, so don't go crazy (3 digits is the max you should try). -f switch. If you think the file is packed with Protect5, but UX says "unknown" use this switch. Always assumes that file is Protected with v5 and tries to decrypt it. -z switch. Simply moves the guessed/optimal address that UX uses to start looking for Protect5 code, back a little bit. Can be used alone or with -1...-9 options above. Only one '-z' should be used on a command line. If CPU is running in v86 you must have VCPI for UX to work. OPTLINK Norton Utilities are packed with this. I don't understand why no one else noticed, but there are actually 2 (two!) levels of compression. Anyway, UX handles both (I call the 2nd one -- relocation shrinker) separately. PKLITE versions 1.14/1.15/1.20/1.50 put 'PK' and 'pk' into the PSP. UX fakes this PK/pk extraction by adding a small piece of code to the resulting file. I've added PKLITE 1.50X decompression, PKWARE is getting trickier, but very slowly. :) Anyone else has seen it or has PKLITE.EXE v1.50? E-mail me. LZEXE Nothing special here TINYPROG " EXEPACK " DIET " General notes: o UX does header optimization (like PKLITE's HDROPT) after extraction and always uses the smallest possible .EXE header. o UX actually _finds_ the memory information (min/max/req mem) for files compressed with LZEXE, DIET & regular PKLITE, as it's kept in the compressed executable. For all the other ones (and when it can't find any info that makes sense), it'll approximate, so the required minimum memory might be a little more than that in the original program. o When uncompressing a program, UX sets up stack the way the program would have it at Run-Time and uses that. Thus the resulting file might have some garbage in the stack area. That's not important, as this area gets overwritten with the first few instructions anyway. o When UX says the resulting file is still packed with something else, just re-run UX on it. In case when the file is packed with something and then Pklite 1.15X is put on top, be sure to remove Pklite with -k, because if you run UX the second time to remove the other compressor, UX will get get confused with the code to fake PK signature (the code it had added the first time). o And no, UX.COM doesn't unpack .COM files! Why? Take a wild guess.. Maybe later o I can think of _many_ great improvements, relating to Protected programs, but now there's no time.. Next versions will have better routines. o Oh, yeah. Don't touch your keyboard when UX is unpacking Protected files -- because Protect screws with int09h (keyboard interrupt) and pressing a key will kill the decryption process (and lock up the computer).