home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 January / PCWorld_2003-01_cd.bin / Software / TemaCD / hideinpicture / hip.txt < prev    next >
Text File  |  2002-10-18  |  28KB  |  617 lines

  1. ************************************************************************
  2.                          Hide In Picture (HIP)
  3.                       version 2.1 - October, 2002
  4.             Copyright (C)  2002 Davi Tassinari de Figueiredo
  5. ************************************************************************
  6.  
  7.  
  8.                          ---------------------
  9.                            Table of contents
  10.                          ---------------------
  11.  
  12.   - Introduction
  13.   - License and disclaimer
  14.   - Legal warning
  15.   - Available packages
  16.   - Files in HIP binaries package
  17.   - Version history
  18.   - Basic concepts
  19.   - Features
  20.   - Using HIP for DOS/Linux
  21.   - Using HIP for Windows
  22.   - Error messages
  23.   - Security recommendations
  24.   - How HIP works
  25.   - Translating HIP
  26.   - Credits
  27.  
  28.  
  29.                             ----------------
  30.                               Introduction
  31.                             ----------------
  32.  
  33. Hide In Picture (HIP) is a steganography program. It is a program that
  34. allows you to "hide" any kind of file inside standard bitmap pictures.
  35. The pictures look like normal images, so people will not suspect they
  36. contain hidden data.
  37.  
  38. You can use a password to hide your files, and only those who know the
  39. password use are able to retrieve them - without it, people cannot even
  40. be sure there is something hidden in the image.
  41.  
  42. I hope you enjoy HIP. If you have any doubts, comments, bug reports or
  43. suggestions for future versions, please e-mail me at davitf at eml.cc
  44. (the address is not written directly to avoid spammers; simply replace
  45. at with @). The latest version of this program is available at
  46. http://hide-in-picture.sf.net/. If you cannot understand any part of
  47. this documentation, I'm sorry; please tell me so that I can improve it.
  48.  
  49.  
  50.                        --------------------------
  51.                          License and disclaimer
  52.                        --------------------------
  53.  
  54. This program is free software; you can redistribute it and/or modify it
  55. under the terms of the GNU General Public License as published by the
  56. Free Software Foundation; either version 2 of the License, or (at your
  57. option) any later version.
  58.  
  59. This program is distributed in the hope that it will be useful, but
  60. WITHOUT ANY WARRANTY; without even the implied warranty of
  61. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  62. General Public License for more details.
  63.  
  64. You should have received a copy of the GNU General Public License along
  65. with this program; if not, write to the Free Software Foundation, Inc.,
  66. 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  67.  
  68. The full GNU General Public License is in the file COPYING.
  69.  
  70.                          ----------------------
  71.  
  72. NOTE: The Win32Lib library (used by the Windows version) has the
  73. following license terms:
  74.  
  75. This software is provided 'as-is', without any express or implied
  76. warranty. In no event will the authors be held liable for any damages
  77. arising from the use of this software.
  78.  
  79. Permission is granted to anyone to use this software for any purpose,
  80. including commercial applications, and to alter it and redistribute it
  81. freely, subject to the following restrictions:
  82.  1. The origin of this software must not be misrepresented; you must not
  83.     claim that you wrote the original software.
  84.  2. If you use this software in a product, acknowledgement in the
  85.     product's documentation and binary are required.
  86.  3. Altered source versions, and works substantially derived from the
  87.     it, must...
  88.     a) be plainly be marked as such,
  89.     b) not be misrepresented as the original software,
  90.     c) include this notice, unaltered.
  91.  
  92.  
  93.                            -----------------
  94.                              Legal warning
  95.                            -----------------
  96.  
  97. Many countries have laws restricting the export or use of cryptography.
  98. The algorithms implemented in this program are rather strong, so it
  99. might be illegal for you to use it, or you might need to get special
  100. permission in order to use it. Before using this program, you should be
  101. sure that what you are going to do is legal in your country. If you do
  102. not know about the regulations for your country, visit Crypto Law Survey
  103. at http://cwis.kub.nl/frw/people/koops/lawsurvy.htm. The author takes no
  104. responsibility for illegal use of the program.
  105.  
  106. This program is able to read and write GIF files. However, Unisys has
  107. patents for the compression algorithm used by these files (LZW) in the
  108. United States, United Kingdom, France, Italy, Germany, Canada and Japan;
  109. if you are in any of these countries, you are not allowed to use the GIF
  110. reading/writing capabilities without obtaining a license from Unisys (I
  111. am not a lawyer, so this information may be inaccurate).
  112.  
  113.  
  114.                          ----------------------
  115.                            Available packages
  116.                          ----------------------
  117.  
  118. There are several packages available for HIP, all of which can be
  119. downloaded from the HIP page. Here is a list, with a brief description
  120. of each one.
  121.  
  122. Because of patent concerns in some countries regarding GIF files (see
  123. Legal warning), the source code for handling these files is not included
  124. in the main source package, but in a separate package. Also, there are
  125. two binary packages for each supported language: one of them contains
  126. binaries with GIF support and the other one contains binaries without
  127. this support. If you are in one of the countries where Unisys has
  128. patents on LZW, you should use the _nogif binaries and not use the GIF
  129. handling source code; otherwise, you may use any of the packages (it is
  130. probably better to use the full-featured program).
  131.  
  132. Source code:
  133.   - hip21src - source code for HIP 2.1
  134.   - hip21gif - source code GIF file reading/writing with HIP 2.1
  135.   - hip21msg - message files in several languages for use with HIP 2.1
  136.  
  137. Binaries:
  138.  
  139. There are binaries (executable files) for all the currently available
  140. languages. Each language is represented by a two-letter code in the
  141. package name; the package names below have the letters en, for English,
  142. and you should replace them by the code for the appropriate language.
  143.   - hip21_en - binaries for HIP 2.1, with GIF support
  144.   - hip21_en_nogif - binaries for HIP 2.1, without GIF support
  145.  
  146. All the packages are available from the HIP page, at
  147. http://hide-in-picture.sf.net/.
  148.  
  149.  
  150.                    ---------------------------------
  151.                      Files in HIP binaries package
  152.                    ---------------------------------
  153.  
  154. DOS/Windows binaries
  155.   - winhip_XX.exe / winhip_XX_nogif.exe - Windows program file
  156.   - hip_XX.exe / hip_XX_nogif.exe - DOS program file
  157.   - hip.htm; hip.txt - Documentation (this file)
  158.   - COPYING - The GNU General Public License
  159. (you may rename the program files before using them, if you wish)
  160.  
  161.  
  162.                           -------------------
  163.                             Version history
  164.                           -------------------
  165.  
  166.   - Version 1.0 : first release.
  167.  
  168.   - Version 1.1 : hiding/retrieving is faster, but not compatible with
  169.     v1.0 hidden files; first Windows version.
  170.  
  171.   - Version 2.0 beta : completely rewritten code. Faster, safer, bug
  172.     fix, support for other encryption algorithms, support for
  173.     transparent colors, no longer limited to hiding one bit per picture
  174.     byte, better user interface... not compatible with v1.x hidden
  175.     files.
  176.  
  177.   - Version 2.0 : cleaner code, GUI improvements in Windows version,
  178.     paletted pictures not compatible with beta version (due to a fix to
  179.     avoid possible problems when dealing with other graphic formats),
  180.     added erase option, improved documentation.
  181.  
  182.   - Version 2.1 : support for reading and writing GIF files, support for
  183.     special characters in the program messages, -iX (image format)
  184.     option in command-line version, new image displaying method in
  185.     Windows version (less flickering), minor bug fixes, minor code and
  186.     documentation improvements, smaller binaries (due to new Euphoria
  187.     version used in compilation).
  188.  
  189.  
  190.                            ------------------
  191.                              Basic concepts
  192.                            ------------------
  193.  
  194. HIP hides data inside a picture by modifying its colors in a way that is
  195. almost unnoticeable by the human eye. When a file is hidden, it conceals
  196. each part in an area of the picture; the areas used to store each part
  197. of the file are chosen by doing several calculations with the password
  198. given. When retrieving a file, the same calculations are done to the
  199. password and, knowing which area contains each part of the file, it can
  200. be reconstructed. If the wrong password is used when retrieving a file,
  201. HIP will try to read the file from the wrong areas and will not find
  202. anything there.
  203.  
  204. When a file is hidden in a picture that already has something in it, the
  205. new file may be written in areas where the previous data was stored (as
  206. HIP has no way of knowing that it was already there), so the old file
  207. will be erased or corrupted. Also notice that a large file will need
  208. more areas to be fully hidden than a small one, so it may be easier to
  209. see the modifications in the picture. If you hide a file that is too
  210. large, there will be a lot of "noise" in the picture and it will be easy
  211. to notice there is something hidden in the picture, even if other people
  212. cannot see what is actually hidden in it. For a somewhat more technical
  213. explanation about how hiding works, please read How HIP works. Before
  214. using HIP to hide important data, please read Security recommendations.
  215.  
  216.  
  217.                               ------------
  218.                                 Features
  219.                               ------------
  220.  
  221. Here are some HIP features you may want to know about:
  222.  
  223.   - Encryption - All data is encrypted before being written to a
  224.     picture, to increase security. HIP offers several (well, currently
  225.     only two) encryption algorithms you can choose from; all of them are
  226.     considered very secure, so you don't have to worry about it unless
  227.     you have a specific reason for wanting to use a specific algorithm.
  228.     When retrieving a file, HIP tries using all the available algorithms
  229.     to find the correct one.
  230.  
  231.   - Transparent color support - One color of the picture may be set as
  232.     'transparent'; nothing will be stored in areas of this color. This
  233.     can be useful, for example, when hiding a file in an image from a
  234.     Web page, as its transparent areas will remain as they were before.
  235.     To retrieve a file hidden using this option, you must set the
  236.     transparent color to the same used when hiding it. Transparent
  237.     colors for GIF files are automatically loaded/saved.
  238.  
  239.   - Erase file option - If you want to remove a file hidden in a
  240.     picture, use this option. It will overwrite the file with random
  241.     data, so the file will be unrecoverable. If you know the password
  242.     with which the file was hidden, you can provide it and only the
  243.     necessary areas will be overwritten, resulting in a very small
  244.     quality loss; however, if you provide the wrong password, the file
  245.     will not be erased properly. If you do not provide a password, HIP
  246.     will overwrite more of the picture to account for all the possible
  247.     passwords, causing a larger quality loss.
  248.  
  249.  
  250.                       ---------------------------
  251.                         Using HIP for DOS/Linux
  252.                       ---------------------------
  253.  
  254. HIP for Dos/Linux is a command-line utility.
  255.  
  256. To hide a file inside a picture, use:
  257.     hip h source_image input_file [destination_image] [options]
  258. If the destination image name is not specified, the destination image is
  259. written on top of the source image.
  260.  
  261. To retrieve a file from a picture, use:
  262.     hip r source_image [output_file] [options]
  263. If the output file name is not specified, the name saved in the picture
  264. is used.
  265.  
  266. To erase a file previously hidden in a picture, use:
  267.     hip e source_image [destination_image] [options]
  268. If the destination image name is not specified, the destination image is
  269. written on top of the source image.
  270.  
  271. Options:
  272.  
  273. -fxxxxxx - file name to write in image
  274.   By default, the name of the input file is written in the image. Use
  275.   this option to specify a different name to write. If you use it
  276.   without specifying a file name, no name is written.
  277.  
  278. -pxxxxxx - password to use
  279.   When used with the hide or retrieve operations, this option specifies
  280.   the password to use for hiding/retrieving the file. If you do not use
  281.   this option, you will be asked to enter a password (recommended). When
  282.   used with the erase operation, HIP assumes there is a file hidden with
  283.   the specified password and overwrites only the first bits of the
  284.   hidden data; if the image contains a file hidden with a different
  285.   password, it will not be erased correctly.
  286.  
  287. -thh or -thhhhhh - transparent color index or RGB value
  288.   Use this option to set the transparent color for the image. To specify
  289.   the palette index for the transparent color of an 8-bit image, use two
  290.   hexadecimal digits (00-FF). To specify the RGB value for the
  291.   transparent color, use six hexadecimal digits (the first two represent
  292.   the red component, the next two represent the green one and the last
  293.   two, the blue one). If you specify the RGB value for the transparent
  294.   color of an 8-bit image and there is more than one palette entry with
  295.   that color, the one with the lowest index will be used.
  296.  
  297. -ex - encryption algorithm
  298.   Use this option to choose the encryption algorithm: a for Blowfish
  299.   (default) or b for Rijndael.
  300.  
  301. -ix - image format
  302.   Use this option to choose the image format for the output file. If the
  303.   format is not specified, HIP will choose the format based on the file
  304.   extension; if the extension is not recognized, the file will be saved
  305.   as a Windows Bitmap (BMP) picture.
  306.  
  307. -c - write the CRC-32 of the data
  308.   Use this option to append a checksum to the data to identify data
  309.   corruption. This is enabled by default.
  310.  
  311. -C - do not write the CRC-32 of the data
  312.   Use this option if you do not wish to append a checksum to the data;
  313.   see above.
  314.  
  315. -h - hide the password characters
  316.   If the p option is not used, the program asks the user for the
  317.   password. Use this option to show *'s (asterisks) instead of the
  318.   password characters. This is enabled by default.
  319.  
  320. -H - do not hide the password characters
  321.   Use this option to show the password characters while you are typing
  322.   them.
  323.  
  324. -v - view file information only
  325.   Use this option if you only want to see whether the file fits inside
  326.   the picture when hiding, or the name and size of the hidden file when
  327.   retrieving. The destination image or output file is not written.
  328.  
  329. -q -quiet mode
  330.   Use this option if you do not want to see unnecessary messages (such
  331.   as the file information and status bars). The only things that will be
  332.   shown are password prompts, confirmation messages and error messages.
  333.  
  334. -y -answer 'yes' to all confirmation questions
  335.   By default, the program asks for confirmation before overwriting a
  336.   file that already exists. If this option is specified, you will not be
  337.   asked for confirmation.
  338.  
  339.  
  340.                        -------------------------
  341.                          Using HIP for Windows
  342.                        -------------------------
  343.  
  344. HIP for Windows is a GUI (graphical user interface) application, which
  345. is intended to be easy to use and understand. You can open a picture by
  346. selecting the 'Open picture...' item on the File menu of the main window
  347. or by clicking the Open button on the window, and then choosing the file
  348. you wish to open. You can also drag and drop a picture into the main
  349. window. When you open a picture, it is displayed in a new window.
  350.  
  351. Hiding a file
  352.  
  353.   To hide a file inside a picture, select the 'Hide file...' item in the
  354.   Image menu or click the Hide button, and choose the file you want to
  355.   hide. You can also drag and drop the file into the picture.
  356.  
  357.   An Options window will then appear. In it, you can type the password
  358.   to use, change the file name which will be written along with the
  359.   file, choose the encryption algorithm for the file, and say whether
  360.   you want a checksum to be written along with the file (recommended).
  361.   Press the Ok button when you are done.
  362.  
  363.   The file will then be hidden in the picture. A progress window will be
  364.   shown during this process; if you wish to abort it, click the Stop
  365.   button or close this window. When the process is complete, the window
  366.   containing the picture will show the modified picture.
  367.  
  368.   Click the Save button or select the 'Save picture' item in the Image
  369.   menu to save the modified image on top of the original one. If you do
  370.   not want to overwrite the original picture, click the Save As button
  371.   or select the 'Save picture as...' item in the menu. Please note that
  372.   the file format selected in the Save file dialog box does not really
  373.   have an effect on the format used to save the picture; the file format
  374.   is selected from the file extension (this is a bug, not a feature; I
  375.   hope to be able to fix it soon).
  376.  
  377. Retrieving a file
  378.  
  379.   To retrieve a file hidden inside a picture, click the Retrieve button
  380.   or select the 'Retrieve file...' item in the Image menu, and wait
  381.   while HIP converts the pixels in the picture into the data which it
  382.   will try to read. You can cancel the operation by closing the progress
  383.   window or clicking the Stop button.
  384.  
  385.   Next, an Options window will appear. Type the same password used to
  386.   hide the picture (remember that passwords are case-sensitive). If it
  387.   is correct, you will see a Save file dialog where you can change the
  388.   directory and/or the name of the retrieved file if you wish. When you
  389.   press the Ok button, the file will be retrieved. During this process,
  390.   you will see the progress window. If you have read this far, you
  391.   probably already know how to cancel this operation.
  392.  
  393.   When the progress window disappears, the retrieving process is
  394.   finished. If the checksum was written with the data and the hidden
  395.   file has been corrupted, you will see a warning message.
  396.  
  397. Setting the transparent color
  398.  
  399.   To select a transparent color for the picture, select the 'Transparent
  400.   color...' item in the Image menu. If the picture contains a palette,
  401.   you will be asked for the palette index of the transparent color;
  402.   otherwise, you will be asked for its red-green-blue value.
  403.  
  404. Getting information about the picture
  405.  
  406.   You can see some information about the picture by selecting the
  407.   'Picture information...' item in the Image menu. You will see its file
  408.   name, its dimensions and number of bits used per pixel, the currently
  409.   set transparent color and the maximum number of bytes the picture can
  410.   store. Please note that you cannot hide a file as large as this; some
  411.   of these bytes will be used to store information about the file
  412.   (typically, 32 bytes will be used, plus the length of the file name).
  413.   Remember that, if the file hidden uses too much of the available
  414.   space, the quality of the picture will be severely reduced.
  415.  
  416.  
  417.                            ------------------
  418.                              Error messages
  419.                            ------------------
  420.  
  421. xxxxxx is corrupted
  422.   The bitmap file could not be read because there are errors in it.
  423.  
  424. xxxxxx contains unsupported features
  425.   The bitmap file is of a type not currently supported by HIP. It may be
  426.   compressed, or not a 8-bit or 24-bit image.
  427.  
  428. A file name must be specified for retrieving this file
  429.   The file name was not saved in the picture, so a file name to save the
  430.   retrieved file must be specified.
  431.  
  432. Aborted by user
  433.   The user has aborted the execution of the program.
  434.  
  435. Cannot save a x-bit picture as a xxx file
  436.   The chosen image format cannot store pictures with the bit depth of
  437.   the current image. If this happens, try choosing another format.
  438.  
  439. Color not found in palette
  440.   A RGB value for the transparent color of an 8-bit image was specified,
  441.   but the color was not found in the palette.
  442.  
  443. File is too big to be hidden in picture
  444.   No need to explain it. Try using a larger picture.
  445.  
  446. File was hidden with a newer version of HIP
  447.   Newer versions of HIP may contain features (such as compression) which
  448.   are not known by this version. If this happens, get a newer version of
  449.   the program.
  450.  
  451. Filesystem error while reading xxxxxx
  452.   There was a filesystem problem while the program was reading the file.
  453.  
  454. Hidden data is corrupted
  455.   The program found the data in the image, but there is something wrong
  456.   with it. Possible causes: a graphics program has corrupted the hidden
  457.   data, or there has been a transmission or storage error. Anyway, the
  458.   file is saved, but some or all of it may be unreadable.
  459.  
  460. No hidden file found
  461.   The program could not find the hidden file in the image. Possible
  462.   causes: there is no hidden file in it (or it has been erased), the
  463.   password is wrong, the transparent color in the picture is not set
  464.   correctly, or the hidden data in the picture has been corrupted.
  465.  
  466. Not enough memory
  467.   There is not enough memory to load the bitmap image into memory.
  468.  
  469. Transparent color must be a RGB triplet for 24-bit pictures
  470.   A palette entry was specified for the transparent color of a 24-bit
  471.   image.
  472.  
  473. Unable to open xxxxxx
  474.   The program could not open the file for reading or writing. Possible
  475.   causes: the file does not exist (reading), it is read-only (writing),
  476.   or it is in use by other program.
  477.  
  478. Unknown error in xxxxxx: xx
  479.   If this ever happens, there is a bug in HIP. A routine has returned an
  480.   error code the main program does not know about. Please report this to
  481.   me.
  482.  
  483.  
  484.                       ----------------------------
  485.                         Security recommendations
  486.                       ----------------------------
  487.  
  488. Security was a primary concern in HIP's design. However, if you want to
  489. be sure nobody will find out that one of your pictures contains hidden
  490. data or, even worse, retrieve the hidden file, you should follow these
  491. guidelines:
  492.  
  493.   - Do not use short passwords or passwords that can be easily guessed
  494.     (such as your name, phone number, or a single word), as an attacker
  495.     could automatically try all of these passwords. Use different
  496.     capitalizations, combinations of words, numbers and punctuation
  497.     marks, and anything else you can think of.
  498.  
  499.   - Do not use pictures available from the Internet or other
  500.     publicly-available sources. The best source for pictures is scanning
  501.     photographs - preferably your own. This is because if someone finds
  502.     the original picture, they will be able to see yours is somewhat
  503.     different, and may suspect there is hidden data in it - even if they
  504.     cannot read it.
  505.  
  506.   - Erase the original picture after you have hidden the file. The
  507.     reason is the same as the one above - if someone finds the original
  508.     picture, they might suspect something. If possible, use a program
  509.     that wipes (overwrites) the data when deleting it; PGP
  510.     (http://www.pgpi.org/) is able to do this.
  511.  
  512.   - Do not use computer-generated images. They might have large areas
  513.     filled with a single color or containing linear fades, and small
  514.     changes in those areas can be easily noticed. It is also possible to
  515.     identify changes in other computer-generated images such as
  516.     fractals.
  517.  
  518.   - Do not write files that are too big, or the noise in the picture
  519.     will be easily noticed and someone may suspect there is hidden data
  520.     in it. For 24-bit images, you should not write files larger than
  521.     about 40% of the picture size. For 8-bit images, the files should be
  522.     even smaller. These values are only estimates, and are not valid in
  523.     all cases. After the hiding proccess, take a close look at the
  524.     resulting picture - if you think its quality is worse than that of
  525.     the original, you should use a larger picture.
  526.  
  527. Even if you follow all of these, remember that no program or algorithm
  528. is completely safe. The author does not take responsibility for any
  529. problems that may arise from security flaws or errors in the program.You
  530. should not trust this program for hiding critical data; if that is the
  531. case, get professional advice.
  532.  
  533.  
  534.                            -----------------
  535.                              How HIP works
  536.                            -----------------
  537.  
  538. A bitmap picture is simply a series of numbers representing color
  539. intensities, one color for each pixel (point) of the picture. HIP hides
  540. a file inside a picture by placing its bits in the least-significant
  541. bits of each color in the picture. Suppose you have a picture containing
  542. the following bytes:
  543.  
  544.   200 53 2 195 54 69 191 56
  545.  
  546. The binary values of these numbers are:
  547.  
  548. 11001000 00110101 00000010 11000011 00110110 01000101 10111111 00111000
  549.  
  550. To hide the character 109 (in binary 01101101), the least-significant
  551. bit of each byte would be replaced by a bit of the character. The result
  552. would be:
  553.  
  554. 11001000 00110101 00000011 11000010 00110111 01000101 10111110 00111001
  555.  
  556. Which corresponds to:
  557.  
  558.   200 53 3 194 55 69 190 57
  559.  
  560. The difference between the new values and the old ones is very small, so
  561. it is difficult, if not impossible, for the human eye to identify any
  562. difference from the original picture. If the file is large, it may be
  563. necessary to modify more than a single bit from each byte of the
  564. picture, which can make this difference more visible.
  565.  
  566. With 8-bit pictures, the process is a little more complicated, because
  567. the bytes in the picture do not represent color intensities, but entries
  568. in the palette (a table of at most 256 different colors). HIP chooses
  569. the nearest color in the palette whose index contains the appropriate
  570. least-significant bits.
  571.  
  572. The HIP header (containing information for the hidden file, such as its
  573. size and filename) and the file to be hidden are encrypted with an
  574. encryption algorithm, using the password given, before being written in
  575. the picture. Their bits are not written in a linear fashion; HIP uses a
  576. pseudo-random number generator to choose the place to write each bit.
  577. The values given by the pseudo-random number generator depend on your
  578. password, so it is not possible for someone trying to read your secret
  579. data to get the hidden file (not even the encrypted version) without
  580. knowing the password.
  581.  
  582. A document describing the HIP file format may be written if anyone wants
  583. it. If you need it (to analyze it, write a compliant program or for any
  584. other reason), please tell me.
  585.  
  586.  
  587.                           -------------------
  588.                             Translating HIP
  589.                           -------------------
  590.  
  591. If you want to translate HIP into other languages, please get the
  592. hip21src or hip21msg package (see Available packages) and translate the
  593. messages in m_en.e (please read the information there). I would really
  594. like if you could send me the translated file, so that I can include it
  595. with future versions and distribute binaries for the translated program.
  596.  
  597. There are already several translations available, and others may become
  598. available at any time. The HIP page contains binaries for all the
  599. languages.
  600.  
  601.  
  602.                               -----------
  603.                                 Credits
  604.                               -----------
  605.  
  606. HIP has been written in Euphoria by Rapid Deployment Software
  607. (http://www.rapideuphoria.com/). The binaries were compiled with version
  608. 2.3.
  609.  
  610. It uses many libraries by myself (http://www16.brinkster.com/davitf/).
  611. The assembly routines were converted into machine code by Pete
  612. Eberlein's ASM to Euphoria converter
  613. (http://www.harborside.com/home/x/xseal/euphoria/).
  614.  
  615. The Windows version also uses the Win32Lib library by David Cuny, Derek
  616. Parnell and others (http://www.sourceforge.net/projects/win32libex/).
  617.