Short: V1.57 Check for Archives/Packers/Viruses Author: stoecker@amigaworld.com (Dirk Stoecker) Uploader: stoecker@amigaworld.com (Dirk Stoecker) Type: util/arc Requires: util/arc/xadmaster.lha util/virus/xvsLibrary.lha util/pack/xfdmaster.lha util/pack/xpk_User.lha Version: 1.57 This program uses xfdmaster.library (see util/pack/xfdmaster.lha) and xvs.library (util/virus/xvsLibrary.lha) for packer and virus scanning. The xadmaster.library (see util/arc/xadmaster.lha) is used to dearchive file and disk archives. NOTE: xadmaster.library is Shareware, so think about registering when using this utility together with that library (and without it's nearly useless). See conditions in xadmaster.library distribution. The xfdmaster.library is needed to run the utility. The xvs.library and xadmaster.library are recommended! The xpkmaster.library is needed with ASKPWD password only (and to decrunch XPKF files). CheckX unpacks archives and packed files as deep as possible: - you can unarchive a crunched archive as well - multiple crunched files can be decrunched - multiple archives can be extracted - multiple disk archives can be extracted - linked and crunched and archived files are no problem This all depends mainly on your memory size! If have around 50MB and have only little problems with really large archives. Call CheckX with a ? and you get following argument list: FROM,LOG,SAVE/K,ALL/S,ASKPWD/S,AUTOMOUNT/S,PRINTALL/S,PRINTEXEC/S, NODECRUNCH/S,NOUNLINK/S,NOUNARCHIVE/S,NOUNTRACK/S,NOTRACKCUT/S,NOSTRIP/S, NOVIRUS/S Enter a ? again and you get a short doc: FROM source file or directory - may contain patterns LOG log file name SAVE directory, where decrunched files are saved ALL scan deep into directories ASKPWD ask for password when needed (needs xpkmaster.library) PRINTALL print all filenames PRINTEXEC print names of all executable files AUTOMOUNT automatically mount RDx: device when needed NODECRUNCH do not decrunch files with xfdmaster NOUNLINK do not unlink files with xfdmaster NOUNARCHIVE do not call archiver for unarchiving file archives NOUNTRACK do not call archiver for unarchiving track archives NOTRACKCUT do not call archiver for partially track archives NOSTRIP do not strip useless hunks NOVIRUS do not scan with xvs.library for viruses A bit more explanation: LOG The output is written to a file as well as to the standard output stream. The main purpose CheckX was written for is to scan for crunched files and to test the decrunch routines. So the logging may take some more time, but is very stable, as the last log-entry is always the file which possibly crashed the machine. The logfile can be accessed by other progress for read and write the whole time CheckX works (and surely after that). But writing is not recommended, as this may produce a corrupted file. SAVE If this keyword is given, all uncrunched/unlinked/stripped files will be saved in the directory given with that keyword. The directory must already exist! Sub directories are created automatically. If files are unlinked, they get saved with .1, .2, ... extensions. Address crunched files are not saved. Use xfdDecrunchAddr or xfdDecrunch to do so. AUTOMOUNT To unarchive disk archives (DMS, Zoom) a destination device is needed. These devices are called RD0: to RDn: and for high density disks RH0: to RHn:. CheckX can automatically mount these or you may mount them before calling the program. The number n depends on the archiver depth, so normally RD1: should be the highest one really needed. High density disks (RHn:) are not supported yet, as DMS seems to have problems here. NOTRACKCUT This prevents unarchiving of cutted (DMS) archives. Splitted DMS-Archives may produce strange errors, but can be checked correctly, when the two parts are directly after another (e.g. no other track archive is between them). In this case the first file shows some XPKCERR_READWRITE and the second one the correct stuff. I checked EuroScene1 CD which has a lot cutted archives and newest xfdmaster.library had no problems, so probably this option is not needed anymore. CheckX cannot scan files, which are read-protected. You get CheckX error 4 as result in that case. Unprotect files and scan again when you want. For files contained in archives, the protection bits are ignored. CheckX is completely reentrant and may work fine twice or more times parallel (You can set the pure file protection bit and make it resident), with one exception: Destination Disks (RDn: or RHn:) can be accessed only by one tool! So when source path contains disk archives, start only one copy of CheckX or use NOUNTRACK!!! It is not recommended to call it multiple times as CheckX normally needs lots of memory. This is a batch tool, so drink a coffee or two or three during its work. Check the logfile afterwards. Use a text-editor and scan case sensitive for "-Virus" and you get lines which a related to viruses (and mostly only the important lines). A scan with "XFD", "XAD" or "CheckX" brings lines which produced errors. The complete number of found viruses is logged at the file end (If the scan found some of them). Also the scan time is logged. If the permanent file scrolling slows down your computer try setting the output stream to a raw mode display using following redirect command: ">RAW:0/11/640/50/CheckX-Output/AUTO/CLOSE/WAIT". To get CheckX really silent either use LOG option and call CheckX with ">NIL:" or redirect normal output into logfile with ">filename". CheckX detects all the viruses found by xvs.library, which contains the complete antivirus knowledge of VirusZ utility by Georg Hörmann. CheckX cannot detect viruses in memory or remove detected viruses. You still need antivirus software like VirusZ, VT or Virus_Checker. I always run VirusZ in the background to check for viruses. CheckX also scans disk archive information texts for packers and viruses and also bootsectors of dearchived disks. If there are serious errors, please report them, but CheckX has a long way of development and I hope it is really stable now (as well as xfdmaster.library is now). Send me files, which cause the system to bring Enforcer/MungWall/PatchWork Hits or crash the computer. If the files are larger, please contact me first. Stuff which becomes obsolete soon: As xadmaster.library is still in development some important archivers are still missing, so internal routines detect LhA, LhASFX, Zip, Zoo and Arc archives. The corresponding programs are called to dearchive these files. Especially in UNARCHIVE mode this tool may need lots of memory (when T: is assigned to ram disk). Keep that in mind! Every checked file is completely loaded into memory! If you have low memory I would suggest assigning T: to harddisk to get better results. Note this is no longer necessary, when xadmaster.library includes all the missing clients, so I will not create a TEMPDIR argument or something like that. The program works fine with following archivers: Arc 0.23 50328 bytes LhA 1.98 52348 bytes UnZip 5.32 92992 bytes Zoo 2.1 Beta 3 54608 bytes This program is Freeware. Use it as you want, but WITHOUT ANY WARRANTY! Contact me at: ************************************************************************ * snail-mail: * e-mail: * * Dirk Stoecker * stoecker@amigaworld.com * * Geschwister-Scholl-Str. 10 * dstoecker@gmx.de * * 01877 Bischofswerda * world wide web: * * GERMANY * http://home.pages.de/~Gremlin/ * * phone: * pgp key: * * GERMANY +49 (0)3594/706666 * get with finger or from WWW pages * ************************************************************************ ============================= Archive contents ============================= Original Packed Ratio Date Time Name -------- ------- ----- --------- -------- ------------- 628 256 59.2% 07-Jun-99 16:17:20 CheckX.info 12316 7076 42.5% 07-Jun-99 16:17:20 +CheckX 8416 3492 58.5% 07-Jun-99 16:17:20 +CheckX.readme 1949 422 78.3% 07-Jun-99 16:17:20 +RD-MountList 52640 15853 69.8% 07-Jun-99 16:17:20 +CheckX.c 2188 805 63.2% 07-Jun-99 16:17:20 +SDI_ASM_STD_functions.lib 5632 1977 64.8% 07-Jun-99 16:17:20 +SDI_ASM_STD_protos.h 1165 457 60.7% 07-Jun-99 16:17:20 +SDI_compiler.h 3567 1568 56.0% 07-Jun-99 16:17:20 +SDI_defines.h 375 255 32.0% 07-Jun-99 16:17:20 +SMakeFile 1403 703 49.8% 07-Jun-99 16:17:20 +StartCode.a 184 169 8.1% 07-Jun-99 16:17:20 +StartCode.o -------- ------- ----- --------- -------- 90463 33033 63.4% 08-Jun-99 23:07:34 12 files