Update report of TBSCANX. 2.9 --- Implemented the "%" wildcard (variable amount of garbage bytes). Some keyboards locked after the unregistered TbScanX urged to press a key at startup. This has been solved. 2.8 --- Major upgrade! New options added! Because TbScanX already carried so much options, it became a little difficult to remember all those options. Now TbScanX recognizes complete option words too, just like TbScan! TbScanX is now able to scan disks for BOOTsector viruses. As you would expect, TbScanX performs this automatically, without user intervention, every time you insert a disk in the drive. Because BOOT signature are now also stored in memory, TbScanX now requires some additional memory, but if you specify the -noboot option TbScanX behaves as before, and does not allocate the extra memory. TbScanX now performs noticable faster, except for the 80386 version, which still operates at its already very high speed. TbScanX now only scans programs being invoked if the program resides on removable media. This avoids unnecessary scanning. Of course, you can use a command line option to force TbScanX to scan always like previous versions of TbScanX. Added the "obsolete datafile" warning. TbScan now issues a warning if the signature file is older than three months (except if the -valid option has been specified). Added the -quiet option to disable display of "*Scanning*". Implemented nibble wildcards. Consult the manual for details. Improved signature file error detection. TbScan now displays the name and path of the signature file being used. Replaced the TESTVIR files with a TEST.DAT test-signature file. 2.7 --- Virus names with a length of 30 bytes were displayed with some garbage. Problem solved. Signatures beginning with 00 are now processed properly. Added code to handle the '**' wildcard. This was necessary because the most recent signature file is revised and highly optimized by using the new '**' wildcard. Removed the -o (optimize) option. It has no longer any functionality. Signatures in the .DAT file may now contain spaces to increase the readability and to maintain compatibility with an other scanner. Updated the file TESTVIR.COM to match the new signature listed in the most recent signature file. Increased the maximum number of signatures to 600. 2.6 --- Fixed a bug causing TbScanX to hang the machine when loaded in upper memory without using Expanded memory. Added the -n switch for those people that don't like the scanning invoked by every DOS exec-call. Some minor internal changes. 2.5 --- Writing characters to the console could be slowed down in the previous version of TbScanX. Fixed. The Expanded Memory handling of TbScanX is now more transparant to other software. The new version of TbScanX should now cause less problems with other EMS software like ramdisks. TbScanX is able to use an Upper Memory Block to store its kernel. Unfortunately, the final DOS 5.00 release allocates all Upper Memory, and TbScanX can not be loaded high using normal "highload"-software. Now TbScanX is able to allocate Upper Memory from DOS, if the XMS-driver has no free memory available. Reloading a fresh copy of TbScanX (when the video memory of TbScanX is damaged or when you get a new signature file) is now possible! TbScanX now always removes the resident part of TbScanX if the -r option has been specified. If it is unsafe to remove itself it will completely disable the resident part. Now you should be able to reload a fresh copy of TbScanX in all situations. If you loaded TbScanX in device driver mode, the character device "SCANX" will be replaced by "$CANX" if the resident part of TbScanX is "removed". As soon as you load a fresh copy of TbScanX in TSR-mode(!) the character device "SCANX" is restored and fully functional again. 2.4 --- Bug fix. TbScanX did not always detect an error situation, which could result in unpredictable behaviour, like waiting for a keypress. 2.3 --- Minor update. Some ill-behaving EMS utilities (some RAM-disks) do not restore the EMS context after they are done. This caused strange effects if TbScanX was using EMS: if TbScanX scanned a file located on an EMS-ramdisk the system could hang because the EMS-page was altered. Now TbScanX restores its EMS-page after every DOS call. 2.2 --- Many users of TbScanX would like an ability to scan every program before executing it. Well, we implemented it. TbScanX now also scans every program just before it will be executed. As usual, we tried to achieve the highest speed possible. Therefore, TbScanX makes uses of the same interpreter routine as used in TbScan (the non-resident generic virus scanner). That means that not the complete file will be scanned, but only the executable parts that are suitable for infections. TbScanX traces chains of jumps, exactly like performed by TbScan. Just try to execute the file TESTVIR.COM... (It is not dangerous). The Application Interface has been changed, and is not completely backwards compatible. See the manual for more details. To facilitate the usage of the Application Interface we supply the C-library ScanXAPI.Lib written by john lots. Libraries for other programming languages are welcome, you can earn a TbScanX registration for free! The new "scanfile" feature of TbScanX is also available via the API, and it enables you to develop your own superfast virus scanner. TbScanX will now check whether the correct processor version has been installed. It will also display the processor type version when installing itself. Optimized data structures and code sizes. 2.1 --- Windows 3.0 support! TbScanX will now detect that Windows starts running in 386-enhanced-mode. It copies a small local data area to every DOS-window you open. The copies of TbScanX will not interfere with each other. It is possible to disable TbScanX in one window and enable it in another, while there is still only one TbScanX in memory. The windows 386-enhanced-mode support is available in the 386 version of TbScanX and of course in the standard version (which should run on all machines). The 286 version does not have 386-enhanced-mode support and is therefore smaller. Fixed a minor bug that caused TbScanX to hang the machine if the last virus in the signature file was not an EXE or COM type. TbScanX will now display the processor type version of TbScanX in the help screen. 2.0 --- Maintenance release. TbScanX v1.9 did not scan if it was using conventional memory only. It functioned well if used with expanded or video memory. The bug is corrected now. Sorry for any inconvenience. 1.9 --- Good news! TbScanX now supports upper memory and can be loaded high! No high memory available? No panic, it can also use unused graphics video memory! Of course, also expanded memory or even conventional memory can be used... Or combinations of upper and other memory... Who said that resident scanners need a lot of memory? Just to enable you to try the different kinds of memory usage, I enabled the alternative memory usage for unregistered users. But sometimes the unregistered version ignores the memory options... So you still need to register . Fixed a bug that caused the 80386 version of TbScanX to lock up when invoked in device driver mode. Previous versions of TbScanX did not like the Ctrl-Z character at the end of the signature file. Corrected. 1.8 --- Fixed a bug that caused some old EMS-boards to lock up when using the -x option. TbScanX performs now even 10% faster, due to branch optimization. TbScanX now checks its memory image before scanning. If the internal CRC does not match it will not continue. Note that this safety check is not 100% proof. That is not possible. TbScanX is now also more difficult to hack... Added the -o (optimization) option. If you specify this option TbScanX merges signatures that are more than 75% equal. It actually replaces differences between two almost the same signatures by wildcards, so it can throw away the second signature without increasing the chance that a virus remains undetected. The result of this option is that TbScanX uses less memory and is also somewhat faster. See more about this in the manual. Added the -r (remove) option. It is now possible to remove TbScanX from memory. Of course this option only functions if TbScanX is invoked as a TSR and if it is the last TSR installed in memory. Also eventually allocated EMS memory will be freed. Optimized the format in which the signatures are stored in memory. TbScanX will now use two bytes less for every signature. With the present signature file you will end up with 400 bytes memory saved... Added the signature file authorization check. Future signature files will be checksummed to make sure you have an unmodified copy of them. Signatures can still be added to the list manually if you want to. You can also override the authorization check with the new -U option... TbScanX should now be able to find its data file TbScan.DAT in its home directory even if invoked via the config.sys. The -F parameter is no longer required if the datafile is named TbScan.DAT and resides in the same directory as the TbScanX.COM program. 1.7 --- Minor bugfix. TbScanX did not process all viruses when used with the signature file of January due to a bug in the signature-file parser. 1.6 --- Major upgrade. Decreased memory usage and added application interface. TbScanX now compresses the signatures in memory. This saves about 1.5Kb of memory with the current signature file. It does not decrease speed. Enhanced the usage of expanded memory. TbScanX now uses less memory if using expanded memory because it also swaps code to EMS. In device driver mode TbScanX uses only 624 bytes of memory! TbScanX displays a memory usage report when installing itself in memory. TbScanX performs now slightly faster. Added application interface. Programs can test for the existence of TbScanX and they can sent data to be scanned to TbScanX. TbScanX returns the result of the scan to the application program. Nice for software that compress executable files (like LzEXE). Consult the manual for this (chapter "Application Interface"). When installed as device driver, TbScanX installs a character device with the name SCANX. This device can be used to scan any file. Try this: "copy testvir.com scanx /b". Also non-executable files can be scanned this way. Starting with this release also the enhanced processor versions will be distributed. If you have a 80286, or NEC Vxx processor you can rename the file TbScanX.286 to TbScanX.COM. If you have a 80386 or 80486 type processor you can rename TbScanX.386 to TbScanX.COM. These versions uses some faster and smaller instructions, and therefore the program is a little bit smaller and runs somewhat faster. 1.5 --- Fixed a bug that caused problems with some software like WPSHELL and Supercalc. Fixed a bug that caused some command line options to be ignored in device driver mode. Fixed a bug that caused sometimes non-executable files being scanned. TBSCANX is now able to use expanded memory to store the signatures. This saves lot of memory, if EMS is used TBSCANX only consumes 992 bytes! The option to use EMS is only available to registered users. 1.4 --- TBSCANX is now multitasker aware. It also checks for the current video mode and the current videopage (and offset) before displaying the "scanning" message. TBSCANX can now be used as device driver. TBSCANX is now aware of the new file functions of DOS 4.XX and DOS 5.XX Previous versions of TBSCANX would not auto scan a file copied with the DOS command-processors of these DOS versions. TBSCANX keeps the signatures scrambled in memory. This prevents other scanners to find those signatures in low memory, causing incorrect virus alerts. The scrambling routine has been improved. The name of the signature file to be used can now be specified on the command line. TBSCANX can be enabled and disabled on the command line. 1.3 --- Fixed a bug causing TBSCANX to hang the machine. Fixed also the incorrect message that appeared when the data file was not found. 1.2 --- Removed the unregistered timeout check. Now also the unregistered version of TBSCANX keeps working. Now you'll have to press a key while starting TBSCANX. 1.1 --- TBSCANX is now scrambling the signatures once loaded into memory, to avoid "detection" of our signatures by TBSCAN when it is searching for viruses with the keyword LOW set. Changed the evaluation time of the unregistered version to 15 minutes. Optimized some code. 1.0 --- Initial release of TBSCANX.