home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz KrOnIcKLeZ 3 / HaCKeRz_KrOnIcKLeZ.iso / chibacity / unp.doc < prev    next >
Text File  |  1996-04-23  |  28KB  |  629 lines

  1.                                  │
  2.  
  3.                                  │
  4.                                   ─ ─┼─ ─
  5.         ░░▌ ░░▌ ░░░░░░▌ ░░░░░░▌   ░░▌ ░░▌        ░░▌   ░░░░░░▌│
  6.         ░░▌ ░░▌ ░░▌ ░░▌ ░░▌ ░░▌   ░░▌ ░░▌       ░░░▌   ░░▌ ░░▌
  7.         ░░▌ ░░▌ ░░▌ ░░▌ ░░░░░░▌   ░░░░░░▌        ░░▌   ░░▌ ░░▌│
  8.         ░░▌ ░░▌ ░░▌ ░░▌ ░░▌       ░░▌        ░░▌   ░░▌ ░░▌
  9.         ░░░░░░▌ ░░▌ ░░▌ ░░▌       ░░▌ ░▌  ░░░░░░▌ ░░░░░░▌
  10.  
  11.           ───────────────────────────────────────────────┐
  12.  
  13.  
  14.               Written by Ben Castricum
  15.  
  16.                    January 26, 1995
  17.  
  18.  
  19.  
  20.        This is the documentation belonging to and explaining the use of:
  21.  
  22.  
  23.                  UNP V4.10
  24.  
  25.  
  26.             Executable file restore utility
  27.  
  28.  
  29.  
  30.  
  31. TABLE OF CONTENTS:
  32.  
  33. DISCLAIMER
  34. WHAT IS UNP ?
  35. GENERAL INFO
  36. HOW TO USE UNP
  37. MESSAGES
  38. BUGS OF WHICH UNP IS ABLE TO FIX
  39. NOTES ON COMPRESSORS
  40. REGISTERING UNP
  41. HEY! UNP IS COMPRESSED!
  42. WHAT UNP CAN REMOVE
  43. WHAT UNP CANNOT REMOVE
  44. CONTACTING ME
  45.  
  46.  
  47. Disclaimer
  48. ----------
  49. Under NO circumstances I can be held responsible for any damage caused by
  50. files in this or any other package containing programs written by me.
  51. (That should do it :-)
  52.  
  53.  
  54. What is UNP ?
  55. -------------
  56. UNP's main purpose is to restore executable files to their original state.
  57. However it can do more than that.  UNP can optimise EXE-headers, remove
  58. debug information, convert files from one structure to the other, scan
  59. directories for compressed files, reveal hidden viruses and even make files
  60. that didn't run anymore run again.
  61.  
  62.  
  63. General info
  64. ------------
  65. Before you start using UNP, I would like to point out a few things which you
  66. might take into consideration.
  67.  
  68. Compressed EXE files containing an overlay may not work correctly after they
  69. have been decompressed.  Decompression expands the code size of the EXE file
  70. which also means that the overlay moves up.  Some programs do not check where
  71. the overlay currently is but just use a constant to get the overlay.  If this
  72. is the case, most anything can happen.
  73.  
  74. When you use UNP to convert a file to another structure, please take into
  75. consideration that the converted program never runs under the exact same
  76. conditions as it did before.  Though these differences are likely not to
  77. cause any problems with most programs, there are always programs which expect
  78. just that what is changed by conversion.
  79.  
  80. UNP can do just about anything with files.  This definately includes messing
  81. up your files.    For that reason it is always a good idea to have a backup of
  82. the files your are going to process.  Someone suggested to let the -b
  83. (create backup) option turned on by default.  Although this is a good idea,
  84. it's still not 100% reliable.
  85.  
  86. UNP is not case sensitve in anyway, nor does it care about extensions.  This
  87. however does not mean that it is possible to convert files which are reported
  88. by UNP to be "binary (.COM)" can all be converted to .EXE files.  Files which
  89. are not really .COM files (e.g. .BAT or .GIF) will not run or view the
  90. picture when converted and executed.
  91.  
  92.  
  93. How to use UNP
  94. --------------
  95. If you type UNP without any parameters then you will get the built-in help
  96. screen of UNP which is explained below.
  97.  
  98.  - Commands - These are 1 character long and only one can be specified on the
  99. command line.  It does not really matter where you put it.  If no command is
  100. specified, the E command is used.
  101.  
  102. c = convert to COM file
  103.    Some .EXE files can be converted to .COM files.  You can do this by using
  104.    this command.  Please note that the resulting file will not automaticly
  105.    have a .COM extention.  You should only convert a file when you know
  106.    exactly what you are doing (see general info section).
  107.  
  108. d = make current options default
  109.    Using this command enables you to specify the default options yourself.
  110.    Simply type the options on the commandline you would like to have as
  111.    default and use this command.  UNP will modify itself to the settings
  112.    as default. For example to let UNP always create a backup use
  113.      UNP d -b+
  114.  
  115. e = expand compressed file (default)
  116.    This command expands the compressed file.  If you do not specify a
  117.    command, UNP will use this by default.  Using this command without a
  118.    filename will result in unpacking all files in the current directory
  119.  
  120. i = show info only
  121.    If you just want some information about the file, this is the command to
  122.    use.  UNP will show all information like the E command but will not
  123.    decompress or write the file back.
  124.  
  125. l = load and save
  126.    This command loads a .COM or .EXE file but does not expand it.  It will be
  127.    written back just like a decompressed file would be written back.  This is
  128.    useful in case you want to remove an overlay, irrelevant header data or
  129.    optimize the relocation items.
  130.  
  131. m = MarkEXE, insert a file in header
  132.    MarkEXE is a small utility supplied with PROTECT! EXE/COM V5.0.  This
  133.    program can add a piece of text to an EXE file in such a way that when the
  134.    file is shown on screen the user can see that piece of text.  The 'M'
  135.    command does not exactly do the same as MarkEXE.  First it inserts the
  136.    file before the relocation items, this way any EOF markers in the
  137.    relocation items won't screw it up.  Second, UNP does not place the same
  138.    piece of text at the end of the code, since I see this as more or less
  139.    screwing up the file.
  140.  
  141. o = copy overlay
  142.    A new (and probably rarely used) command is the overlay copy command.
  143.    With this you can get the overlay from some .EXE file and append to some
  144.    other .EXE file.  The idea behind this is that when you use LZEXE as
  145.    compressor, the overlay is removed from the file.  With this command you
  146.    can place the overlay back.
  147.  
  148. s = search for compressed files
  149.    When you use this command, only a small list of compressed files matching
  150.    the Infile wildcard will be generated.  To save some space on the screen,
  151.    the pathname of the file will not  be show.  But since UNP does not work
  152.    recursive, it should not be a problem.
  153.  
  154. t = trace executable
  155.    My first attempt to a general unpacker can be found in this command.
  156.    Actually there are 2 different implemtations.  The implementation used for
  157.    .COM files will single-step through a program and checking every
  158.    instruction if the original program has been restored.  If UNP thinks it
  159.    has, it will stop and write the file back.  Unfortunately this is a very
  160.    slow process.  The .EXE implementation also single-steps through the file
  161.    but it checks every step to see if a known packer has been revealed.  If
  162.    it has found one, it will remove it and write it the resulting file back.
  163.    If the program has not been compressed with a known packer, sooner or
  164.    later some interrupt will be used which UNP will detect and abort the
  165.    tracing.
  166.  
  167. x = convert to EXE file
  168.    Some compressors can only compress .EXE files (like LZEXE).    With this
  169.    command you can convert a .COM file to an .EXE file.  The resulting file
  170.    will not be written back with an .EXE extension by default.    As with the
  171.    .EXE to .COM conversion, be sure you know what you're doing.  Not all
  172.    programs can be converted.
  173.  
  174.  
  175.  - Options - Even more fun can be achieved with specifying options on the
  176. command line. Options can be passed sepparated (like -a -b -c) but can also
  177. be combined (like -abc).  After each option there can be one of the
  178. characters "-", "+" or "?". The first turns switches off, the second turns
  179. them on and the third.. well it turns them on as well.  But the real purpose
  180. of the question mark is to force UNP to ask if it should do something.
  181. Currently only the -K switch supports this.  Options which are not followed
  182. by one of the mentioned characters work as toggles, which means that using an
  183. option twice will undo the previous (eg. -a -a has no result). However once
  184. an option has been turned on with the question mark (like -a?) then you can
  185. only turn it off by appending a - (like -a-). Still got it? :)
  186.  
  187. -? = help (this screen)
  188.    Suprisingly enough, this switch will let UNP show the built-in helpscreen.
  189.    Any other switch or command used on the same line will be ignored.
  190.  
  191. -a = automatic retry
  192.    It is possible that some files have been processed with some program more
  193.    than once.  This switch will make UNP to process the file again when it
  194.    was changed.  Useful when you want to uncompress a file which also has
  195.    been Immunized by CPAV.
  196.  
  197. -b = make backup .BAK file of original
  198.    If you want to keep a backup of your original file (very wise) use this
  199.    switch.  The original file will be renamed to a file with a .BAK
  200.    extension.
  201.  
  202. -c = ask for confirmation before action
  203.    This will force UNP to ask you if you want to remove the routine UNP found
  204.    on the file each time it has recognized some program's work.
  205.  
  206. -f = optimise fixups (like HDROPT.EXE)
  207.    Relocation items, also known as fixups, are stored in the .EXE header in
  208.    two parts; 16 bits for the segment value and another 16 bits for offset.
  209.    Since DOS only uses 20 bits for addressing, the fixups may contain some
  210.    redundant data.  Optimising the fixups does some arithmetic stuff which
  211.    will move as much as possible of the address into the offset and fills the
  212.    segment value with zeros.  This is the same as the program HDROPT.EXE
  213.    supplied with PKLITE does.
  214.  
  215. -g = merge overlay into image
  216.    This dirty switch allows you to merge an overlay into the image of an .EXE
  217.    file.  I can't think of any reason why someone should use it but it's
  218.    here.
  219.  
  220. -h = remove irrelevant header data
  221.    Most linkers add useless data to the .EXE header.  This switch removes all
  222.    such useless information, thus shrinking the header size.  This switch
  223.    also skips the header rebuilding code with files like PKLITE.
  224.  
  225. -i = interception of I/O interrupts
  226.    By default UNP watches several DOS interrupt to check if the program is
  227.    running as expected.  Any unexpected call to such an interrupt will make
  228.    UNP abort the process.  If you have any weird TSRs resident you might have
  229.    to use this switch.
  230.  
  231. -k = pklite signature handling; - = don't add, + = add always, ? = ask
  232.    With this switch you can handle the pklite signature.  There are 3
  233.    possibilities :
  234.    -k- = don't add
  235.       The pklite signature will not be added, this will also be the case if
  236.       you only use -k (to stay dislite compatible).
  237.    -k+ = add always
  238.       Always add the pklite signature, this is the default of UNP so you can
  239.       just as well leave the -k switch away if you want this.
  240.    -k? = ask
  241.       When you use this, UNP will ask you each time it has found a signature
  242.       (like UNP V3.01 or earlier did).
  243.  
  244. -l = use large memoryblock
  245.    When UNP loads a program it allocates a block with a size of the
  246.    required memory with about 32k extra for safety.  Some programs require
  247.    even much more memory than they tell DOS they need.    If such a file is
  248.    decompressed by UNP it definately will go wrong.  Two things can happen
  249.    in such a case.  The program detects the absence of enough memory and
  250.    will attempt to notify the user by writing a message on screen.  This
  251.    will probably result in a  "(INT 21) Unexepected call to DOS" error
  252.    (see messages) and UNP will abort gracefully.  Or worse, the program
  253.    does not check and will try to decompress anyway.  This will probably
  254.    result in a system crash or a memory allocation error.  If you have got
  255.    a file which requires more memory than it tells DOS, use this switch.
  256.    After identifying the compressed program, UNP will increase the
  257.    allocated memory block to 15/16 of the maximum size of that block.
  258.  
  259. -m = MORE alike output
  260.    On request this switch has been added.  It should pause about every screen
  261.    full of information similar like DOS's MORE.EXE.
  262.  
  263. -n = numbered Outfiles
  264.    Also on request is the possibility the have UNP remove several routines
  265.    in one run but keeping a copy of every version.  This switch will assign a
  266.    number to the files it writes the new file to.  If the file already is
  267.    numbered, it will increment that number.  If not, the number 1, possibly
  268.    with leading underscores,will be assigned to it.
  269.  
  270. -o = overwrite output file if it exists
  271.    If you want to have the destination file overwritten, you can avoid the
  272.    question for permission by specifying this switch on the command line.
  273.  
  274. -p = align header data on a page
  275.    It is said that .EXE files with a header size that is a multiple of 512
  276.    bytes load faster (this could make sense since a sector is also 512
  277.    bytes).  This switch will expand the header to the nearest multiple of 512
  278.    bytes, filling it with zeros.
  279.  
  280. -r = remove overlay data
  281.    If something is appended to an .EXE it is called an overlay.  This switch
  282.    will let the file size of the outfile be the same as the load image.  So
  283.    anything that was appended to the file will be thrown away.    An overlay
  284.    can be used for all kinds of data, so removing this can result in
  285.    throwing away something useful.
  286.  
  287. -u = update file time/date
  288.    By default UNP sets the time/date of the destination file to the same
  289.    time/date as the original source file.  If you want to have it updated to
  290.    the current time/date use this switch.
  291.  
  292. -v = verbose
  293.    When you use this switch UNP will give you some additional information.  I
  294.    added this switch for debugging purposes.
  295.  
  296. -- = program's commandline
  297.    Anything after this switch will be passed to the program to be
  298.    decompressed.  This way you can pass along any required parameters (like
  299.    passwords) for the Tracing command.
  300.  
  301.  
  302. Messages
  303. --------
  304. UNP has 6 kinds of messages other than the usual information it can display:
  305.  
  306.  - Questions -   Even with new smart routines programmed into UNP4 it still
  307. needs to ask a few things now and then.  Who said that computers are smarter
  308. than you?  Anyway, you can expect the following questions:
  309.  
  310. Add code to fake PKLITE decompression (y/n)?
  311.    This question arises when UNP detects that a signature has been placed
  312.    into the program's PSP and the -K switch has the '?' value. (for more
  313.    info, read the "notes on compressors" part)
  314.  
  315. Continue (y/n)?
  316.    When UNP considers a program abnormal it wil display a warning with the
  317.    reason why it thinks so and will ask you if you want to continue anyway.
  318.  
  319. Remove this routine from file (y/n)?
  320.    You have requested confirmation for each action UNP takes (see -C option)
  321.    and this is the result.
  322.  
  323. Program is protected, please enter password:
  324.    Some programs have the ability to scramble executable files with a
  325.    password.  Unfortunately I have not succeeded in breaking all protection
  326.    schemes using this. So for certain programs you might be prompted for
  327.    the password
  328.  
  329. File FILENAME.EXT already exists.  Overwrite (y/n)?
  330.    When UNP wants to write to the destination file and discovers the file
  331.    already exists, it will ask if you want to overwrite the file. You can
  332.    avoid this question by using the overwrite option (see -O option).
  333.  
  334. - Informal messages - By placing UNP in verbose mode (see -V option) UNP will
  335. display additional information about anything that might be interesting. Note
  336. that informal messages allways start with "INFO -".
  337.  
  338. DOS Version X.XX[, running under Windows.]
  339.    Some system information, this has no effect on UNP.
  340.  
  341. Commandline = ...
  342.    This indicates what options are passed for the Init procudere the the main
  343.    module. This is influenced by UNP's commandline.
  344.  
  345. Program's commandline = "...".
  346.    If you have specified anything for the program's commandline
  347.    (see -- option), it will be echoed here.
  348.  
  349. Using FILENAME.EXT as temp file.
  350.    The name of the temporary file UNP will use. This is composed of the TEMP
  351.    environment variable and some constant defined in UNP.
  352.  
  353. Anti-virus program TbScanX detected.
  354.    UNP has detected the resident anti-virus program TbScanX and will use it
  355.    to scan the files before it loads them (also see -s switch).
  356.  
  357. Wildcard matches X filename(s), stored at XXXXh.
  358.    The wildcard specified on the commandline is resolved to a number of files
  359.    and these names has been stored at the specified segment.
  360.  
  361. Program loaded at XXXXh, largest free memory block: X bytes.
  362.    Indicates at which segment UNP is loaded and how large the largest
  363.    available memoryblock is.
  364.  
  365. Adding 'PK' signature to fake PKLITE decompression.
  366.    When UNP automaticly adds the code to fake PKLITE decompression
  367.    (see -K option), it will display this message.
  368.  
  369. Increasing program''s blocksize to X bytes.
  370.    In certain cases UNP will increase the memory given to the program which
  371.    UNP wants to decompress.  This can solve problems with programs which
  372.    do not check if they have enough memory. This can be forced with the -L
  373.    option (see -L option).
  374.  
  375. - Warnings - These messages indicate something is wrong but UNP can live with
  376. it. Warnings will always start with "WARNING -".
  377.  
  378. Infile and Outfile are same, Outfile ignored.
  379.    After UNP has resolved the wildcard it has found out the the file to be
  380.    processed is the same as the destionation file. Since this is the default
  381.    operation of UNP it will ignore the destination file.
  382.  
  383. Outfile specified, -B option ignored.'
  384.    When you have specified a destination file you can't create a backup. This
  385.    is because the backup is created by renaming the original file. When the
  386.    destination file is also specified there would be no original program
  387.    left.
  388.  
  389. -N option overrules -B option, -B option ignored
  390.    You can't number your files and have a backup created as well. It's about
  391.    the same reason as mentioned above.
  392.  
  393. Invalid or missing stored header information.
  394.    Some files store the original header somewhere inside the compressed file.
  395.    When UNP has detected this and the info does not seem to be correct it
  396.    will display this warning.
  397.  
  398. - Errors - UNP has discovered something wrong and cannot continue with the
  399. current action. It will continue with the next file (when available).
  400.  
  401. (INT 10h) Unexpected use of video interrupt, action failed.
  402. (INT 20h) Unexpected program termination, action failed.
  403. (INT 21h) Unexpected call to DOS, action failed.
  404.    UNP watches several interrupts to ensure things are going as expected.
  405.    When UNP loses control it will sooner or later detect one of the
  406.    interrupts it watches and abort the current action.  If you think nothing
  407.    went wrong and you got this message anyway, you can disable the interrupt
  408.    watching (see -i switch).
  409.  
  410. Cannot convert, file already is a COM file.
  411. Cannot convert, file has relocation items.
  412. Cannot convert, initial CS:IP not FFF0:0100.
  413. Cannot convert, file is too large for COM.
  414. Cannot convert, file contains internal overlay.
  415.    Convertion of a .EXE file to .COM file has to meet several conditions.
  416.    When one of these is not met the program will show which one and abort the
  417.    action.
  418.  
  419. - Dos error - Your operating system does not allow something UNP would like
  420. to do. Simple things like a read-only file or disk full will cause such a
  421. error. UNP will quit if such an error is encountered.  These messages start
  422. with "DOS ERROR - " and end with the DOS error code.
  423.  
  424. unable to open file ... (error x)
  425. unable to create file ... (error x)
  426. unable to read from file ... (error x)
  427. unable to write to file ... (error x)
  428.  
  429. - Fatal errors - Something seriously wrong has happened. The program will
  430. abort. These messages will start with "FATAL ERROR - ".
  431.  
  432. No files found matching
  433.    UNP could not resolve the wildcard you specified on the commandline to any
  434.    file. You might want to check the filenames.
  435.  
  436. Decompressing many files into one.
  437.    The Infile wildcard matches more than one file and you have also given a
  438.    destination filename on the commandline.
  439.  
  440. Output path/file must not contain '*' or '?'.
  441.    You can't use wildcards in the destination filename.
  442.  
  443. Outfile required for specified command.
  444.    The command you specified requires 2 filenames and you only gave one.
  445.  
  446. Specified command does not require filenames.
  447.    The command you specified does not allow any filenames at all!
  448.  
  449. (INT 00h) Divide overflow generated by CPU.
  450. (INT 23h) Ctrl-C or Ctrl-Break pressed by user.
  451.    These interrupts are considered very important and UNP will quit as fast
  452.    as possible when one of these occur.
  453.  
  454. Not enough memory to ...
  455.    UNP could not allocate enough memory for something.
  456.  
  457. Memory Control Blocks destroyed.
  458.    UNP now checks for this special memory error since this error is probably
  459.    caused by a progam that has been giving too few memory. UNP will abort but
  460.    the system will most likely halt immediately after that.  You might want
  461.    to try giving the program more memory (see -l switch).
  462.  
  463.  
  464.  
  465. Bugs of which UNP is able to fix
  466. --------------------------------
  467. COMPACK V4.4
  468.    This program does not really contain a bug but more an incompatibility
  469. error.    On 486s, programs compressed with this version of COMPACK will crash.
  470. This is a result of the self-modifying code COMPACK uses.  Somewhere at the
  471. end of the decompression routine of COMPACKed programs there is a far jump to
  472. the decompressed program.  Initially this jump points to 0:0 but is adjusted
  473. not much earlier before the execution of this instruction.  On 386s or lower
  474. the prefetch queue is small enough to allow this self-modifying code.  On
  475. 486s however, the read-ahead buffer is much larger so the jmp has already
  476. been read when the adjustment takes place. The result on 486s is that the
  477. jmp 0:0 is actually executed, most likely causing a system crash.  UNP places
  478. a breakpoint before the execution of this instruction which flushes the
  479. read-ahead buffer and the program can be saved with the correct entrypoint.
  480.  
  481. EXEPACK
  482.    Ever got the message "Packed file is corrupt"?  Then you are probably
  483. using a memory manager and have lots of conventional memory free.
  484. Microsoft's EXEPACK requires to have atleast one segment (64k) below it to be
  485. able to unpack the program into memory.  If you have a lot of free memory,
  486. let's say above 600k, then programs can be partially loaded in the first
  487. segment.  This causes EXEPACK to generate this error.  UNP loads an exepacked
  488. file high enough to unpack it and can decompress it without any trouble.
  489.  
  490. PKLITE V1.00ß
  491.    Although this program is probably rarely used, I implemented some code
  492. that fixes a bug that appears in this version of PKLITE only.  When certain
  493. programs are compressed, PKLITE moves the last 512 bytes of the image into an
  494. overlay.  Compressed programs will be decompressed by UNP and checked for an
  495. overlay of 512 bytes.  If such an overlay has been found, UNP includes the
  496. overlay into the newly created image.  This has the same result of what would
  497. have happened when "PKLITE -x" would have been used to restore to program.
  498.  
  499. SHRINK V1.00
  500.    This compressor is a bad implementation of Run Length compression.  It
  501. contains two bugs of which one is in the decompression routine.  Both bugs
  502. are triggered when the file to be compressed contains all 256 bytes.  I have
  503. written my own decompression routine for this compressor that is able to
  504. avoid one bug.    The other bug is that the last byte of the compressed file is
  505. thrown away making it impossible to fully rebuild the file.  If this is the
  506. case, UNP will display a warning.  It is always better to decompress it, even
  507. if the last byte is missing.
  508.  
  509.  
  510. Notes on compressors
  511. --------------------
  512. There are a few things about compressors that might usefull to know:
  513.  
  514. PKLITE V1.14+ Professional
  515.    These versions of PKLITE have some small piece of code in the
  516. decompression routine that adds a so called signature into the PSP.  This
  517. allows programs to check if they are still compressed with PKLITE.  When such
  518. a program is unpacked UNP by default adds a small piece of code into the PSP
  519. to fake the decompression. One of the programs that check for such a
  520. signature is the PKZIP V2.04g program. (see also -k switch)
  521.  
  522.  
  523. Registering UNP
  524. ---------------
  525. Having tried several forms of registration for UNP, I have decided to use the
  526. following registration method.    First, since a lot of support has come from
  527. the low end user I decided to release UNP as cardware to the public domain.
  528. It's always nice to know your program is appreciated, and what's the price of
  529. a simple card compared to the registration fees asked by several others?  So
  530. if you're a happy user of UNP fill in your registration postcard of
  531. something in your neighbourhood today.    However, I have spend a lot of hours
  532. on this program and since it can be useful for commercial purposes I decided
  533. that for commercial use a registration of $1 per copy is required.  Why so
  534. cheap you might wonder.  Well, I don't want the price to prevent you from
  535. registering.  I do not have to make profit out of it, I am just a student who
  536. has written a program to teach myself more about DOS.  I just as well could
  537. have been writing viruses but instead I have chosen this.  Please note that
  538. non-commercial users are allowed to send me money anyway!  If it is enough to
  539. buy and mail a disk, you can expect a free special registered version!
  540.  
  541.  
  542. Hey! Unp is compressed!
  543. -----------------------
  544. Yes, starting with V4.10 of UNP I will use a compressor to make sure lamers
  545. won't just change the version number and upload it to some BBS just to get
  546. their ratio higher.  UNP is compressed with DIET V1.45f and processed with a
  547. program I call DSHIELD to prevent decompressing.  The traps used are not too
  548. difficult to figure out, but the idea behind it was just the prevent the
  549. lamers from hacking.  If you succeed in unpacking it, then you are probably
  550. an experienced programmer.  I am sorry but the protection seems to be
  551. neccesary.
  552. Due to this protection it might be possible that some anti-virus programs
  553. which use heuristic scanning consider UNP infected by a new or unknown virus.
  554.  
  555.  
  556. What UNP can remove
  557. -------------------
  558. Quite a lot actually. A list follows:
  559.  
  560. AINEXE V2.1
  561. ANTIBODY
  562. AVPACK V1.20
  563. AXE V2.2
  564. CENTRAL POINT ANTI-VIRUS V1, V1.1
  565. COM2CRP V1.0
  566. COMLOCK V0.10
  567. COMPACK V4.4, V4.5
  568. CRYPTA V1.00
  569. CRYPTCOM
  570. DELTAPACKER V0.1
  571. DIET V1.00, V1.00d, V1.02b, V1.10a, V1.20, V1.44, V1.45f
  572. ENCRCOM V2.0
  573. EPW V1.2, V1.21, V1.30
  574. EXELITE V1.00aF
  575. EXEPACK V4.00, V4.03, V4.05, V4.06
  576. F-XLOCK V1.16
  577. ICE V1.00
  578. IMPLODE V1.0 Alpha
  579. KVETCH V1.02ß
  580. LINK /EXEPACK V3.60, V3.64, V3.65, V3.69, V5.01.21
  581. LZEXE V0.90, V0.91, V1.00a
  582. MCLOCK V1.2, V1.3
  583. MEGALITE V1.18a, V1.20a
  584. OPTLINK
  585. PACKEXE V1.0
  586. PASSCOM V2.0
  587. PGMPAK V0.13, V0.14, V0.15
  588. PKLITE V1.00ß, V1.00, V1.03, V1.05, V1.12, V1.13, V1.14, V1.15, V1.20
  589. POJCOM V1.0
  590. PRO-PACK V2.08, V2.14
  591. PROCOMP V0.82
  592. PROTECT! EXE/COM V1.0, V1.1, V2.0, V3.0, V3.1, V4.0, V5.0
  593. SELF-DISINFECT V0.90ß
  594. SHRINK V1.0
  595. SCRNCH V1.00, V1.02
  596. SYRINGE
  597. TINYPROG V1.0, V3.0, V3.3, V3.6, V3.8, V3.9
  598. TURBO ANTI-VIRUS V7.02A
  599. USERNAME V2.00, V2.10, V3.00
  600. WWPACK V3.00, V3.01
  601.  
  602. I have left out a couple of names not really worth mentioning.
  603.  
  604.  
  605. What UNP cannot remove
  606. ----------------------
  607. SPACEMAKER V1.03
  608. EPW V1.2, V1.21, V1.30, EXE only
  609.  
  610.  
  611. CONTACTING ME
  612. -------------
  613. Please note that registrations must be send to my home adress, not to my
  614. E-mail adress.    A card really is a card, not a scanned picture or some
  615. piece of text.
  616.  
  617. My address:
  618.     Ben Castricum
  619.     Van Loenenlaan 10
  620.     1945 TX  Beverwijk
  621.     The Netherlands
  622.  
  623. E-Mail: valid until june '95
  624.     benc@htsa.hva.nl
  625.  
  626.  
  627.  
  628. -- End of UNP V4.10 documentation --
  629.